Skip to content

Commit 940ae7f

Browse files
authored
Improve release process documentation (#17506)
I've created my first release and this PR contains the info I would have liked. This adds info on how to create both a LTO and non-LTO release and adds example PRs for each of the steps.
1 parent ddd7489 commit 940ae7f

File tree

1 file changed

+38
-12
lines changed

1 file changed

+38
-12
lines changed

docs/process.md

Lines changed: 38 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,45 @@ Requirements:
4949
[emscripten-releases][releases_repo] repo, which then specifies through
5050
[DEPS][DEPS] exactly which revisions to use in all other repos).
5151
* [GitHub CI](https://github.com/emscripten-core/emscripten/branches) is green
52-
on the `main` branch.
52+
on the `main` branch for the emscripten commit referred to in [DEPS][DEPS].
5353

5454
How:
5555

56+
1. Pick a version for a release and make sure it meets the requirements above.
57+
Let this version SHA be <non-LTO-sha>.
58+
1. If we want to do an LTO release as well, create a CL that copies [DEPS][DEPS]
59+
from <non-lto-sha> to [DEPS.tagged-release][DEPS.tagged-release] in
60+
[emscripten-releases][releases_repo] repo. When this CL is committed, let the
61+
resulting SHA be <LTO-sha>. An example of this CL can be
62+
https://chromium-review.googlesource.com/c/emscripten-releases/+/3781978.
5663
1. Run [`./scripts/create_release.py`][create_release] in the emsdk repository.
57-
This script will update [emscripten-releases-tags.json][emscripten_releases_tags],
58-
adding a new version. You can either specify the desired hash, or let the
59-
script pick the current tot build. The script will create a new git branch
60-
that can be uploaded as a PR.
61-
3. Tag the `emsdk` repo with the new version number, on the commit that does the
62-
update, after it lands on main.
63-
4. Tag the `emscripten` repo with the new version number, on the commit referred
64-
to in the [DEPS][DEPS] file above.
65-
5. Update [`emscripten-version.txt`][emscripten_version] and
64+
When we do both an LTO and a non-LTO release, run:
65+
```
66+
./scripts/create_release.py <LTO-sha> <non-LTO-sha>
67+
```
68+
This will make the <LTO-sha> point to the versioned name release (e.g.
69+
`3.1.7`) and the <non-LTO-sha> point to the assert build release (e.g.
70+
`3.1.7-asserts`). When we do only a non-LTO release, run:
71+
```
72+
./scripts/create_release.py <non-LTO-sha>
73+
```
74+
This will make the <non-LTO-sha> point directly to the versioned name release
75+
(e.g. `3.1.7`) and there will be no assert build release. If we run
76+
[`./scripts/create_release.py`][create_release] without any arguments, it
77+
will automatically pick a tot version from
78+
[emscripten-releases][releases_repo] repo and make it point to the versioned
79+
name release. Running this [`./scripts/create_release.py`][create_release]
80+
script will update [emscripten-releases-tags.json][emscripten_releases_tags],
81+
adding a new version. The script will create a new git branch that can be
82+
uploaded as a PR. An example of this PR is emscripten-core/emsdk#1071.
83+
1. [Tag][emsdk_tags] the `emsdk` repo with the new version number, on the commit
84+
that does the update, after it lands on main.
85+
1. [Tag][emscripten_tags] the `emscripten` repo with the new version number, on
86+
the commit referred to in the [DEPS][DEPS] (or DEPS.tagged-release) file
87+
above.
88+
1. Update [`emscripten-version.txt`][emscripten_version] and
6689
[`ChangeLog.md`][changelog] in the emscripten repo to refer the next,
67-
upcoming, version.
90+
upcoming, version. An example of this PR is emscripten-core/emscripten#17439.
6891

6992
Major version update (1.X.Y to 1.(X+1).0)
7093
-----------------------------------------
@@ -130,4 +153,7 @@ See notes above on installing sphinx.
130153
[changelog]: https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md
131154
[create_release]: https://github.com/emscripten-core/emsdk/blob/main/scripts/create_release.py
132155
[emscripten_releases_tags]: https://github.com/emscripten-core/emsdk/blob/main/emscripten-releases-tags.json
133-
[DEPS]: https://chromium.googlesource.com/emscripten-releases/+/refs/heads/master/DEPS
156+
[DEPS]: https://chromium.googlesource.com/emscripten-releases/+/refs/heads/main/DEPS
157+
[DEPS.tagged-release]: https://chromium.googlesource.com/emscripten-releases/+/refs/heads/main/DEPS.tagged-release
158+
[emsdk_tags]: https://github.com/emscripten-core/emsdk/tags
159+
[emscripten_tags]: https://github.com/emscripten-core/emscripten/tags

0 commit comments

Comments
 (0)