Skip to content

Latest commit

 

History

History
37 lines (28 loc) · 1.32 KB

RELEASE_PROCEDURE.md

File metadata and controls

37 lines (28 loc) · 1.32 KB

This document lists the steps that lead to a successful release of the Nix library.

Before Release

Nix uses cargo release to automate the release process. Based on changes since the last release, pick a new version number following semver conventions. For nix, a change that drops support for some Rust versions counts as a breaking change, and requires a major bump.

The release is prepared as follows:

NOTE: the following procedure should be done directly against the master branch of the repo.

  • Ask for a new libc version if, necessary. It usually is. Then update the dependency in Cargo.toml to rely on a release from crates.io.

    [dependencies]
    -libc = { git = "https://github.com/rust-lang/libc", rev = "<Revision>", features = ["extra_traits"] }
    +libc = { version = "<New Version>", features = ["extra_traits"] }
  • Update the version number in Cargo.toml

  • Generate CHANGELOG.md for this release by towncrier build --version=<VERSION> --yes

  • Ensure you have a crates.io token

    1. With the publich-update scope
    2. Can be used for crate nix
    3. It is set via cargo login
  • Confirm that everything's ready for a release by running cargo release <patch|minor|major>

  • Create the release with cargo release -x <patch|minor|major>