2.0 KiB
2.0 KiB
Solana Release process
Introduction
Solana uses a channel-oriented, date-based branching process described here.
Release Steps
Changing channels
When cutting a new channel branch these pre-steps are required:
- Pick your branch point for release on master.
- 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".
- Push the new branch to the solana repository
- 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
. - Land your Cargo.toml change as a master PR.
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 for tagging a release.
- Go there ;).
- Click "Draft new release". The release tag must exactly match the
version
field in/Cargo.toml
prefixed byv
(ie,<branchname>.X
). - If the first major release on the branch (e.g. v0.8.0), paste in this template and fill it in.
- Test the release by generating a tag using semver's rules. First try at a release should be
<branchname>.X-rc.0
. - Verify release automation:
- Crates.io should have an updated Solana version.
- ...
- 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.
- 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
.