Unverified Commit 69f959f2 authored by Andrew Jones's avatar Andrew Jones Committed by GitHub
Browse files

Update release checklist (#1412)



* WIP update release checklist

* Update release checklist

* Update release checklist

* Update RELEASES_CHECKLIST.md
Co-authored-by: default avatarHernando Castano <HCastano@users.noreply.github.com>

* Wrap lines to 90 chars

* Apply some review suggestions
Co-authored-by: default avatarHernando Castano <HCastano@users.noreply.github.com>
parent 1972bc5d
Pipeline #217049 failed with stages
in 11 minutes and 18 seconds
......@@ -31,10 +31,15 @@ crates.io.
## Checklist
We'll be using [`cargo-release`](https://github.com/crate-ci/cargo-release) to release ink!. There are still a few manual
steps though, and we hope to make this more streamlined in the future.
We'll be using [`cargo-release`](https://github.com/crate-ci/cargo-release) to release
ink!. There are still a few manual steps though, and we hope to make this more streamlined
in the future.
1. Create a new feature branch off `master`.
1. Copy the release notes that appear in the [`CHANGELOG.md`](https://githubcom/paritytech/ink/blob/master/CHANGELOG.md)
into the PR description.
- This will cause the individual PRs to be linked to the release in which they are
included.
1. Bump the version in all TOML files to the new version.
```
find . -type f -name *.toml -exec sed -i -e 's/$OLD_VERSION/$NEW_VERSION/g' {} \;
......@@ -49,21 +54,47 @@ steps though, and we hope to make this more streamlined in the future.
1. Open a release PR
- Wait for approvals from Core team members.
- Ensure the entire CI pipeline is green.
1. Do a dry run with `cargo release [level] -v --no-tag --no-push`
- `[level]` will depend on what you're releasing.
1. Do a dry run with `cargo release [new_version] -v --no-tag --no-push`
- `[new_version]` should be the **exact** SemVer compatible version you are attempting
to release e.g. `4.0.0-alpha.3`
- It is possible to supply a SemVer level here e.g. `major`, `minor`, `patch` or
`<pre-release-name>`, however this will automatically bump and commit the changes
to the `Cargo.toml` manifests. We have already done that in an earlier step so it
is not necessary.
- We don't want `cargo-release` to create any releases or push any code, we'll do
that manually once we've actually published to `crates.io`.
1. If there are no errors, merge the release PR into `master`.
1. Publish with `export PUBLISH_GRACE_SLEEP=5 && cargo release [level] -v --no-tag --no-push --execute`
that manually once we've actually published to `crates.io`.
1. Check the output of the dry run:
- Does not show any automatic bumping of crate versions.
- Runs without error.
1. Following a successful dry run, we can now publish to crates.io.
- This will be done from the release branch itself.
- This is because it is possible for the dry run to succeed but for the actual publish
to fail and require some changes. So before running the next step:
- Ensure there have been no new commits to `master` which are not included in this
branch.
- Notify core team members in the Element channel that no PRs should be merged to
`master` during the release.
- The above are to ensure that the bundled code pushed to crates.io is the same as
the tagged release on GitHub.
1. Publish with `export PUBLISH_GRACE_SLEEP=5 && cargo release [new_version] -v --no-tag --no-push --execute`
- Ensure the same `[new_version]` as the dry run, which should be the **exact** SemVer
compatible version you are attempting to release e.g. `4.0.0-alpha.3`.
- We add the grace period since crates depend on one another.
- We add the `--execute` flag to _actually_ publish things to crates.io.
1. Following a successful release from the release PR branch, now the PR can be merged
into `master`
- Once merged, notify core team members in the Element channel that PRs can be merged
again into `master`
1. Replace `vX.X.X` with the new version in the following command and then execute it:
```
git tag -s vX.X.X && git push origin vX.X.X
```
- Ensure your tag is signed with an offline GPG key!
- Alternatively, the `Create release` GitHub UI below allows creating this tag when
creating the release.
1. Create a GitHub release for this tag. In the [tag overview](https://github.com/paritytech/ink/tags)
you'll see your new tag appear. Click the `…` on the right of the tag and then `Create release`.
you'll see your new tag appear. Click the `…` on the right of the tag and then
`Create release`.
1. Paste the release notes that appear in the [`CHANGELOG.md`](https://github.com/paritytech/ink/blob/master/CHANGELOG.md)
there. The title of the release should be `vX.X.X`.
1. Post an announcement to those Element channels:
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment