Skip to content

Enable spec shaking v2 by default#1812

Merged
mootz12 merged 5 commits intomainfrom
spec-shaking-v2-default-on
Apr 8, 2026
Merged

Enable spec shaking v2 by default#1812
mootz12 merged 5 commits intomainfrom
spec-shaking-v2-default-on

Conversation

@leighmcculloch
Copy link
Copy Markdown
Member

@leighmcculloch leighmcculloch commented Apr 1, 2026

What

Add experimental_spec_shaking_v2 to the default feature set in soroban-sdk, enabling the feature by default.

Why

So far feedback is either neutral or positive.

The feature significantly improves the spec shaking process of the sdk.

Spec shaking v2 has been available as an experimental feature last month. The v26 release candidate will be created soon, and then it will become stable in 1 month. In total that provides approx 50 days for the experimental feature to be available for developers to provide feedback.

The feature name with its experimental_ prefix is preserved for backwards compatibility and will be removed in v27 when v2 becomes the only spec shaking implementation supported.

If negative feedback arises while v26 is in release candidate we can revisit the roll out. While v26 is in stable people can still disable v2 if needed if edge cases are discovered, and the final roll out targeting v27 can be delayed if needed.

@leighmcculloch leighmcculloch requested a review from a team April 1, 2026 12:54
@leighmcculloch leighmcculloch marked this pull request as ready for review April 1, 2026 12:56
Copilot AI review requested due to automatic review settings April 1, 2026 12:56
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR enables spec shaking v2 by default in soroban-sdk, updating tests and CI workflows to treat v2 as the baseline behavior while keeping v1 available via default-features = false.

Changes:

  • Add experimental_spec_shaking_v2 to soroban-sdk’s default feature set.
  • Update spec shaking test crates so v2 uses defaults and v1 explicitly disables default features.
  • Simplify external-repo CI workflows by removing the v1/v2 feature-matrix testing.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
soroban-sdk/Cargo.toml Enables spec shaking v2 via default features.
soroban-sdk/src/_features.rs Updates feature docs to reflect v2 default and v1 opt-out.
tests/spec_shaking_v2/Cargo.toml Removes explicit v2 feature flag since it’s now default.
tests/spec_shaking_v1/Cargo.toml Disables default features to keep v1 behavior.
.github/workflows/test-with-soroban-examples.yml Removes v2 toggle matrix and related patching steps.
.github/workflows/test-with-openzeppelin-stellar-contracts.yml Removes v2 toggle matrix and related patching steps.
Comments suppressed due to low confidence (1)

tests/spec_shaking_v1/Cargo.toml:20

  • [dependencies] disables default features to force spec shaking v1, but [dev-dependencies] reintroduces soroban-sdk without default-features = false. Because Cargo unifies features for the same dependency across dependency kinds when running tests, this can end up enabling the default feature set (and therefore spec shaking v2) for this crate’s cargo test build, undermining the intent of the v1 test setup. Consider adding default-features = false to the [dev-dependencies] soroban-sdk entry as well (while still enabling testutils).
soroban-sdk = {path = "../../soroban-sdk", default-features = false}
test_spec_lib = {path = "../spec_lib"}

[dev-dependencies]
soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]}
soroban-spec = {path = "../../soroban-spec"}

…d test outputs to reflect spec shaking v2 being enabled by default. update expanded tests for spec shaking v2 default
@mootz12 mootz12 added this pull request to the merge queue Apr 8, 2026
Merged via the queue into main with commit 440c453 Apr 8, 2026
111 checks passed
@mootz12 mootz12 deleted the spec-shaking-v2-default-on branch April 8, 2026 14:28
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.

5 participants