From f41f10199cea8f5be96c2e506ffc8f8b19f47fcc Mon Sep 17 00:00:00 2001 From: Dirkjan Ochtman Date: Mon, 11 Oct 2021 10:03:29 +0200 Subject: [PATCH] Add release procedure notes --- RELEASING.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 RELEASING.md diff --git a/RELEASING.md b/RELEASING.md new file mode 100644 index 0000000..023a8a0 --- /dev/null +++ b/RELEASING.md @@ -0,0 +1,26 @@ +# Making a rustls-native-certs release + +This is a checklist for steps to make before/after making a rustls release. + +1. Attend to the README.md: this appears on crates.io for the release, and can't be edited after + the fact. + - Ensure the version has a good set of release notes. Move old release notes to OLDCHANGES.md + if this is getting excessively long. + - Write the version and date of the release. +2. Run `cargo update` followed by `cargo outdated`, to check if we have any + dependency updates which are not already automatically taken by their semver specs. + - If we do, take them if possible with separate commits (but there should've been + dependabot PRs submitted for these already.) +3. Now run `cargo test --all-features` to ensure our tests continue to pass with the + updated dependencies. +4. Update `Cargo.toml` to set the correct version. +5. Make a commit with the above changes, something like 'Prepare $VERSION'. This + should not contain functional changes: just versions numbers, and markdown changes. +6. Do a dry run: check `cargo publish --dry-run` +7. Push the above commit. Wait for CI to confirm it as green. + - Any red _should_ naturally block the release. + - If rustc nightly is broken, this _may_ be acceptable if the reason is understood + and does not point to a defect. +8. Tag the released version: `git tag -m '0.20.0' v/0.20.0` +9. Push the tag: `git push --tags` +10. Do the release: `cargo publish`.