Repository navigation
Support fully qualified type names for v30 - #2798
Draft
leighmcculloch wants to merge 20 commits into
Draft
leighmcculloch wants to merge 20 commits into
leighmcculloch wants to merge 20 commits into
Conversation
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Two moderate build-path issues remain unresolved; the warning wording also needs correction.
0 open findings
What changed in this PR
Updates Soroban dependencies and CLI contract builds for v30 fully qualified type/event names.
Changes:
- Pins v30 SDK, environment, XDR, and related revisions.
- Adds spec shaking and qualified-name reduction.
- Updates fixtures, tests, interface generation, and CI workflows.
Review findings:
Cargo.toml— moderate: raw fixture builds bypass required v30 post-processing.build.rs— moderate:--imagebuilds bypass the new transformation.build.rs— nit: collision warnings also cover reserved-name renaming.
| File | Description |
|---|---|
deny.toml |
Allows temporary pinned Git dependencies. |
cmd/soroban-cli/src/utils/contract-workspace-template/Cargo.toml.removeextension |
Updates the generated SDK version to v30. |
cmd/soroban-cli/src/commands/contract/info/interface.rs |
Passes SDK version to Rust interface generation. |
cmd/soroban-cli/src/commands/contract/build.rs |
Adds version-aware shaking and qualified-name reduction. |
cmd/soroban-cli/src/commands/contract/arg_parsing.rs |
Adapts tests to widened XDR names. |
cmd/crates/soroban-test/tests/it/build.rs |
Adds qualified-name and shaking integration coverage. |
cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/src/lib.rs |
Defines qualified-name fixture types and events. |
cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/contracts/names/Cargo.toml |
Defines fixture contract metadata. |
cmd/crates/soroban-test/tests/fixtures/workspace-with-qualified-names/Cargo.toml |
Defines the fixture workspace. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/token/Cargo.toml |
Updates the token fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/token_renamed/Cargo.toml |
Updates the renamed-token fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/swap/Cargo.toml |
Updates the swap fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/hello_world/Cargo.toml |
Updates the hello-world fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/empty_constructor/Cargo.toml |
Updates the empty-constructor fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_type/Cargo.toml |
Updates the custom-type fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/custom_account/Cargo.toml |
Updates the custom-account fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/constructor/Cargo.toml |
Updates the constructor fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/test-wasms/auth/Cargo.toml |
Updates the auth fixture to v30. |
cmd/crates/soroban-test/tests/fixtures/hello/Cargo.toml |
Updates the hello fixture. |
cmd/crates/soroban-test/tests/fixtures/bye/Cargo.toml |
Updates the bye fixture. |
cmd/crates/soroban-spec-tools/src/lib.rs |
Supports widened type and event names. |
cmd/crates/soroban-spec-tools/src/event.rs |
Updates event-name construction. |
cmd/crates/soroban-spec-tools/src/contract.rs |
Formats widened contract names. |
Cargo.toml |
Updates workspace dependencies and v30 revisions. |
Cargo.lock |
Locks updated dependency revisions. |
.github/workflows/rpc-tests.yml |
Updates the protocol version. |
.github/workflows/ledger-emulator.yml |
Updates the protocol version. |
.github/workflows/bindings-ts.yml |
Updates the protocol version. |
🧠 Review effort: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+67
to
+70
| [workspace.dependencies.soroban-sdk] | ||
| version = "28.0.0" | ||
| version = "30.0.0" | ||
| git = "https://github.com/stellar/rs-soroban-sdk" | ||
| rev = "a2e51be61dc5c179595ba5b26da7da724e253886" |
Comment on lines
+376
to
381
| // optimization. The var says only that this CLI shakes; which | ||
| // rules it shakes a given contract by comes from the model that | ||
| // contract's meta selects. Current and new SDK versions no | ||
| // longer read this var, relying on the CLI version below | ||
| // instead, but it must keep being set for past SDK versions that | ||
| // require it. |
1 of 3 tasks
fnando
approved these changes
Oct 14, 2026
| [package] | ||
| name = "stellar-bye" | ||
| version = "28.1.0" | ||
| version = "30.0.0" |
| [package] | ||
| name = "soroban-hello" | ||
| version = "28.1.0" | ||
| version = "30.0.0" |
mootz12
reviewed
Oct 15, 2026
1 of 3 tasks
Member
Author
leighmcculloch
marked this pull request as draft
October 16, 2026 14:32
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
leighmcculloch
force-pushed
the
qualified-spec-names-for-v30
branch
from
October 16, 2026 16:45
08c60c7 to
de1b884
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


What
Update the xdr, sdk and env crates for v30 and teach
contract buildto reduce the fully qualified type and event names in contract specs and to shake specs by the version recorded in the wasm.Why
Contracts built with soroban-sdk v30 name user-defined types and events by their fully qualified path, which the CLI must read, shorten and shake correctly; this replaces #2751, #2674 and #2720.
Known limitations
The sdk, env and xdr crates are pinned to git revisions until they are released.