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