@@ -19,10 +19,10 @@ to ensure a consistent and reliable specification.
19
19
## The release
20
20
21
21
Assuming the preparation work is complete, all that remains is the actual specification
22
- release. This is done directly on ` main ` , though local branching for safety is also
23
- welcome.
22
+ release.
24
23
25
- 1 . Update the ` params.version ` section of ` config.toml ` to use the following template:
24
+ 1 . Create a ` release/v1.2 ` branch where ` v1.2 ` is the version you're about to release.
25
+ 2 . Update the ` params.version ` section of ` config.toml ` to use the following template:
26
26
``` toml
27
27
[params .version ]
28
28
status = " stable"
@@ -36,32 +36,50 @@ welcome.
36
36
# Today's date. Please use the format implied here for consistency.
37
37
release_date = " October 01, 2021"
38
38
```
39
- 2 . Commit the changes.
40
- 3 . Tag ` main ` with the spec release with a format of ` v1.2 ` (if releasing Matrix 1.2).
41
- 4 . Push ` main ` and the tag.
42
- 5 . GitHub Actions will run its build steps. Wait until these are successful. If fixes
39
+ 3 . Commit the changes.
40
+ 4 . Tag the branch with the spec release with a format of ` v1.2 ` (if releasing Matrix 1.2).
41
+ 5 . Push the release branch and the tag.
42
+ 6 . GitHub Actions will run its build steps. Wait until these are successful. If fixes
43
43
need to be made to repair the pipeline or spec build, delete and re-tag the release.
44
- 6 . Generate the changelog. This is done * after* the tagging to ensure the rendered
44
+ 7 . Check out ` main ` .
45
+ 8 . Generate the changelog. This is done * after* the tagging to ensure the rendered
45
46
changelog makes sense.
46
47
1 . Activate your python virtual environment.
47
48
2 . Run ` ./scripts/generate-changelog.sh v1.2 "October 01, 2021" ` (using the correct
48
49
version number and same ` release_date ` format from the hugo config).
49
50
3 . Commit the result.
50
- 7 . Create a new release on GitHub from the newly created tag.
51
+ 9 . Create a new release on GitHub from the newly created tag.
51
52
* The title should be just "v1.2" (for example).
52
53
* The description should be a copy/paste of the changelog. The generated changelog
53
54
will be at ` content/partials/changelogs/v1.2.md ` - copy/paste verbatim.
54
55
* Upload the artifacts of the GitHub Actions build for the release to the GitHub
55
- release as artifacts themselves. This should be the tarball that got deployed
56
+ release as artifacts themselves. This should be the tarball that will be deployed
56
57
to spec.matrix.org.
57
- 8 . Commit a reversion to ` params.version ` of ` config.toml ` on ` main ` :
58
- ``` toml
59
- [params .version ]
60
- status = " unstable"
61
- current_version_url = " https://spec.matrix.org/latest"
62
- # major = "1"
63
- # minor = "2"
64
- # release_date = "October 01, 2021"
65
- ```
66
- 9 . Push pending commits and ensure the unstable spec updates accordingly from the
67
- GitHub Actions pipeline.
58
+ 10 . Commit a reversion to ` params.version ` of ` config.toml ` on ` main ` :
59
+ ``` toml
60
+ [params .version ]
61
+ status = " unstable"
62
+ current_version_url = " https://spec.matrix.org/latest"
63
+ # major = "1"
64
+ # minor = "2"
65
+ # release_date = "October 01, 2021"
66
+ ```
67
+ 11. Push pending commits and ensure the unstable spec updates accordingly from the
68
+ GitHub Actions pipeline.
69
+ 12. Deploy the release on the webserver. See internal wiki.
70
+
71
+ # # Patching a release
72
+
73
+ From time to time we'll need to update a release in the wild. Examples include fixing typos,
74
+ updating build machinery, etc. Typically it is not considered a good idea to patch a release
75
+ more than 1 month after the original release date - this is because the administrative effort
76
+ is typically best reserved for the next release cycle.
77
+
78
+ **Patch releases are not to be used for spec changes. Only typos and equivalent.**
79
+
80
+ 1. Add the required changes to the release branch (`release/v1.2` for example).
81
+ 2. Fast forward the `v1.2` tag to the release branch head.
82
+ 3. Push both the release branch and fast-forwarded tag.
83
+ 4. Wait for the GitHub Actions build to complete on the tag.
84
+ 5. Update the assets on the GitHub release to those generated by the latest Actions build.
85
+ 6. Deploy the release on the webserver. See internal wiki.
0 commit comments