Skip to content

Releasing

Christoph Otter edited this page Jun 10, 2025 · 31 revisions
  1. Make sure you have cargo-release installed.

  2. Run cargo release [patch/minor/major] (patch, minor, or major varying by what version you want to release).
    This will do a dry-run, validating everything builds correctly, and all the criteria are met.

  3. Then re-run the command but append the -x flag to run it for real and get the version out there! Note that because of crate-ci/cargo-release#829, the publishing fails right now and you need to manually cargo publish some of the crates. That should be it. The changelog should be automatically updated, the tags created, and releases pushed to crates.io.

    Because of the bug mentioned above, you'll have to take steps similar to these:

    cargo release -x $VERSION
    (cd packages/schema-derive && cargo publish) && \
    (cd packages/schema && cargo publish) && \
    (cd packages/std && cargo publish) && \
    (cd packages/vm-derive && cargo publish) && \
    (cd packages/vm && cargo publish) && \
    (cd packages/check && cargo publish) && \
    cargo release tag -x && \
    git push && git push origin $VERSION

You might also want to take a look at the .circleci/config.yml for any "enable again once x.x is released" todos.

Clone this wiki locally