Skip to content
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

Migrate from solana-feature-set to agave-feature-set #5520

Merged
merged 2 commits into from
Mar 27, 2025

Conversation

jstarry
Copy link

@jstarry jstarry commented Mar 26, 2025

Problem

Codebase still uses the sdk feature set.

Summary of Changes

  • Migrate to agave feature set everywhere
  • Bump solana-sdk to v2.2.2 which has fixed deprecation annotations to ensure that devs do not unintentionally use modules from sdk when they should be using agave crates.
  • Bump solana-transaction to v2.2.2 because solana-sdk has a strict dependency on that

Fixes #

@jstarry jstarry requested review from a team as code owners March 26, 2025 23:17
@jstarry jstarry added the v2.2 Backport to v2.2 branch label Mar 26, 2025
@jstarry jstarry marked this pull request as draft March 26, 2025 23:17
Copy link

mergify bot commented Mar 26, 2025

Backports to the beta branch are to be avoided unless absolutely necessary for fixing bugs, security issues, and perf regressions. Changes intended for backport should be structured such that a minimum effective diff can be committed separately from any refactoring, plumbing, cleanup, etc that are not strictly necessary to achieve the goal. Any of the latter should go only into master and ride the normal stabilization schedule. Exceptions include CI/metrics changes, CLI improvements and documentation updates on a case by case basis.

Copy link

mergify bot commented Mar 26, 2025

If this PR represents a change to the public RPC API:

  1. Make sure it includes a complementary update to rpc-client/ (example)
  2. Open a follow-up PR to update the JavaScript client @solana/web3.js (example)

Thank you for keeping the RPC clients in sync with the server API @jstarry.

Copy link

mergify bot commented Mar 26, 2025

The Firedancer team maintains a line-for-line reimplementation of the
native programs, and until native programs are moved to BPF, those
implementations must exactly match their Agave counterparts.
If this PR represents a change to a native program implementation (not
tests), please include a reviewer from the Firedancer team. And please
keep refactors to a minimum.

@jstarry jstarry force-pushed the migrate-feature-set branch 3 times, most recently from e304857 to e534cae Compare March 27, 2025 01:03
@jstarry jstarry marked this pull request as ready for review March 27, 2025 01:03
@jstarry jstarry force-pushed the migrate-feature-set branch 2 times, most recently from b01a264 to a97d05d Compare March 27, 2025 02:38
@jstarry
Copy link
Author

jstarry commented Mar 27, 2025

Ok pretty confident there are no more lingering usages of solana_sdk::feature_set. I patched my solana-sdk dependency to my local solana-sdk repo which has fixed deprecation warnings (anza-xyz/solana-sdk#94) and it doesn't have any more deprecations 🎉

@jstarry
Copy link
Author

jstarry commented Mar 27, 2025

After this change we will need to update solana-sdk to pick up the fixed deprecation annotations asap so that no devs accidentally use the wrong feature set or keys.

@codecov-commenter
Copy link

codecov-commenter commented Mar 27, 2025

Codecov Report

Attention: Patch coverage is 70.37037% with 16 lines in your changes missing coverage. Please review.

Project coverage is 83.3%. Comparing base (f0de5c3) to head (00e69a7).
Report is 4 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5520   +/-   ##
=======================================
  Coverage    83.3%    83.3%           
=======================================
  Files         829      829           
  Lines      373645   373649    +4     
=======================================
+ Hits       311549   311560   +11     
+ Misses      62096    62089    -7     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@jstarry jstarry requested a review from joncinque March 27, 2025 04:24
joncinque
joncinque previously approved these changes Mar 27, 2025
Copy link

@joncinque joncinque left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thanks for fighting through this! I followed along with all uses from solana_sdk as well, and it looks like you caught them all.

@jstarry
Copy link
Author

jstarry commented Mar 27, 2025

@joncinque I rebased to pick up #5525 and also added a change to bump solana-sdk to v2.2.2 which has fixed deprecation annotations to ensure that devs do not unintentionally use modules from sdk when they should be using agave crates.

Copy link

@joncinque joncinque left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

@jstarry jstarry merged commit cb32984 into anza-xyz:master Mar 27, 2025
58 checks passed
@jstarry jstarry deleted the migrate-feature-set branch March 27, 2025 15:47
mergify bot pushed a commit that referenced this pull request Mar 27, 2025
* Migrate from solana-feature-set to agave-feature-set

* Bump solana-sdk to fix deprecation warnings

(cherry picked from commit cb32984)

# Conflicts:
#	Cargo.lock
#	Cargo.toml
#	cli/src/program.rs
#	cli/src/program_v4.rs
#	cli/tests/program.rs
#	core/src/banking_stage/latest_unprocessed_votes.rs
#	core/tests/scheduler_cost_adjustment.rs
#	genesis/Cargo.toml
#	genesis/src/main.rs
#	gossip/Cargo.toml
#	ledger/src/blockstore_processor.rs
#	ledger/src/leader_schedule_utils.rs
#	precompiles/Cargo.toml
#	precompiles/src/ed25519.rs
#	precompiles/src/lib.rs
#	precompiles/src/secp256k1.rs
#	precompiles/src/secp256r1.rs
#	program-runtime/Cargo.toml
#	program-runtime/src/invoke_context.rs
#	programs/bpf_loader/Cargo.toml
#	programs/bpf_loader/src/lib.rs
#	programs/bpf_loader/src/syscalls/cpi.rs
#	programs/bpf_loader/src/syscalls/mod.rs
#	programs/sbf/Cargo.lock
#	programs/sbf/Cargo.toml
#	programs/sbf/benches/bpf_loader.rs
#	programs/vote/benches/vote_instructions.rs
#	runtime/Cargo.toml
#	runtime/src/bank.rs
#	runtime/src/bank/check_transactions.rs
#	runtime/src/bank/tests.rs
#	runtime/src/verify_precompiles.rs
#	svm/Cargo.toml
#	svm/examples/Cargo.lock
#	svm/examples/paytube/src/processor.rs
#	svm/src/account_loader.rs
#	svm/src/transaction_processor.rs
#	svm/tests/conformance.rs
#	svm/tests/integration_test.rs
#	svm/tests/mock_bank.rs
jstarry added a commit that referenced this pull request Mar 27, 2025
* Migrate from solana-feature-set to agave-feature-set

* Bump solana-sdk to fix deprecation warnings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v2.2 Backport to v2.2 branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants