diff --git a/RELEASE.md b/RELEASE.md index fa8ed9f15d..b5e28c7bde 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -63,20 +63,25 @@ There are three release channels that map to branches as follows: ### Changing channels -When cutting a new channel branch these pre-steps are required: - +#### Create the new branch 1. Pick your branch point for release on master. 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. Note the Cargo.toml in the repo root directory does not contain a version. Look at any other Cargo.toml file. +1. Create a new branch and push this branch to the solana repository. + 1. `git checkout -b ` + 1. `git push -u origin ` + +#### Update master with the next version + +1. After the new branch has been created and pushed, 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 + `cargo build` 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 +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") @@ -86,7 +91,8 @@ We use [github's Releases UI](https://github.com/solana-labs/solana/releases) fo 1. Go [there ;)](https://github.com/solana-labs/solana/releases). 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 + 1. If the Cargo.toml verion field is **0.12.3**, then the release tag must be **v0.12.3** +1. If this is the first release on the branch (e.g. v0.13.**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 @@ -97,9 +103,9 @@ We use [github's Releases UI](https://github.com/solana-labs/solana/releases) fo 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 +1. Once the release has been made, update Cargo.toml on the release branch 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`. + `./scripts/increment-cargo-version.sh patch`, then rebuild with `cargo + build` to cause a refresh of `Cargo.lock`. 1. Push your Cargo.toml change and the autogenerated Cargo.lock changes to the - release branch + release branch.