Skip to content

hide turbine crate from external use #7392

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

alexpyattaev
Copy link

@alexpyattaev alexpyattaev commented Aug 7, 2025

Problem

We have a bunch of changes planned for turbine which would require breaking lots (most?) of its public API

  • Finishing the 32:32 transition
  • Patching in chacha8 feature gates
  • Mopping up the Shredder API from legacy shred vestiges
  • Transition to single layer turbine

Summary of Changes

Hide turbine crate behind agave-unstable-api to avoid the maintenance burden associated with public API

@alexpyattaev
Copy link
Author

This will not clear CI, need to think about how to get this to build.

@alexpyattaev alexpyattaev marked this pull request as ready for review August 8, 2025 13:55
@codecov-commenter
Copy link

codecov-commenter commented Aug 8, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.3%. Comparing base (a09996b) to head (caf1682).
⚠️ Report is 15 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##           master    #7392     +/-   ##
=========================================
- Coverage    83.3%    83.3%   -0.1%     
=========================================
  Files         800      800             
  Lines      362783   362682    -101     
=========================================
- Hits       302227   302126    -101     
  Misses      60556    60556             
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@bw-solana
Copy link

CC @jacobcreech - I'm assuming these crates aren't actually used much by anyone

@alexpyattaev
Copy link
Author

CC @jacobcreech - I'm assuming these crates aren't actually used much by anyone

https://crates.io/crates/solana-turbine/reverse_dependencies shows no users outside agave.

Does not appear like anyone is interested in it. If someone is interested they can file a PR.

@jacobcreech
Copy link

@jacobcreech
Copy link

Looks like it has some usage in random SVM L2s too https://github.com/search?q=solana-turbine+language%3ATOML&type=code&l=TOML&p=1

@alexpyattaev
Copy link
Author

Looks like Jito uses it? https://github.com/jito-foundation/jito-solana/blob/5bf7d1310fe91792afec8c7d43debf87c7f27802/Cargo.toml#L568

We have an OK from Jito's @esemeniuc to do the change.

@alexpyattaev
Copy link
Author

Looks like it has some usage in random SVM L2s too https://github.com/search?q=solana-turbine+language%3ATOML&type=code&l=TOML&p=1

Well we are not yanking the crate, we are just making no promises to keep the API stable. An alternative would be to build a new turbine crate from scratch and let the current one bitrot.

@alexpyattaev alexpyattaev changed the title hide turbine from external use hide turbine crate from external use Aug 11, 2025
@anza-xyz anza-xyz deleted a comment from Moameri55 Aug 12, 2025
@anza-xyz anza-xyz deleted a comment from Moameri55 Aug 12, 2025
@steviez
Copy link

steviez commented Aug 12, 2025

FYI - this PR has a v3.0 label that I'm removing; we use labels of this format for backports once the v3.0 branch has been cut. So, please avoid using them for alternate purposes

@steviez steviez removed the 3.0 label Aug 12, 2025
Copy link

@gregcusack gregcusack left a comment

Choose a reason for hiding this comment

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

This looks good to me. Will make development much simpler. Although, I don't have much knowledge on general coding practice here. Is there an eventual plan to remove this gating at some point?

@alexpyattaev
Copy link
Author

This looks good to me. Will make development much simpler. Although, I don't have much knowledge on general coding practice here. Is there an eventual plan to remove this gating at some point?

The whole idea with hidden API has been bobbing around for a while, but there is no established procedure. We should consider removing it once API stabilizes, or if lots of downstream users ask for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants