rust-libp2p/docs/release.md
Max Inden cec1a8d26f
docs/release: Document cargo-release process and mention root changelog (#3028)
* docs/release: Document cargo-release process

* docs/release: Document update to root level changelog.md
2022-10-20 20:56:02 +01:00

1.5 KiB

Release process

This project follows semantic versioning. The following documentation will refer to X.Y.Z as major, minor and patch version.

Development between releases

  • Every substantial pull request should add an entry to the [unreleased] section of the corresponding crate CHANGELOG.md file. See #1698 as an example.

    In case there is no [unreleased] section yet, create one with an increased major, minor or patch version depending on your change. Update the version in the crate's Cargo.toml. In addition update the corresponding entry of the crate in the root level Cargo.toml and add an entry in the root level CHANGELOG.md.

Releasing one or more crates

Prerequisites

Steps

  1. Remove the [unreleased] tag for each crate to be released in the respective CHANGELOG.md. Create a pull request with the changes against the rust-libp2p master branch.

  2. Once merged, run cargo release --workspace --sign-tag --no-push --execute on the (squash-) merged commit on the master branch.

  3. Confirm that cargo release tagged the commit correctly via git push $YOUR_ORIGIN --tag --dry-run and then push the new tags via git push $YOUR_ORIGIN --tag. Make sure not to push unrelated git tags.

    Note that dropping the --no-push flag on cargo release might as well do the trick.