This document describes how to publish a new release of range-alloc.
- Push access to the default branch
- A crates.io API token with publish rights for all workspace crates
ghCLI installed and authenticated (for creating the GitHub release)
Pick the new version number following cargo semver conventions. For this document,
we'll use X.Y.Z as a placeholder.
a) Add the new version to the Table of Contents:
Find the line:
- [Unreleased](#unreleased)
Add a new entry directly below it:
- [vX.Y.Z](#vXYZ)
(The anchor is the version with dots removed, e.g. v0.2.0 -> #v020)
b) Add a version heading under Unreleased:
Find:
## Unreleased
Add a blank line and a new version section below it, moving all existing unreleased items under the new heading:
## Unreleased
## vX.Y.Z
Released YYYY-MM-DD
- (move all previously unreleased items here)
c) Update the Diffs section at the bottom:
Find the existing unreleased diff link:
- [Unreleased](https://github.com/gfx-rs/range-alloc/compare/vPREVIOUS...HEAD)
Update it and add a new entry:
- [Unreleased](https://github.com/gfx-rs/range-alloc/compare/vX.Y.Z...HEAD)
- [vX.Y.Z](https://github.com/gfx-rs/range-alloc/compare/vPREVIOUS...vX.Y.Z)
Set the version field to the new version:
version = "X.Y.Z"If this is a workspace, update workspace.package.version and any intra-workspace
dependency versions as needed.
Update any version references (dependency snippets, compatibility tables, etc.) to reflect the new version.
jj commit -m "Release vX.Y.Z"
jj tag create vX.Y.Z
jj git pushcargo publishExtract the release notes from CHANGELOG.md and create a release:
gh release create vX.Y.Z --title "vX.Y.Z" --notes "<paste release notes here>"Verify:
- The crate is visible at https://crates.io/crates/range-alloc/X.Y.Z
- Docs are building at https://docs.rs/range-alloc/X.Y.Z
- The GitHub release exists at https://github.com/gfx-rs/range-alloc/releases/tag/vX.Y.Z