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