diff --git a/MAINTENANCE.md b/MAINTENANCE.md index c032c254..18e29f8a 100644 --- a/MAINTENANCE.md +++ b/MAINTENANCE.md @@ -1,5 +1,12 @@ This document explains how to perform the project's maintenance tasks. +### Repository Configuration + +Settings can be changed here by means of a PR - depending on what it is a conversation about pro's and cons might be needed. + +https://github.com/rust-lang/team/blob/master/repos/rust-lang/flate2-rs.toml + + ### Creating a new release #### Artifacts @@ -7,7 +14,7 @@ This document explains how to perform the project's maintenance tasks. * a tag of the version number * a new [crate version](https://crates.io/crates/flate2/versions) -#### Process +#### Process: Plain `cargo publish` To generate all the artifacts above, one proceeds as follows: @@ -19,3 +26,20 @@ To generate all the artifacts above, one proceeds as follows: 6. `git push --tags` to push the new tag. 7. Go to the newly created release page on GitHub and edit it by pressing the "Generate Release Notes" and the `@` button. Save the release. +#### Alternative Process: `cargo smart-release` + +This also maintains the `changelog.md` file, and it's able to pick up previous `cargo publish` releases and thus mixes well. +However, it's quite new and needs some polishing. + +To just update the changelog, run `cargo changelog --write`. + +To create a new release, do as follows: + +1. `git checkout -b release-` - move to a branch to prepare making changes to the repository. *Changes cannot be made to `main` as it is protected.* +2. `cargo changelog --write` to update the changelog. Edit it to your liking. +3. Create a commit like `git commit -am "update changelog prior to release"` +4. `cargo smart-release -e --update-crates-index` - double-check that the release version is sensible, and if not, just edit `Cargo.toml` by hand before. +5. Tags were created, and they should be pushed, but it might be that it fails to create a GitHub release. +6. Create an additional release tag with the `v` removed, i.e. `git tag -s v`. Then `git push --tags` by hand. +7. Double-check the newly created release on GitHub is populated - if not, generate the changelog manually. +