13da5c369Sopenharmony_ciThis document lists the steps that lead to a successful release of the Nix 23da5c369Sopenharmony_cilibrary. 33da5c369Sopenharmony_ci 43da5c369Sopenharmony_ci# Before Release 53da5c369Sopenharmony_ci 63da5c369Sopenharmony_ciNix uses [cargo release](https://github.com/crate-ci/cargo-release) to automate 73da5c369Sopenharmony_cithe release process. Based on changes since the last release, pick a new 83da5c369Sopenharmony_civersion number following semver conventions. For nix, a change that drops 93da5c369Sopenharmony_cisupport for some Rust versions counts as a breaking change, and requires a 103da5c369Sopenharmony_cimajor bump. 113da5c369Sopenharmony_ci 123da5c369Sopenharmony_ciThe release is prepared as follows: 133da5c369Sopenharmony_ci 143da5c369Sopenharmony_ci- Ask for a new libc version if, necessary. It usually is. Then update the 153da5c369Sopenharmony_ci dependency in Cargo.toml accordingly. 163da5c369Sopenharmony_ci- Confirm that everything's ready for a release by running 173da5c369Sopenharmony_ci `cargo release <patch|minor|major>` 183da5c369Sopenharmony_ci- Create the release with `cargo release -x <patch|minor|major>` 193da5c369Sopenharmony_ci- Push the created tag to GitHub. 20