Linux/macOS (or WSL/VM for Windows)
Installed: psvm, zepter, cargo, try-runtime
psvm
zepter
cargo
try-runtime
Local chain running & baseline runtime noted (spec_version, impl_version)
spec_version
impl_version
Baseline
Record current runtime version (spec_version, pallets, dependencies).
Select Target Version
Pick next stable Polkadot SDK release (don’t skip versions).
Check Paseo governance announcements for testnet alignment.
Bump Dependencies
Run: psvm -v stableYYMM-ZZ
psvm -v stableYYMM-ZZ
Run: zepter fix
zepter fix
Review Changes
Read node-level changelogs.
Read runtime-level changelogs.
Compare against Polkadot SDK templates.
Update Metadata
Bump spec_version in runtime/src/lib.rs.
runtime/src/lib.rs
Bump package version in Cargo.toml.
Cargo.toml
Migrations
Write storage migration code if needed.
Run try-runtime to validate migrations.
Build & Test
cargo build --release → confirm WASM generated.
cargo build --release
Run all unit & integration tests.
Deploy Runtime Upgrade
Dev/Testnet → Sudo extrinsic via Polkadot.js Apps.
Mainnet → Governance proposal.
Verify
Confirm runtime version updated on-chain.
Run E2E functional tests.
Review custom pallets (NFT-backed loans, funding, compliance).
Write migration logic if Xcavate storage schema is affected.
Test Xcavate flows (mint, loans, asset transfers) on Paseo before production.
Validate XCM interactions with AssetHub/BridgeHub.
Update internal documentation.
Record upgrade in CHANGELOG.md.
CHANGELOG.md
Tag release in Git.
Last updated 5 months ago