Release process =============== Generating Changelog -------------------- Install dependencies ```sh $ npm install -g conventional-changelog-cli $ cd rust-multihash $ conventional-changelog --preset conventionalcommits ``` Add the output of that to `CHANGELOG.md`. Write a human-centric summary of changes and add migration instructions for breaking changes if needed. Update the linked output to reference the new version, which conventional-changelog doesn't know about: ```md # [](https://github.com/multiformats/rust-multihash/compare/v0.17.0...v) (2022-12-06) ``` becomes: ```md # [v0.18.0](https://github.com/multiformats/rust-multihash/compare/v0.17.0...v0.18.0) (2022-12-06) ``` Create a pull request with the changelog changes and the correct version bumps to the crates. Publishing ---------- Once the PR above is merged, the crate can be published. This is done using [`cargo-release`](https://github.com/crate-ci/cargo-release). This requires the following permissions - on github.com/multiformats/rust-multihash - creating tags - pushing to `master` - on crates.io - publish access to all published crates Dry run ```sh $ cargo release --workspace ``` Actual publishing ```sh $ cargo release --workspace --execute ```