-
Notifications
You must be signed in to change notification settings - Fork 655
SPL: Use ATA interface crate instead of program crate #7256
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
Conversation
#### Problem In order to publish the v3 SDK crates and have them usable in Agave, we also need to have SPL crates using the v3 SDK crates. However, we have a circular dependency between Agave and SPL which currently makes this impossible. The overall plan is to have Agave only use "interface" crates from SPL, which have no dependencies on Agave crates. You can see more info about the project at https://github.com/orgs/anza-xyz/projects/27 ATA is already in a good position since it has a small "interface"-style crate which Agave is partly using. Agave still needs the program crate to deserialize instructions. #### Summary of changes Use the interface crate everywhere. The only substantive change is in the instruction parsing test. The interface crate does not have the deprecated instruction creator, so we mimic it inline instead. The best part: the ata program crate is completely gone from lockfiles!
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.
Built and tested without issue, and yup, clean lockfile build has no ATA dep 🙌
Oops sorry, I didn't push the full test fix, should be good now |
Then how did I get green across the board O.o |
not related to this PR I was tricked by a macOS environment issue for a while. Maybe PRing update to readme once I get it figured out. (disabling GCC 15 does not fix.) |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #7256 +/- ##
=========================================
- Coverage 82.8% 82.8% -0.1%
=========================================
Files 803 803
Lines 364439 364436 -3
=========================================
- Hits 302068 302029 -39
- Misses 62371 62407 +36 🚀 New features to boost your workflow:
|
Soooo can I get that approval again? 😁 |
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.
Confirmed passing (for reals this time)
* SPL: Use ATA interface crate instead of program crate #### Problem In order to publish the v3 SDK crates and have them usable in Agave, we also need to have SPL crates using the v3 SDK crates. However, we have a circular dependency between Agave and SPL which currently makes this impossible. The overall plan is to have Agave only use "interface" crates from SPL, which have no dependencies on Agave crates. You can see more info about the project at https://github.com/orgs/anza-xyz/projects/27 ATA is already in a good position since it has a small "interface"-style crate which Agave is partly using. Agave still needs the program crate to deserialize instructions. #### Summary of changes Use the interface crate everywhere. The only substantive change is in the instruction parsing test. The interface crate does not have the deprecated instruction creator, so we mimic it inline instead. The best part: the ata program crate is completely gone from lockfiles! * Fix test
#### Problem As outlined in #7256, we need to get Agave off of crates that depend back on Agave. spl-instruction-padding is one of those crates #### Summary of changes Use spl-instruction-padding-interface instead. Everything else is exactly the same.
#### Problem As outlined in #7256, we need to get Agave off of crates that depend back on Agave. spl-memo is one of those crates #### Summary of changes Use spl-memo-interface instead. The only difference is that `build_memo` takes in a program id, which is used in one test.
#### Problem As outlined in #7256, we need to get Agave off of crates that depend back on Agave. spl-token-2022 is one of those crates #### Summary of changes Use spl-token-2022-interface instead. To go with this, we had to also upgrade to confidential-transfer-proof-extract v0.4.0, which requires modifications to some tests. Everything should be very straightforward otherwise, and we get to see some red lines in the lockfile!
Problem
In order to publish the v3 SDK crates and have them usable in Agave, we also need to have SPL crates using the v3 SDK crates. However, we have a circular dependency between Agave and SPL which currently makes this impossible.
The overall plan is to have Agave only use "interface" crates from SPL, which have no dependencies on Agave crates.
You can see more info about the project at https://github.com/orgs/anza-xyz/projects/27
ATA is already in a good position since it has a small "interface"-style crate which Agave is partly using. Agave still needs the program crate to deserialize instructions.
Summary of changes
Use the interface crate everywhere.
The only substantive change is in the instruction parsing test. The interface crate does not have the deprecated instruction creator, so we mimic it inline instead.
The best part: the ata program crate is completely gone from lockfiles!