This document lists the steps that lead to a successful release of the Nix library.
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 bytowncrier build --version=<VERSION> --yes
-
Ensure you have a crates.io token
- With the
publich-update
scope - Can be used for crate
nix
- It is set via
cargo login
- With the
-
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>