diff options
Diffstat (limited to 'doc/dev')
| -rw-r--r-- | doc/dev/Release.md | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/doc/dev/Release.md b/doc/dev/Release.md index 134a67cf9..1665cff67 100644 --- a/doc/dev/Release.md +++ b/doc/dev/Release.md @@ -114,9 +114,11 @@ release?" above. Add an acknowledgement for the current sponsor(s). -4. Determine what crates have semver changes. +4. Determine what semver/version update to do to each crate. We need to sort our crates into the following tiers. + * Unstable (0.x) `tor-*` and `arti-*` crates. + (Bump minor version, to the same value for each crate.) * No changes were made. (No version bump needed) * Only non-functional changes were made. @@ -128,6 +130,13 @@ release?" above. * APIs were broken. (Bump minor if major == 0; else bump major.) + For all `tor-*` and `arti-*` crates with 0.x version numbers + (which, as of March 2024 includes all `tor-*` crates, + and all `arti-*` crates apart from `arti` itself), + we always bump the minor version and release, + even if there have been no changes. + For other crates, things are more complicated: + You can identify crates that have no changes using `maint/changed_crates`: ``` maint/changed_crates -v "arti-v$LAST_VERSION" 2>&1 >/dev/null | grep -i "no change" @@ -170,17 +179,38 @@ before you continue! 2. Increase all appropriate version numbers. - To do this, run for each crate with functional changes: - `cargo set-version --bump {patch|minor|major} -p ${CRATE}`. + For unstable (0.x) `tor-*` and `arti-*` crates, + determine the new minor number. + `maint/crate_versions | grep -P '^tor|^arti'` + will show you the existing versions, + which should usually all be the same. + Pick the next minor version, and, for each such crate: + `cargo set-version -p ${CRATE} 0.${MINOR}.0`. + + For other crates: + + * For each crate with functional changes: + `cargo set-version --bump {patch|minor|major} -p ${CRATE}`. + + * For crates with non-functional changes, + you can use the `bump_nodep` script: + `./maint/bump_nodep crate1 crate2 crate3` ... - For crates with non-functional changes, - you can use the `bump_nodep` script: - `./maint/bump_nodep crate1 crate2 crate3` ... + In all cases, make sure you commit `Cargo.lock` changes too. 3. Check for side effects from bumping versions! - Is there a Cargo.lock change you forgot to commit? - If so, commit it. + As of March 2024, you can skip this section + for `tor-*` and `arti-*`, since: + * `arti` is the only non-0.x `arti-*` or `tor-*` crate; + * `arti` does not expose types from our lower-layer crates; + * None other of our crates depend on `tor-*` or `arti-*` crates. + Therefore all necessary bumps have been done. + + You may need to perform these checks + if there have been semver bumps + to non-`arti-*` or `tor-*` crates, + when other such crates expose their types. Does a previously unchanged crate depend on a crate that got a version bump? |
