Skip to content

Commit e81fa4a

Browse files
Merge pull request #6554 from dotty-staging/release-doc-checklist
Add checklist template to release documentation
2 parents c237673 + 8208899 commit e81fa4a

File tree

1 file changed

+38
-1
lines changed

1 file changed

+38
-1
lines changed

docs/docs/contributing/release.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,43 @@ CI is set to automatically detect the tags of the format discussed above and per
3333
The CI operation is entirely automatic provided you have tagged the release correctly. No need to do anything here.
3434

3535
## Documentation
36+
### Release Procedure Checklist
37+
Before we start the release procedure, we create an issue with a release checklist. As we go through the release, we update the checklist. In the checklist template below, the following variables are used:
38+
39+
- `<stable-version>` is the stable version being released, e.g. `0.14.0`. It is identical to the git tag under which it is released.
40+
- `<rc-version>` is the version of the RC version being released, e.g. `0.15.0-RC1`. It is identical to the git tag under which it is released.
41+
- `<stable-branch>` is the name of the stable branch being released, e.g. `0.14.x` if we are releasing `0.14.0`
42+
- `<rc-branch>` is the RC's branch. E.g. if we are releasing `0.14.0` and `0.15.0-RC1`, the RC version is `0.15.0-RC1`, and `<rc-branch>` is `0.15.x`.
43+
- `<next-version>` is the tech preview version. It is the next version after the currently released RC. E.g. if we are releasing `0.15.0-RC1`, this variable will be `0.16.0`.
44+
45+
A good workflow is to compute these variables before each release, then replace them in the checklist below:
46+
47+
```
48+
- [ ] Publish artifacts to Maven via CI
49+
- [ ] On branch`<stable-branch>`, set `baseVersion` to `<stable-version>` and `git tag` it as `<stable-version>`. This will publish artefacts to Sonatype and GitHub Release
50+
- [ ] Merge branch `<stable-branch>` into `master` to guarantee that all of the `<stable-branch>` commits are propagated to `master`
51+
- [ ] Look at the milestone of the RC version being released. Move all the open issues from it to the next milestone.
52+
- [ ] Create branch `<rc-branch>` from `master`
53+
- [ ] On `<rc-branch>`, set `baseVersion` to `<rc-version>` and `git tag` it as `<rc-version>`. This will publish artefacts to Sonatype and GitHub Release.
54+
- [ ] On `master`, set `baseVersion` to `<next-version>`
55+
- [ ] Update `scalaVersion` (and, if applicable, the `sbt-dotty` version) in the Dotty ecosystem projects
56+
- [ ] https://github.com/lampepfl/dotty-example-project
57+
- [ ] https://github.com/lampepfl/dotty-example-project/tree/mill
58+
- [ ] https://github.com/lampepfl/dotty.g8
59+
- [ ] https://github.com/lampepfl/dotty-cross.g8
60+
- [ ] https://github.com/lampepfl/homebrew-brew
61+
- [ ] https://github.com/lampepfl/packtest
62+
- [ ] https://github.com/scalacenter/scastie
63+
- [ ] Dotty itself – update the `referenceVersion` in the `master` branch to `<rc-version>`. This is the version of Dotty used to compile the Dotty codebase on `master`.
64+
- [ ] Scalac CI, like this: scala/scala#7993
65+
- [ ] Announce the release
66+
- [ ] Publish releases for the RC and stable versions on GitHub Releases
67+
- [ ] Publish Blog Post on dotty.epfl.ch
68+
- [ ] Make an announcement thread on https://contributors.scala-lang.org
69+
- [ ] Tweet the announcement blog post on https://twitter.com/scala_lang
70+
```
71+
72+
### GitHub Releases and Blog Post
3673
After the release is done, we document it as follows:
3774

3875
- On the GitHub release page, modify the release drafts created by CI. The RC draft should include notable changes introduced since the previous RC. E.g. for `0.14.0-RC1` these are generated by `gren changelog -G --override -D prs --tags=0.13.0-RC1..0.14.0-RC1`. `gren` is available [here](https://github.com/github-tools/github-release-notes), and before running the above command, please make sure that (1) the `origin` branch points to the `lampepfl/dotty` repository and (2) the two tags mentioned in the command are pushed to the `master` branch of that repo. Otherwise, the command won't pick up the tags.
@@ -42,7 +79,7 @@ After the release is done, we document it as follows:
4279
After releasing a new version of Dotty, we need to make sure to update the following related projects:
4380

4481
- [Example Project](https://github.com/lampepfl/dotty-example-project)
45-
- 🚫[Example Project with Mill](https://github.com/lampepfl/dotty-example-project/tree/mill) – FTTB doesn't work with new Dotty releases, see lampepfl/dotty-example-project#26
82+
- [Example Project with Mill](https://github.com/lampepfl/dotty-example-project/tree/mill)
4683
- [Dotty G8 template](https://github.com/lampepfl/dotty.g8)
4784
- [Dotty G8 template with cross build support](https://github.com/lampepfl/dotty-cross.g8)
4885
- [Dotty Homebrew Formula](https://github.com/lampepfl/homebrew-brew)

0 commit comments

Comments
 (0)