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