-
Notifications
You must be signed in to change notification settings - Fork 86
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: replace release process document (#3475)
- Loading branch information
1 parent
54bbe17
commit 09939b0
Showing
2 changed files
with
119 additions
and
259 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
# IC SDK Release Process | ||
|
||
## Overview | ||
|
||
1. Update the replica version | ||
1. Create the release branch | ||
1. Update the changelog on master | ||
1. Create beta releases | ||
1. Open a PR to update the Portal | ||
1. Create the final release | ||
1. Open a PR to promote the release | ||
1. Open a PR to update the Motoko Playground allow-list | ||
1. Promote the release | ||
1. Post to the forum | ||
|
||
## Details | ||
|
||
### Update the Replica Version | ||
|
||
Before making a new release, try to update the replica to the latest version | ||
by running the [update-replica] workflow. | ||
|
||
### Create the Release Branch | ||
|
||
Create a release branch from `master`, for example `release-0.15.3`. | ||
|
||
This branch will be used to create beta releases as well as the final release. | ||
|
||
### Update the changelog | ||
|
||
Open a PR to master. Roll the changelog by adding a new header for the | ||
new dfx version underneath the "# Unreleased" header. Further changes to dfx | ||
should be added under the "#Unreleased" header, unless they are ported to | ||
the release branch. | ||
|
||
### Create Beta Releases | ||
|
||
1. Check out the release branch. | ||
1. Run the release script, for example `./scripts/release.sh 0.15.3-beta.1` | ||
1. Open a PR from the branch pushed by the previous to the release branch, | ||
obtain CR approval, and merge the PR. | ||
- The release script will wait for you to do this | ||
- It will then create and push a tag | ||
- This triggers the [publish][publish-workflow] workflow | ||
1. Wait for the [publish][publish-workflow] workflow to create the GitHub release | ||
from the last commit on the release branch. | ||
1. Update the GitHub release | ||
- Copy/paste the changelog section for the new version into the release notes | ||
- Set the "Prerelease" flag | ||
1. Announce the release to #eng-sdk | ||
- Post a message like this, linking to the GitHub release notes: | ||
> dfx 0.15.3-beta.1 is available for manual installation and testing. | ||
> | ||
> ```bash | ||
> DFX_VERSION=0.15.3-beta.1 sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)" | ||
> ``` | ||
> | ||
> See also release notes. | ||
1. Repeat the above steps until ready to promote the latest beta. | ||
### Open a Draft PR to update the Portal | ||
You can do this step while the beta releases are being tested. | ||
- Add a link to the [release-notes-table] | ||
- Update the sdk submodule | ||
Obtain approval, but do not merge the PR yet. | ||
This PR is a draft in order to help remind the reviewer not to merge it. | ||
### Create the Final Release | ||
Once the beta releases are ready to be promoted: | ||
1. Check out the release branch | ||
2. Run the release script, for example `./scripts/release.sh 0.15.3` | ||
3. Follow the same steps as for the beta releases | ||
### Open a PR to promote the release | ||
1. Create a new branch from the release branch, for example `release-0.15.3-promote`. | ||
1. Update the [version manifest][public-manifest]: | ||
- Set `.tags.latest` to the new dfx version | ||
- Remove the beta releases from the `versions` array | ||
1. Open a PR from this branch to master | ||
Obtain approval, but do not merge this PR yet. | ||
### Open a PR to Update the Motoko Playground allow-list | ||
You can do it either by using GitHub UI ([broadcast-frontend-hash-workflow]) | ||
or by running the following command: | ||
```bash | ||
gh workflow run "broadcast-frontend-hash.yml" -f dfx_version=<n.n.n> | ||
``` | ||
Obtain approval, but do not merge this PR yet. | ||
### Promote the release | ||
You should now have three open, approved PRs: | ||
- Update the portal | ||
- Promote the release | ||
- Update the Motoko Playground allow-list | ||
Merge all three PRs. | ||
### Post to the forum | ||
Post a message to the forum, linking to the GitHub release notes. | ||
[broadcast-frontend-hash-workflow]: https://github.com/dfinity/sdk/actions/workflows/broadcast-frontend-hash.yml | ||
[public-manifest]: https://github.com/dfinity/sdk/blob/master/public/manifest.json | ||
[publish-workflow]: https://github.com/dfinity/sdk/blob/master/.github/workflows/publish.yml | ||
[release-notes-table]: https://github.com/dfinity/portal/blob/master/docs/other/updates/release-notes/release-notes.md | ||
[update-replica]: https://github.com/dfinity/sdk/actions/workflows/update-replica-version.yml |