Skip to content

svm repo split: decouple dev deps: feature-set #7461

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

buffalojoec
Copy link

Problem

We have to decouple any uses of agave- crates in the dev-dependencies of the crates slated to move to the new SVM repo.

Summary of Changes

Simply uses SVMFeatureSet instead of the runtime-level FeatureSet for SVM integration testing. This is actually more accurate, since no features outside of SVMFeatureSet should ever be required to test functionality within SVM.

Part of #7317

@buffalojoec buffalojoec changed the title svm repo split: dedev: feature-set svm repo split: decouple dev deps: feature-set Aug 12, 2025
@buffalojoec buffalojoec marked this pull request as ready for review August 12, 2025 08:19
@buffalojoec buffalojoec requested review from a team as code owners August 12, 2025 08:19
@buffalojoec buffalojoec force-pushed the svm-repo-split-dedev-feature-set branch from 232a458 to 76b5210 Compare August 12, 2025 09:46
@buffalojoec buffalojoec removed the request for review from a team August 12, 2025 09:46
@buffalojoec buffalojoec force-pushed the svm-repo-split-dedev-feature-set branch from 76b5210 to 09d3bd6 Compare August 12, 2025 12:45
Comment on lines +164 to +165
impl From<&SVMFeatureSet> for FeatureSet {
fn from(svm_features: &SVMFeatureSet) -> Self {

Choose a reason for hiding this comment

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

I don't see any case when one should be converting the SVM feature set to the Agave feature set. How about marking this function as dev-context-only-utils?

Choose a reason for hiding this comment

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

I definitely agree with this, SVM -> agave feature set conversion is lossy and should only be available in dev-context if we need it.

Copy link
Author

Choose a reason for hiding this comment

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

Yeah but I can't without still requiring it as a dev dependency. Where would I specify I need the feature?

Choose a reason for hiding this comment

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

Perhaps you could implement that in the test file?

Copy link
Author

Choose a reason for hiding this comment

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

SVM -> agave feature set conversion is lossy

How is it lossy? Lossy would actually be the other direction.

Copy link
Author

Choose a reason for hiding this comment

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

Perhaps you could implement that in the test file?

If I use FeatureSet in the test file, then solana-svm will require agave-feature-set as a dev dependency.

Choose a reason for hiding this comment

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

"lossy" is the wrong word I guess. SVM -> Agave is not a straight-forward conversion. you have to make some assumption of what the other features in agave are. Should they all be active? inactive? there's no obvious choice to me which one is "correct".

Choose a reason for hiding this comment

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

If I use FeatureSet in the test file, then solana-svm will require agave-feature-set as a dev dependency.

I don't understand though. The only place this into is used is in the svm integration tests.
It has to be a dev dependency already with this setup, no?

Choose a reason for hiding this comment

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

like maybe it's not a direct dev-dependency. but it's somehow dependent on it because the process_compute_budget_instructions takes it. so that function depends on FeatureSet

Copy link
Author

Choose a reason for hiding this comment

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

like maybe it's not a direct dev-dependency. but it's somehow dependent on it because the process_compute_budget_instructions takes it. so that function depends on FeatureSet

Yeah, maybe I need to go a few levels out to get rid of the dependency(ies). I'm trying to avoid Agave crates depending on SVM crates, which in turn depend on Agave crates for testing. It'll be a nightmare.

@buffalojoec buffalojoec force-pushed the svm-repo-split-dedev-feature-set branch from 09d3bd6 to 07c4474 Compare August 12, 2025 20:19
@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 0% with 161 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (master@859007c). Learn more about missing BASE report.
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##             master    #7461   +/-   ##
=========================================
  Coverage          ?    83.3%           
=========================================
  Files             ?      803           
  Lines             ?   363677           
  Branches          ?        0           
=========================================
  Hits              ?   302959           
  Misses            ?    60718           
  Partials          ?        0           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

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.

4 participants