1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
This document lists the steps that lead to a successful release of the Nix
library.
# Before Release
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:
- Ask for a new libc version if, necessary. It usually is.
- Make a commit with a message like "Release v0.8.3" with the following
changes:
- In `CHANGELOG.md`, rename the Unreleased section to the new version
followed by the date of the release.
- Add a new Unreleased section header to `CHANGELOG.md` with the four
Added, Changed, Fixed, and Removed sections added.
- In `Cargo.toml`, update the version to the new version.
- In `Cargo.toml`, change the libc dependency to the latest version.
- In `README.md`, update the version in the Usage section to the new
version.
- Confirm that everything's ready for a release by running
`cargo publish --dry-run`
- Make a pull request.
- Once the PR is merged, tag the merge commit, e.g. `git tag v0.8.3
$MERGE_COMMIT_SHA1`.
- Push the tag, e.g. `git push origin v0.8.3`.
# Create Release
- Checkout the tag.
- Publish to crates.io with `cargo publish`.
# After Release
Once a release is done, all that's left is to change the `libc` version
back to using the version from git. So make a pull request containing a
simple commit entitled "Start the next dev cycle" that changes the `libc`
dependency in `Cargo.toml` to using it from git master.
|