diff --git a/.github/RELEASE_TEMPLATE.md b/.github/RELEASE_TEMPLATE.md new file mode 100644 index 0000000000..bc29f61b4a --- /dev/null +++ b/.github/RELEASE_TEMPLATE.md @@ -0,0 +1,28 @@ +# Release v0.X.Y + +fun blurb about the name, what's in the release + +## Major Features And Improvements + +* bulleted +* list of features and improvements + +## Breaking Changes + +* bulleted +* list +* of +* protocol changes/breaks +* API breaks +* CLI changes +* etc. + +## Bug Fixes and Other Changes + +* can be pulled from commit log, or synthesized + +## Thanks to our Contributors + +This release contains contributions from many people at Solana, as well as: + + pull from commit log diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000000..542a327fe4 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,32 @@ +# Solana Release process + +## Introduction + +Solana uses a channel-oriented, date-based branching process described [here](https://github.com/solana-labs/solana/blob/master/rfcs/rfc-005-branches-tags-and-channels.md). + +## Release Steps + +### Changing channels + +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" semantic versionig fields from Cargo.toml. For example, a Cargo.toml with version = "0.9.0" implies the next branch name is "v0.9". +3. Update Cargo.toml to the next semantic version (e.g. 0.9.0 -> 0.10.0). +4. Push your new branch to solana.git +5. Land your Carto.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](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". +3. 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. [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.