Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: replace release process document #3475

Merged
merged 3 commits into from
Dec 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
259 changes: 0 additions & 259 deletions docs/process/release.adoc

This file was deleted.

119 changes: 119 additions & 0 deletions docs/process/release.md
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
Loading