Clarify release instructions (#3792)

This commit is contained in:
Dan Albert 2019-04-15 19:05:15 -06:00 committed by GitHub
parent 68fc303b9b
commit 7afd8644b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 12 deletions

View File

@ -63,20 +63,25 @@ There are three release channels that map to branches as follows:
### Changing channels ### 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. Pick your branch point for release on master.
1. Create the branch. The name should be "v" + the first 2 "version" fields 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 from Cargo.toml. For example, a Cargo.toml with version = "0.9.0" implies
the next branch name is "v0.9". the next branch name is "v0.9".
1. Push the new branch to the solana repository 1. Note the Cargo.toml in the repo root directory does not contain a version. Look at any other Cargo.toml file.
1. Update Cargo.toml on master to the next semantic version (e.g. 0.9.0 -> 0.10.0) 1. Create a new branch and push this branch to the solana repository.
by running `./scripts/increment-cargo-version.sh`, then rebuild with a 1. `git checkout -b <branchname>`
`cargo build --all` to cause a refresh of `Cargo.lock`. 1. `git push -u origin <branchname>`
#### 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 1. Push your Cargo.toml change and the autogenerated Cargo.lock changes to the
master branch 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". "BETA_CHANNEL" and the previous release branch as "STABLE_CHANNEL".
### Updating channels (i.e. "making a release") ### 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. Go [there ;)](https://github.com/solana-labs/solana/releases).
1. Click "Draft new release". The release tag must exactly match the `version` 1. Click "Draft new release". The release tag must exactly match the `version`
field in `/Cargo.toml` prefixed by `v` (ie, `<branchname>.X`). field in `/Cargo.toml` prefixed by `v` (ie, `<branchname>.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) template](https://raw.githubusercontent.com/solana-labs/solana/master/.github/RELEASE_TEMPLATE.md)
and fill it in. and fill it in.
1. Test the release by generating a tag using semver's rules. First try at a 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. 1. After testnet deployment, verify that testnets are running correct software.
http://metrics.solana.com should show testnet running on a hash from your http://metrics.solana.com should show testnet running on a hash from your
newly created branch. 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 semantic version (e.g. 0.9.0 -> 0.9.1) by running
`./scripts/increment-cargo-version.sh patch`, then rebuild with a `cargo `./scripts/increment-cargo-version.sh patch`, then rebuild with `cargo
build --all` to cause a refresh of `Cargo.lock`. build` to cause a refresh of `Cargo.lock`.
1. Push your Cargo.toml change and the autogenerated Cargo.lock changes to the 1. Push your Cargo.toml change and the autogenerated Cargo.lock changes to the
release branch release branch.