xref: /aosp_15_r20/external/kotlinx.atomicfu/RELEASE.md (revision 68017707106cb9da9fed635c150bc497c09c160f)
1# kotlinx.atomicfu release checklist
2
3To release new `<version>` of `kotlinx-atomicfu`:
4
51. Checkout `develop` branch: <br>
6   `git checkout develop`
7
82. Retrieve the most recent `develop`: <br>
9   `git pull`
10
113. Make sure the `master` branch is fully merged into `develop`:
12   `git merge origin/master`
13
144. Search & replace `<old-version>` with `<version>` across the project files. Should replace in:
15   * [`README.md`](README.md)
16   * [`gradle.properties`](gradle.properties)
17   * Make sure to **exclude** `CHANGES.md` from replacements.
18
19   As an alternative approach you can use `./bump-version.sh old_version new_version`
20
215. Write release notes in [`CHANGES.md`](CHANGES.md):
22   * Use old releases as example of style.
23   * Write each change on a single line (don't wrap with CR).
24   * Study commit message from previous release.
25
266. Create branch for this release:
27   `git checkout -b version-<version>`
28
297. Commit updated files to a new version branch:<br>
30   `git commit -a -m "Version <version>"`
31
328. Push new version into the branch:<br>
33   `git push -u origin version-<version>`
34
359. Create Pull-Request on GitHub from `version-<version>` branch into `master`:
36   * Review it.
37   * Make sure it build on CI.
38   * Get approval for it.
39
4010. Merge new version branch into `master`:<br>
41   `git checkout master`<br>
42   `git merge version-<version>`<br>
43   `git push`<br>
44    **DO NOT USE GITHUB UI TO MERGE IT**
45
4611. On [TeamCity integration server](https://teamcity.jetbrains.com/project.html?projectId=KotlinTools_KotlinxAtomicfu):
47    * Wait until "Build" configuration for committed `master` branch passes tests.
48    * Run "Deploy (Configure, RUN THIS ONE)" configuration with the corresponding new version.
49
5012. In [GitHub](https://github.com/Kotlin/kotlinx.atomicfu) interface:
51    * Create a release named `<version>`.
52    * Cut & paste lines from [`CHANGES.md`](CHANGES.md) into description.
53
5413. In [Nexus](https://oss.sonatype.org/#stagingRepositories) admin interface:
55    * Close the repository and wait for it to verify.
56    * Release it.
57
5814. Switch into `develop` branch:<br>
59   `git checkout develop`
60
6115. Fetch the latest `master`:<br>
62   `git fetch`
63
6416. Merge release from `master`:<br>
65   `git merge origin/master`
66
6717. Push updates to `develop`:<br>
68   `git push`
69