Skip to content

Latest commit

 

History

History
59 lines (33 loc) · 1.99 KB

RELEASING.md

File metadata and controls

59 lines (33 loc) · 1.99 KB

Releasing new crate versions

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.

Prerequisites

We use cargo-release to automate crate releases. You will need to install it locally:

cargo install cargo-release

Preparing

To produce a new release a workspace crate, perform the following steps:

  1. Check its CHANGELOG.md file to be complete and correctly formatted. The section for the new release should start with ## master header. Commit any changes you've made.

  2. Determine a new release [bump level] (patch, minor, major, or default release).

  3. 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
  4. (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

Executing

Once everything is prepared and checked, just execute the releasing process:

make release crate=juniper ver=minor exec=yes

Once the CI pipeline for the pushed Git tag successfully finishes, the crate is fully released.