Skip to content

Bump version to 26.1.1 - #1941

Closed
github-actions[bot] wants to merge 4 commits into
release/v26.1.0from
release/v26.1.1
Closed

Bump version to 26.1.1#1941
github-actions[bot] wants to merge 4 commits into
release/v26.1.0from
release/v26.1.1

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

What

Bump version to 26.1.1, creating release branch.

Why

Triggered by @leighmcculloch in https://github.com/stellar/rs-soroban-sdk/actions/runs/29779116119.

What is next

See the release instructions for a full rundown on the release process:
https://github.com/stellar/actions/blob/main/README-rust-release.md

Commit any changes to the release/v26.1.1 branch that are needed in this release.

If this is a regular release releasing from main, merge this PR when ready, and after merging, create a release for this version by going to this link: https://github.com/stellar/rs-soroban-sdk/releases/new?tag=v26.1.1&title=26.1.1

If this is a backport or patch release of a past version, see the release instructions. When ready to release this branch create a release by going to this link:
https://github.com/stellar/rs-soroban-sdk/releases/new?tag=v26.1.1&title=26.1.1&target=release/v26.1.1

Copilot AI review requested due to automatic review settings July 20, 2026 21:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot could not run the full agentic suite for this review because it was automatically requested on a bot-authored pull request. Request a review from Copilot under Reviewers to retry with the full agentic suite. Improved support for bot-authored pull requests is coming soon.

This PR updates Soroban SDK/spec shaking behavior and tests, including deprecating export = ... under experimental_spec_shaking_v2, improving #[contracttrait] cfg-handling diagnostics, and expanding coverage for new reachable SDK auth/executable types.

Changes:

  • Make export = ... a no-op under experimental_spec_shaking_v2 (with deprecation warnings) and update docs accordingly.
  • Add/adjust macro support and diagnostics around cfg/cfg_attr usage in #[contracttrait] defaults and overrides, plus compile-fail tests.
  • Expand spec-shaking v1/v2 tests and update many wasm-driven snapshots; update CI workflows to better patch transitive SDK crates.

Reviewed changes

Copilot reviewed 56 out of 64 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/udt/test_snapshots/test_with_wasm/test_recursive_enum.1.json Snapshot updated for new wasm/hash output.
tests/udt/test_snapshots/test_with_wasm/test_recursive.1.json Snapshot updated for new wasm/hash output.
tests/udt/test_snapshots/test_with_wasm/test_add.1.json Snapshot updated for new wasm/hash output.
tests/tuples/test_snapshots/test/test_wasm_void.1.json Snapshot updated for new wasm/hash output.
tests/tuples/test_snapshots/test/test_wasm_tuple2.1.json Snapshot updated for new wasm/hash output.
tests/tuples/test_snapshots/test/test_wasm_tuple1.1.json Snapshot updated for new wasm/hash output.
tests/spec_shaking_v2/src/test.rs Extends expected reachable functions/types under v2.
tests/spec_shaking_v2/src/lib.rs Adds new contract fns/types to exercise v2 shaking, auth/executable, and export=false no-op.
tests/spec_shaking_v1/src/test.rs Updates v1 expectations to include export=false types in the “not exported” set.
tests/attributes/test_snapshots/test/test_contracttrait_cfg_override_and_default.1.json New snapshot for new attributes-focused test crate.
tests/attributes/test_snapshots/test/test_cfg_methods.1.json New snapshot for cfg-gated method inclusion.
tests/attributes/test_snapshots/test/test_cfg_items.1.json New snapshot validating cfg-gated items + event emission.
tests/attributes/src/lib.rs New test crate covering cfg-gated items/methods and contracttrait overrides/defaults.
tests/attributes/Cargo.toml New crate manifest enabling v2 feature for attributes tests.
tests/associated_type_contracttrait/test_snapshots/test_with_wasm/test_exec.1.json Snapshot updated for new wasm/hash output.
tests-expanded/test_errors_wasm32v1-none.rs Updates expanded output (removes generated persisted args builder).
tests-expanded/test_errors_tests.rs Updates expanded ctor symbol due to hashing/registration changes.
tests-expanded/test_contracttrait_trait_wasm32v1-none.rs Adds generated doc comments in expanded args helpers.
tests-expanded/test_contracttrait_trait_tests.rs Adds generated doc comments in expanded args helpers/tests.
tests-expanded/test_contracttrait_path_global_wasm32v1-none.rs Adds generated doc comments in expanded args helpers.
tests-expanded/test_contracttrait_path_global_tests.rs Adds generated doc comments in expanded args helpers/tests.
tests-expanded/test_contracttrait_impl_partial_wasm32v1-none.rs Adds generated doc comments in expanded args helpers.
tests-expanded/test_contracttrait_impl_partial_tests.rs Adds generated doc comments in expanded args helpers/tests.
tests-expanded/test_contracttrait_impl_full_wasm32v1-none.rs Adds generated doc comments in expanded args helpers.
tests-expanded/test_contracttrait_impl_full_tests.rs Adds generated doc comments in expanded args helpers/tests.
tests-expanded/test_auth_tests.rs Adjusts generated attributes on __check_auth args builder.
tests-expanded/test_attributes_wasm32v1-none.rs New expanded output snapshot for attributes test contract.
tests-expanded/test_account_wasm32v1-none.rs Adjusts generated attributes on __check_auth args builder.
tests-expanded/test_account_tests.rs Adjusts generated attributes on __check_auth args builder.
soroban-spec-rust/src/lib.rs Adds auth/executable-related contract types (but currently duplicates definitions).
soroban-sdk/tests/compile_fails/contracttrait_cfg_errors.stderr New compile-fail expected diagnostics for cfg/cfg_attr restrictions.
soroban-sdk/tests/compile_fails/contracttrait_cfg_errors.rs New compile-fail test covering cfg/cfg_attr restrictions.
soroban-sdk/tests/compile_fails.rs Adds trybuild runner for compile-fail tests.
soroban-sdk/test_snapshots/tests/crypto_bls12_381/test_invoke_contract.1.json Snapshot updated for new wasm/hash output.
soroban-sdk/src/spec_shaking.rs Removes manual markers for auth types (now handled via contracttype under v2).
soroban-sdk/src/lib.rs Updates docs: v2 behavior, export deprecation, and contracttrait cfg guidance.
soroban-sdk/src/auth.rs Makes auth types use export=false only when v2 is not enabled.
soroban-sdk/src/address.rs Makes Executable use export=false only when v2 is not enabled.
soroban-sdk/src/_features.rs Updates feature docs to describe export no-op + reachability model under v2.
soroban-sdk/docs/contracttrait.md Documents cfg/cfg_attr restrictions and the generated helper macro rationale.
soroban-sdk/Cargo.toml Adds trybuild dependency.
soroban-sdk-macros/src/lib.rs Adds export-arg deprecation emitter + adjusts contracttype/contracterror export logic under v2.
soroban-sdk-macros/src/derive_fn.rs Improves function-registration ctor hashing & supports cfg-gated registrations.
soroban-sdk-macros/src/derive_event.rs Adds export-arg deprecation for events; changes export logic under v2.
soroban-sdk-macros/src/derive_contractimpl_trait_macro.rs Rejects cfg/cfg_attr in unsupported places; improves error surfacing while preserving macro/trait availability.
soroban-sdk-macros/src/derive_contractimpl_trait_default_fns_not_overridden.rs Adds cfg-aware default-vs-override selection and emits defaults under inverse cfg.
soroban-sdk-macros/src/derive_args.rs Passes through cfg/doc/allow/deny attrs to generated args-builder fns.
soroban-sdk-macros/src/attribute.rs Adds helpers to detect cfg/cfg_attr and reject unsupported items with combined errors.
Cargo.toml Bumps workspace crate versions to 26.1.1.
.github/workflows/test-with-soroban-examples.yml Improves patching logic for transitive crates.io SDK deps to avoid duplicate lang items.
.github/workflows/test-with-openzeppelin-stellar-contracts.yml Same: patch transitive crates.io SDK deps + reuse crate list collection.
Comments suppressed due to low confidence (1)

soroban-sdk-macros/src/derive_fn.rs:1

  • The ctor symbol hash now depends on TokenStream::to_string() for #[cfg(...)] attributes. to_string() output is not a stable, canonical representation across proc-macro tooling versions and can change with formatting, causing unnecessary churn in generated symbol names and snapshots without a semantic change. Prefer hashing a normalized representation (e.g., parse each #[cfg]'s Meta/token args and re-emit a canonical form, or hash the structured syn AST) to make the result resilient to token formatting differences.
use crate::{

Comment on lines +333 to +337
pub struct ContractContext {
pub args: soroban_sdk::Vec<soroban_sdk::Val>,
pub contract: soroban_sdk::Address,
pub fn_name: soroban_sdk::Symbol,
}
Comment on lines +433 to +437
pub struct ContractContext {
pub args: soroban_sdk::Vec<soroban_sdk::Val>,
pub contract: soroban_sdk::Address,
pub fn_name: soroban_sdk::Symbol,
}
Comment thread soroban-sdk/Cargo.toml
ark-bn254 = { version = "0.5", default-features = false, features = ["curve"] }
ark-bls12-381 = { version = "0.5", default-features = false, features = ["curve"] }
ark-ff = { version = "0.5", default-features = false }
trybuild = "1.0.115"
Comment on lines +248 to 266
let (idents, wrap_idents, attrs, hash_parts): (Vec<_>, Vec<_>, Vec<_>, Vec<_>) = fns
.iter()
.map(|f| {
let attrs = f
.attrs
.iter()
.filter(|attr| is_attr_cfg(attr))
.collect::<Vec<_>>();
let ident_str = f.ident.unraw().to_string();
let wrap_ident = format_ident!("__{}__{}__invoke_raw_slice", ty_str, ident_str);
(ident_str, wrap_ident)
// Prefix the cfg attrs so cfg-gated registrations and their inverse-cfg
// defaults do not collide on the same internal ctor symbol. The ident
// is concatenated as a bare string (not interpolated through `quote!`,
// which would render it as a quoted string literal) so methods without
// cfg attrs are unchanged.
let cfg_prefix = quote!(#(#attrs)*).to_string();
let hash_part = format!("{cfg_prefix}{ident_str}");
(ident_str, wrap_ident, attrs, hash_part)
})
@leighmcculloch
leighmcculloch changed the base branch from main to release/v26.1.0 July 20, 2026 21:48
@leighmcculloch
leighmcculloch marked this pull request as draft July 20, 2026 21:49
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedsoroban-env-host@​26.1.3 ⏵ 26.1.486100100100100
Updatedsoroban-env-common@​26.1.3 ⏵ 26.1.491 +1100100100100
Updatedsoroban-env-guest@​26.1.3 ⏵ 26.1.410010093100100

View full report

@leighmcculloch

Copy link
Copy Markdown
Member

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.

2 participants