Releasing of workspace crates of this project is performed by pushing the Git release tag (having <crate-name>@<version> format), following by the CI pipeline creating a GitHub release and publishing the crate to crates.io.
WARNING: Only one workspace crate may be released at a time. So, if you need to release multiple workspace crates, do this sequentially.
We use cargo-release to automate crate releases. You will need to install it locally:
cargo install cargo-releaseTo produce a new release a workspace crate, perform the following steps:
-
Check its
CHANGELOG.mdfile to be complete and correctly formatted. The section for the new release should start with## masterheader. Commit any changes you've made. -
Determine a new release [bump level] (
patch,minor,major, or defaultrelease). -
Run the release process in dry-run mode and check the produced diffs to be made in the returned output.
make release crate=juniper ver=minor
-
(Optional) Not everything may be captured in dry-run mode. It may be a good idea to run a local test, without pushing the created Git commit and tag.
make release crate=juniper ver=minor exec=yes push=no
Once everything is prepared and checked, just execute the releasing process:
make release crate=juniper ver=minor exec=yesOnce the CI pipeline for the pushed Git tag successfully finishes, the crate is fully released.