Skip to content

Maintenance

Christoph Otter edited this page Feb 27, 2024 · 8 revisions

This page contains instructions for maintainer, not users.

Update CosmWasm

  1. Set version of cosmwasm-std/cosmwasm-vm in libwasmvm/Cargo.toml
  2. Run (cd libwasmvm && cargo check) to update libwasmvm/Cargo.lock
  3. Update testing contracts: (cd testdata && ./download_releases.sh v0.13.0)
  4. Run Rust tests: (cd libwasmvm && cargo test)
  5. Run Go tests: make build-rust && make test (This will create libwasmvm.* files. Don't commit those)

Create a release

  1. Merge all your work in main
  2. export NEW_WASMVM_VERSION="1.2.1"
  3. If you do a major version bump: Go requires you to change the package suffix to v2 / v3 / ... and update all imports to that
  4. Update version in Cargo.toml, update lockfile and commit to main:
    gsed -i -e "s/^version[[:space:]]*=[[:space:]]*.*$/version = \"$NEW_WASMVM_VERSION\"/" libwasmvm/Cargo.toml
    (cd libwasmvm && cargo check)
    git add libwasmvm/Cargo.* && git commit -m "Set libwasmvm version to $NEW_WASMVM_VERSION"
    git push
    
  5. Wait for the re-build of the shared libraries by the CI job deploy_to_git. This adds a [skip ci] Built release libraries commit. Pull latest main branch.
    watch --interval 20 'git pull && git log'
    
  6. git tag "v$NEW_WASMVM_VERSION", review everything and git push --tags

Now the shared libraries are checked in at the new tag. A CI build is triggered by the tag, that creates a release including the static library build. Once the release is done, add some meaningful description to the release, as it is shown to people using dependabot. Especially consensus-breaking changes are of interest here.

Clone this wiki locally