Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
8819cea
replace wasm-gen with wasm-encoder and add spec filtering
leighmcculloch Jan 8, 2026
ce91eb8
Remove tests with hard-coded local paths
leighmcculloch Jan 8, 2026
39493ab
Fix clippy warnings for needless_continue and match_same_arms
leighmcculloch Jan 8, 2026
6958e16
Rename variable to is_target_section for clarity
leighmcculloch Jan 8, 2026
3432f53
add marker-based spec filtering for types and events
leighmcculloch Jan 9, 2026
c27baf8
fix: address clippy lints in filter module
leighmcculloch Jan 9, 2026
c55e029
fix: rename test variables to avoid similar_names lint
leighmcculloch Jan 9, 2026
5f95ce1
Merge branch 'main' into spec-clean
leighmcculloch Jan 30, 2026
b19d674
Merge branch 'main' into spec-clean
leighmcculloch Jan 30, 2026
c3949e9
add cfg flag for spec optimization using data markers
leighmcculloch Jan 30, 2026
15af743
add cfg flag for spec optimization using data markers
leighmcculloch Jan 30, 2026
4bdde5e
move CFG_FLAG const to top of with_flags fn
leighmcculloch Jan 30, 2026
2373e76
use marker module from soroban-spec for filtering
leighmcculloch Jan 30, 2026
d1041fc
use env var instead of cfg flag for spec marker support
leighmcculloch Feb 6, 2026
51f75f4
Merge branch 'main' into spec-clean
leighmcculloch Feb 27, 2026
581be8c
rename env var to SOROBAN_SDK_BUILD_SYSTEM_SUPPORTS_SPEC_SHAKING_V2
leighmcculloch Mar 2, 2026
f63471f
switch soroban-spec to git rev and update shaking module usage
leighmcculloch Mar 2, 2026
319b1d5
move replace_custom_section to wasm module
leighmcculloch Mar 2, 2026
50f51dc
add spec shaking fixture and integration tests
leighmcculloch Mar 2, 2026
acddd8a
rename env var to include experimental prefix
leighmcculloch Mar 2, 2026
96f9540
update soroban-sdk rev and fix env var name
leighmcculloch Mar 3, 2026
811dd1d
Merge branch 'main' into spec-clean
leighmcculloch Mar 3, 2026
9602554
simplify `spec_entry_name` return type from `Option<String>` to `String`
leighmcculloch Mar 3, 2026
b7d9f5c
Merge branch 'main' into spec-clean
leighmcculloch Mar 4, 2026
58d7f4e
update soroban-sdk rev and use spec_shaking_version_for_meta
leighmcculloch Mar 4, 2026
2801fbf
replace wasm-encoder with wasm-gen for meta injection
leighmcculloch Mar 4, 2026
78836e5
replace wasm-encoder with wasm-gen and remove WasmParsing error
leighmcculloch Mar 4, 2026
7748a98
add WasmParsing error variant and map replace_custom_section error
leighmcculloch Mar 4, 2026
72eea07
Merge branch 'main' into spec-clean
leighmcculloch Mar 5, 2026
991de5c
add filter_and_dedup_spec and test for dedup
leighmcculloch Mar 5, 2026
b72c0e8
Merge branch 'main' into spec-clean
leighmcculloch Mar 5, 2026
281297c
Merge branch 'main' into spec-clean
leighmcculloch Mar 5, 2026
a596030
make filter_and_dedup_spec pub
leighmcculloch Mar 5, 2026
4d2f010
chore: allow implicit hasher for HashSet
mootz12 Mar 5, 2026
f864612
test: check rssdk_spec_shaking meta key
mootz12 Mar 5, 2026
4eabdd3
upgrade soroban-spec and soroban-sdk deps to 25.2.0
leighmcculloch Mar 6, 2026
23f68c6
test with experimental_spec_shaking_v2 enabled and disabled
leighmcculloch Mar 6, 2026
70e5177
add diff steps to CI workflows for debugging
leighmcculloch Mar 6, 2026
c9740a0
add cargo update step to CI workflows
leighmcculloch Mar 6, 2026
b374d92
upload WASM artifacts in CI workflows
leighmcculloch Mar 9, 2026
2ef5f82
Merge branch 'main' into spec-clean
leighmcculloch Mar 9, 2026
0e06ecd
run cargo update per-contract directory
leighmcculloch Mar 9, 2026
1b4da04
exclude deps/ from CI wasm discovery
leighmcculloch Mar 9, 2026
dfb8654
Merge branch 'fix-wasm-find-release-path' into spec-clean
leighmcculloch Mar 9, 2026
4fb8d71
Merge branch 'main' into spec-clean
leighmcculloch Mar 9, 2026
c4ddcee
Merge branch 'main' into spec-clean
leighmcculloch Mar 9, 2026
ee5bdf1
remove `if` condition from find-wasm step
leighmcculloch Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion .github/workflows/test-with-openzeppelin-contracts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ jobs:
fail-fast: false
matrix:
dir: ${{ fromJSON(needs.collect-crates.outputs.dirs) }}
experimental_spec_shaking_v2: [true, false]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
Expand All @@ -65,14 +66,34 @@ jobs:
- run: echo "${{ github.workspace }}/stellar-cli" >> $GITHUB_PATH
- run: rustup update
- run: rustup target add wasm32v1-none
- name: Enable experimental_spec_shaking_v2 feature
if: matrix.experimental_spec_shaking_v2
run: |
find . -name Cargo.toml | while read -r file; do
# Add feature to entries with existing features
sed -i '/soroban-sdk = {/s|features = \[|features = ["experimental_spec_shaking_v2", |' "$file"
# Add features field to entries without features
sed -i '/soroban-sdk = {/{/features/!s| }|, features = ["experimental_spec_shaking_v2"] }|}' "$file"
done
cargo update -p soroban-sdk
- name: Diff
run: git diff
- name: Build ${{ matrix.dir }}
run: stellar contract build --manifest-path ${{ matrix.dir }}/Cargo.toml
- name: Find wasm
if: ${{ startsWith(matrix.dir, 'examples/') }}
id: find-wasm
run: |
wasm=$(find . -name '*.wasm' -path '*/wasm32v1-none/release/*' -not -path '*/deps/*' | head -1)
echo "wasm=$wasm" | tee -a $GITHUB_OUTPUT
- name: Set artifact name
id: artifact-name
run: echo "name=wasm-$(echo ${{ matrix.dir }} | sed 's/\//-/g')${{ matrix.experimental_spec_shaking_v2 && '-spec-shaking-v2' || '' }}" | tee -a $GITHUB_OUTPUT
- name: Upload WASM artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.artifact-name.outputs.name }}
path: ${{ steps.find-wasm.outputs.wasm }}
retention-days: 3
- name: Verify interface
if: ${{ startsWith(matrix.dir, 'examples/') }}
run: |
Expand Down Expand Up @@ -104,3 +125,5 @@ jobs:
- name: Verify spec
if: ${{ startsWith(matrix.dir, 'examples/') }}
run: stellar contract spec-verify --wasm ${{ steps.find-wasm.outputs.wasm }}
- name: Diff
run: git add -N . && git diff HEAD
24 changes: 24 additions & 0 deletions .github/workflows/test-with-soroban-examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ jobs:
fail-fast: false
matrix:
dir: ${{ fromJSON(needs.collect-examples.outputs.dirs) }}
experimental_spec_shaking_v2: [true, false]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
Expand All @@ -73,13 +74,34 @@ jobs:
- run: echo "${{ github.workspace }}/stellar-cli" >> $GITHUB_PATH
- run: rustup update
- run: rustup target add wasm32v1-none
- name: Enable experimental_spec_shaking_v2 feature
if: matrix.experimental_spec_shaking_v2
run: |
find . -name Cargo.toml | while read -r file; do
# Add feature to entries with existing features
sed -i '/soroban-sdk = {/s|features = \[|features = ["experimental_spec_shaking_v2", |' "$file"
# Add features field to entries without features
sed -i '/soroban-sdk = {/{/features/!s| }|, features = ["experimental_spec_shaking_v2"] }|}' "$file"
(cd "$(dirname "$file")" && cargo update -p soroban-sdk 2>/dev/null || true)
done
- name: Diff
run: git diff
- name: Build ${{ matrix.dir }}
run: make -C ${{ matrix.dir }} build
- name: Find wasm
id: find-wasm
run: |
wasm=$(find ${{ matrix.dir }}/target -name '*.wasm' -path '*/wasm32v1-none/release/*' -not -path '*/deps/*' | head -1)
echo "wasm=$wasm" | tee -a $GITHUB_OUTPUT
- name: Set artifact name
id: artifact-name
run: echo "name=wasm-$(echo ${{ matrix.dir }} | sed 's/\//-/g')${{ matrix.experimental_spec_shaking_v2 && '-spec-shaking-v2' || '' }}" | tee -a $GITHUB_OUTPUT
- name: Upload WASM artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ steps.artifact-name.outputs.name }}
path: ${{ steps.find-wasm.outputs.wasm }}
retention-days: 3
- name: Verify interface
run: |
output=$(stellar contract info interface --wasm ${{ steps.find-wasm.outputs.wasm }} --output json)
Expand Down Expand Up @@ -107,3 +129,5 @@ jobs:
fi
- name: Verify spec
run: stellar contract spec-verify --wasm ${{ steps.find-wasm.outputs.wasm }}
- name: Diff
run: git add -N . && git diff HEAD
84 changes: 57 additions & 27 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ version = "25.0.0"

# Dependencies from the rs-soroban-sdk repo:
[workspace.dependencies.soroban-spec]
version = "25.0.2"
version = "25.2.0"

[workspace.dependencies.soroban-spec-rust]
version = "25.0.2"
version = "25.2.0"

[workspace.dependencies.soroban-sdk]
version = "25.0.2"
version = "25.2.0"

[workspace.dependencies.soroban-env-host]
version = "25.0.2"
Expand Down Expand Up @@ -138,4 +138,3 @@ lto = true
[profile.release-with-panic-unwind]
inherits = "release"
panic = "unwind"

1 change: 1 addition & 0 deletions cmd/crates/soroban-spec-tools/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ hex = { workspace = true }
wasmparser = { workspace = true }
base64 = { workspace = true }
thiserror = "1.0.31"
wasm-encoder = "0.235.0"
indexmap = { version = "2.7", features = ["serde"] }


Expand Down
1 change: 1 addition & 0 deletions cmd/crates/soroban-spec-tools/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ pub mod contract;
pub mod event;
pub mod utils;
mod verify;
pub mod wasm;

pub use contract::sanitize;
pub use verify::SpecWarning;
Expand Down
Loading
Loading