-
Notifications
You must be signed in to change notification settings - Fork 41
program: depend on v3 interface #308
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,7 +20,7 @@ solana-program-error = "3.0.1" | |
| solana-pubkey = "4.2.0" | ||
| solana-rent = "3.0.0" | ||
| solana-security-txt = "1.1.2" | ||
| solana-stake-interface = { version = "2", features = ["bincode", "borsh", "sysvar"] } | ||
| solana-stake-interface = { path = "../interface", version = "3.1.0", features = ["bincode", "borsh", "sysvar"] } | ||
| solana-sysvar = "3.0.0" | ||
| solana-sysvar-id = "3.1.0" | ||
| solana-vote-interface = { version = "5.0.0", features = ["bincode"] } | ||
|
|
@@ -45,6 +45,9 @@ solana-pubkey = { version = "4.2.0", features = ["rand"] } | |
| solana-sdk-ids = "3.1.0" | ||
| solana-signature = "3.4.0" | ||
| solana-signer = "3.0.0" | ||
| # TODO: Remove after agave/mollusk/stake-program depend on aligned StakeHistory version | ||
| # Either solana-stake-interface v3 or new solana-stake-history crate | ||
| solana-stake-interface-v2 = { package = "solana-stake-interface", version = "2.0.1" } | ||
|
Comment on lines
+48
to
+50
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Points raised anza-xyz/mollusk#228 (review) StakeHistory sysvar is creating a dependency chain between Can be resolved by:
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We could potentially move stake history to its own crate, since it likely won't change as often. Note that it wouldn't really help right now since it still depends on Two versions of a crate is totally fine if there's no other way
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SysvarSerialize removed from stake & mollusk. Now just agave to go. |
||
| solana-svm-log-collector = "3.0.0" | ||
| solana-system-interface = { version = "2.0.0", features = ["bincode"] } | ||
| solana-transaction = "3.0.2" | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
iirc there was a reason we stopped using
pathin favor ofversionbut i can never remember what it was... maybe @joncinque does? or it could have been febo, i dont think it was meUh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh wait a sec: #79 (comment)
I suppose we want to keep it detached to update the interface & program independently? Why is that desirable though?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The chain of dependencies goes: program -> agave -> interface
This means we can't update agave until the interface is updated, and we can't update the program until agave is updated.
The whole point of separating out the interface was to remove the circular dependency between the program and agave.
As for the dep here, it's probably better to use the local one to help catch issues right away. But it does mean we can also accidentally publish the program crate without the interface and cause issues.
But I don't feel too strongly either way.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In the worst case, I think someone attempts a stake-program publish when the used stake-interface version isn't published. That seems worthwhile as it requires interface changes to be handled in the program crate as they are changed versus lagging program-sync PRs.
That said, it's easy enough to drop the
path = "../interface"if we run into issues later.