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