Skip to content

[SC-53] Pin the Rust toolchain #1217

Description

@yusuftomilola

Overview

Every contracts job in .github/workflows/CI.yaml uses dtolnay/rust-toolchain@stable with toolchain: stable. "Stable" moves — a new release can introduce clippy lints that fail -D warnings on a PR that changed nothing, and contributors locally may compile against a different version than CI.

Tasks

  • Add contracts/rust-toolchain.toml pinning an exact version with the wasm32-unknown-unknown target and the rustfmt/clippy components.
  • Update CI jobs to honour the pinned toolchain rather than floating stable.
  • Document the upgrade process: bump deliberately in its own PR so lint churn is isolated from feature work.
  • Verify compatibility with the pinned soroban-sdk version.
  • Note the required toolchain in contract documentation.

Acceptance Criteria

  • The toolchain is pinned and CI uses it.
  • A new stable Rust release cannot spontaneously break CI.
  • Local and CI builds use the same compiler version.

Notes for Contributors

Requires Rust + Soroban. Workspace: contracts/ (soroban-sdk 22, members: assetsup, contrib, multisig-wallet, multisig_transfer, asset-maintenance). Run cargo test --all, cargo fmt --all -- --check, and cargo clippy --all-targets --all-features -- -D warnings before opening a PR — CI enforces all three. Comment below to be assigned.

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programcontractdevopsCI/CD, infrastructure, and deployment

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions