Releases of the packages contained in this monorepo follow the SemVer convention.
![NOTE] The
contractsandbindingsare independently versioned withX.Y.ZandA.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.Zversionbindings/A.0.0version
-
Maintaining the bindings resulting in a new
bindings/A.B.Cversion
-
Visit https://www.soliditylang.org/ and check that Solidity compiler version used in
contracts/foundry.tomlhas 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
-
Run
just contracts-build -
Run the test suite with
just contracts-test
-
Change the
bindingspackage version number in the./bindings/Cargo.tomlfile toA.0.0, whereAis the lastMAJORversion number incremented by 1. -
Clean the bindings build with
just bindings-clean. -
Regenerate the bindings with
just contracts-gen-bindings. -
Run
just bindings-buildand check that theCargo.lockfile reflects the version number change. -
Run the tests with
just bindings-test. -
After merging, create new tags for:
-
contracts/X.Y.ZwhereX.Y.Zis the new semantic version number -
bindings/A.0.0tag, whereAis the lastMAJORversion incremented by 1.
-
-
Create new GH releases for both packages.
-
Publish the
contractspackage on https://soldeer.xyz/ withjust contracts-publish <X.Y.Z> --dry-run
where
<X.Y.Z>is the version number and check the resultingcontracts.zipfile. If everything is correct, remove the--dry-runflag and publish the package.
-
Publish the
anoma-forwarder-bases-bindingspackage on https://crates.io/ withjust bindings-publish --dry-run
and check the result. If everything is correct, remove the
--dry-runflag and publish the package.
-
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.
-
Change the
bindingspackage version number in the./bindings/Cargo.tomlfile toA.B.C, whereAandBare the lastMAJORandMINORversion numbers andCis the lastPATCHversion number incremented by 1. -
Run
just bindings-buildand check that theCargo.lockfile reflects the version number change. -
Run the tests with
just bindings-test. -
After merging, create a new
bindings/A.B.Ctag, whereAandBare the lastMAJORandMINORversion numbers, respectively, andCis the lastPATCHversion number incremented by 1. -
Create a new GH release.
-
Publish the
anoma-forwarder-bases-bindingspackage on https://crates.io/ withjust bindings-publish --dry-run
and check the result. If everything is correct, remove the
--dry-runflag and publish the package.