|
1 | 1 | # kotlinx.coroutines release checklist
|
2 | 2 |
|
3 |
| -To release new `<version>` of `kotlinx-coroutines`: |
| 3 | +To release a new `<version>` of `kotlinx-coroutines`: |
4 | 4 |
|
5 |
| -1. Checkout `develop` branch: <br> |
| 5 | +1. Checkout the `develop` branch: <br> |
6 | 6 | `git checkout develop`
|
7 | 7 |
|
8 |
| -2. Retrieve the most recent `develop`: <br> |
| 8 | +2. Retrieve the most recent `develop`: <br> |
9 | 9 | `git pull`
|
10 |
| - |
| 10 | + |
11 | 11 | 3. Make sure the `master` branch is fully merged into `develop`:
|
12 |
| - `git merge origin/master` |
| 12 | + `git merge origin/master` |
13 | 13 |
|
14 | 14 | 4. Search & replace `<old-version>` with `<version>` across the project files. Should replace in:
|
15 | 15 | * Docs
|
16 | 16 | * [`README.md`](README.md) (native, core, test, debug, modules)
|
17 | 17 | * [`kotlinx-coroutines-debug/README.md`](kotlinx-coroutines-debug/README.md)
|
18 | 18 | * [`kotlinx-coroutines-test/README.md`](kotlinx-coroutines-test/README.md)
|
19 | 19 | * [`coroutines-guide-ui.md`](ui/coroutines-guide-ui.md)
|
20 |
| - * Properties |
21 |
| - * [`gradle.properties`](gradle.properties) |
| 20 | + * Properties |
| 21 | + * [`gradle.properties`](gradle.properties) |
22 | 22 | * Make sure to **exclude** `CHANGES.md` from replacements.
|
23 |
| - |
24 |
| - As an alternative approach you can use `./bump-version.sh old_version new_version` |
25 |
| - |
| 23 | + |
| 24 | + As an alternative approach, you can use `./bump-version.sh old_version new_version` |
| 25 | + |
26 | 26 | 5. Write release notes in [`CHANGES.md`](CHANGES.md):
|
27 |
| - * Use old releases as example of style. |
| 27 | + * Use the old releases for style guidance. |
28 | 28 | * Write each change on a single line (don't wrap with CR).
|
29 |
| - * Study commit message from previous release. |
| 29 | + * Look through the commit messages since the previous release. |
30 | 30 |
|
31 | 31 | 6. Create the branch for this release:
|
32 | 32 | `git checkout -b version-<version>`
|
33 | 33 |
|
34 |
| -7. Commit updated files to a new version branch:<br> |
| 34 | +7. Commit the updated files to the new version branch:<br> |
35 | 35 | `git commit -a -m "Version <version>"`
|
36 |
| - |
37 |
| -8. Push the new version into the branch:<br> |
| 36 | + |
| 37 | +8. Push the new version to GitHub:<br> |
38 | 38 | `git push -u origin version-<version>`
|
39 |
| - |
40 |
| -9. Create Pull-Request on GitHub from `version-<version>` branch into `master`: |
| 39 | + |
| 40 | +9. Create a Pull-Request on GitHub from the `version-<version>` branch into `master`: |
41 | 41 | * Review it.
|
42 |
| - * Make sure it build on CI. |
| 42 | + * Make sure it builds on CI. |
43 | 43 | * Get approval for it.
|
44 |
| - |
45 |
| -0. Merge new version branch into `master`:<br> |
46 |
| - `git checkout master`<br> |
47 |
| - `git merge version-<version>`<br> |
48 |
| - `git push` |
49 | 44 |
|
50 |
| -1. On [TeamCity integration server](https://teamcity.jetbrains.com/project.html?projectId=KotlinTools_KotlinxCoroutines): |
| 45 | +0. On [TeamCity integration server](https://teamcity.jetbrains.com/project.html?projectId=KotlinTools_KotlinxCoroutines): |
51 | 46 | * Wait until "Build" configuration for committed `master` branch passes tests.
|
52 |
| - * Run "Deploy (Configure, RUN THIS ONE)" configuration with the corresponding new version. |
| 47 | + * Run "Deploy (Configure, RUN THIS ONE)" configuration with the corresponding new version: |
| 48 | + - Use the `version-<version>` branch |
| 49 | + - Set the `DeployVersion` build parameter to `<version>` |
| 50 | + * Wait until all four "Deploy" configurations finish. |
53 | 51 |
|
54 |
| -2. In [GitHub](https://github.com/kotlin/kotlinx.coroutines) interface: |
55 |
| - * Create a release named `<version>`. |
56 |
| - * Cut & paste lines from [`CHANGES.md`](CHANGES.md) into description. |
57 |
| - |
58 |
| -3. Build and publish documentation for web-site |
59 |
| - (make sure you have [Docker](https://www.docker.com/) installed first): <br> |
60 |
| - `site/deploy.sh <version> push` |
61 |
| - |
62 |
| -4. In [Nexus](https://oss.sonatype.org/#stagingRepositories) admin interface: |
| 52 | +1. In [Nexus](https://oss.sonatype.org/#stagingRepositories) admin interface: |
63 | 53 | * Close the repository and wait for it to verify.
|
64 | 54 | * Release the repository.
|
65 |
| - |
66 |
| -5. Announce new release in [Slack](https://kotlinlang.slack.com) |
67 | 55 |
|
68 |
| -6. Switch into `develop` branch:<br> |
| 56 | +2. Merge the new version branch into `master`:<br> |
| 57 | + `git checkout master`<br> |
| 58 | + `git merge version-<version>`<br> |
| 59 | + `git push` |
| 60 | + |
| 61 | +3. In [GitHub](https://github.com/kotlin/kotlinx.coroutines) interface: |
| 62 | + * Create a release named `<version>`, creating the `<version>` tag. |
| 63 | + * Cut & paste lines from [`CHANGES.md`](CHANGES.md) into description. |
| 64 | + |
| 65 | +4. Build and publish the documentation for the web-site: <br> |
| 66 | + `site/deploy.sh <version> push` |
| 67 | + |
| 68 | +5. Announce the new release in [Slack](https://kotlinlang.slack.com) |
| 69 | + |
| 70 | +6. Switch onto the `develop` branch:<br> |
69 | 71 | `git checkout develop`
|
70 |
| - |
| 72 | + |
71 | 73 | 7. Fetch the latest `master`:<br>
|
72 |
| - `git fetch` |
73 |
| - |
74 |
| -8. Merge release from `master`:<br> |
| 74 | + `git fetch` |
| 75 | + |
| 76 | +8. Merge the release from `master`:<br> |
75 | 77 | `git merge origin/master`
|
76 |
| - |
77 |
| -9. Push updates to `develop`:<br> |
78 |
| - `git push` |
| 78 | + |
| 79 | +9. Push the updates to GitHub:<br> |
| 80 | + `git push` |
0 commit comments