diff --git a/RELEASE.md b/RELEASE.md index 353858e77..90a53f838 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -67,24 +67,40 @@ There are three release channels that map to branches as follows: When cutting a new channel branch these pre-steps are required: 1. Pick your branch point for release on master. -2. Create the branch. The name should be "v" + the first 2 "version" fields from Cargo.toml. For example, a Cargo.toml with version = "0.9.0" implies the next branch name is "v0.9". -4. Push the new branch to the solana repository -3. Update Cargo.toml on master to the next semantic version (e.g. 0.9.0 -> 0.10.0) by running `./scripts/increment-cargo-version.sh`. -5. Land your Cargo.toml change as a master PR. +1. Create the branch. The name should be "v" + the first 2 "version" fields + from Cargo.toml. For example, a Cargo.toml with version = "0.9.0" implies + the next branch name is "v0.9". +1. Push the new branch to the solana repository +1. Update Cargo.toml on master to the next semantic version (e.g. 0.9.0 -> 0.10.0) + by running `./scripts/increment-cargo-version.sh`, then rebuild with a + `cargo build --all` to cause a refresh of `Cargo.lock`. +1. Push your Cargo.toml change and the autogenerated Cargo.lock changes to the + master branch -At this point, ci/channel-info.sh should show your freshly cut release branch as "BETA_CHANNEL" and the previous release branch as "STABLE_CHANNEL". +At this point, ci/channel-info.sh should show your freshly cut release branch as +"BETA_CHANNEL" and the previous release branch as "STABLE_CHANNEL". ### Updating channels (i.e. "making a release") We use [github's Releases UI](https://github.com/solana-labs/solana/releases) for tagging a release. 1. Go [there ;)](https://github.com/solana-labs/solana/releases). -2. Click "Draft new release". The release tag must exactly match the `version` field in `/Cargo.toml` prefixed by `v` (ie, `.X`). -3. If the first major release on the branch (e.g. v0.8.0), paste in [this template](https://raw.githubusercontent.com/solana-labs/solana/master/.github/RELEASE_TEMPLATE.md) and fill it in. -4. Test the release by generating a tag using semver's rules. First try at a release should be `.X-rc.0`. -5. Verify release automation: +1. Click "Draft new release". The release tag must exactly match the `version` + field in `/Cargo.toml` prefixed by `v` (ie, `.X`). +1. If the first major release on the branch (e.g. v0.8.0), paste in [this + template](https://raw.githubusercontent.com/solana-labs/solana/master/.github/RELEASE_TEMPLATE.md) + and fill it in. +1. Test the release by generating a tag using semver's rules. First try at a + release should be `.X-rc.0`. +1. Verify release automation: 1. [Crates.io](https://crates.io/crates/solana) should have an updated Solana version. - 2. ... -6. After testnet deployment, verify that testnets are running correct software. http://metrics.solana.com should show testnet running on a hash from your newly created branch. -7. Once the release has been made, update Cargo.toml on release to the next semantic version (e.g. 0.9.0 -> 0.9.1) by running `./scripts/increment-cargo-version.sh patch`. - + 1. ... +1. After testnet deployment, verify that testnets are running correct software. + http://metrics.solana.com should show testnet running on a hash from your + newly created branch. +1. Once the release has been made, update Cargo.toml on release to the next + semantic version (e.g. 0.9.0 -> 0.9.1) by running + `./scripts/increment-cargo-version.sh patch`, then rebuild with a `cargo + build --all` to cause a refresh of `Cargo.lock`. +1. Push your Cargo.toml change and the autogenerated Cargo.lock changes to the + release branch