Skip to content

Latest commit

 

History

History
106 lines (61 loc) · 3.74 KB

File metadata and controls

106 lines (61 loc) · 3.74 KB

Release Checklist

Releases of the packages contained in this monorepo follow the SemVer convention.

![NOTE] The contracts and bindings are independently versioned with X.Y.Z and A.B.C, respectively. Both versions can include release candidates (suffixed with -rc.?).

We distinguish between three release cases:

  • Releasing a new forwarder bases version

    • contracts/X.Y.Z version
    • bindings/A.0.0 version
  • Maintaining the bindings resulting in a new

    • bindings/A.B.C version

Releasing a new Forwarder Bases Version

1. Prerequisites

  • Visit https://www.soliditylang.org/ and check that Solidity compiler version used in contracts/foundry.toml has no known vulnerabilities.

  • Install the dependencies with just contracts-deps

  • Check that the dependencies are up-to-date and have no known vulnerabilities in the dependencies

2. Build the Contracts

  • Run just contracts-build

  • Run the test suite with just contracts-test

3. Create a new contracts and bindings GitHub Release

  • Change the bindings package version number in the ./bindings/Cargo.toml file to A.0.0, where A is the last MAJOR version number incremented by 1.

  • Clean the bindings build with just bindings-clean.

  • Regenerate the bindings with just contracts-gen-bindings.

  • Run just bindings-build and check that the Cargo.lock file reflects the version number change.

  • Run the tests with just bindings-test.

  • After merging, create new tags for:

    • contracts/X.Y.Z where X.Y.Z is the new semantic version number
    • bindings/A.0.0 tag, where A is the last MAJOR version incremented by 1.
  • Create new GH releases for both packages.

4. Publish a new contracts package

  • Publish the contracts package on https://soldeer.xyz/ with

    just contracts-publish <X.Y.Z> --dry-run

    where <X.Y.Z> is the version number and check the resulting contracts.zipfile. If everything is correct, remove the--dry-run flag and publish the package.

5. Publish a new bindings package

  • Publish the anoma-forwarder-bases-bindings package on https://crates.io/ with

    just bindings-publish --dry-run

    and check the result. If everything is correct, remove the --dry-run flag and publish the package.

Maintaining the Bindings

1. Prerequisites

  • Check that the bindings are up-to-date with

    just bindings-check
  • Checkout a new git branch branching off from main.

  • Check that there are no staged or unstaged changes by running git status.

2. Create a new bindings GitHub Release

  • Change the bindings package version number in the ./bindings/Cargo.toml file to A.B.C, where A and B are the last MAJOR and MINOR version numbers and C is the last PATCH version number incremented by 1.

  • Run just bindings-build and check that the Cargo.lock file reflects the version number change.

  • Run the tests with just bindings-test.

  • After merging, create a new bindings/A.B.C tag, where A and B are the last MAJOR and MINOR version numbers, respectively, and C is the last PATCH version number incremented by 1.

  • Create a new GH release.

3. Publish a new bindings package

  • Publish the anoma-forwarder-bases-bindings package on https://crates.io/ with

    just bindings-publish --dry-run

    and check the result. If everything is correct, remove the --dry-run flag and publish the package.