kotlinx.atomicfu release checklist

To release new <version> of kotlinx-atomicfu:

  1. Checkout develop branch:
    git checkout develop

  2. Retrieve the most recent develop:
    git pull

  3. Make sure the master branch is fully merged into develop: git merge origin/master

  4. Search & replace <old-version> with <version> across the project files. Should replace in:

    As an alternative approach you can use ./bump-version.sh old_version new_version

  5. Write release notes in CHANGES.md:

    • Use old releases as example of style.
    • Write each change on a single line (don't wrap with CR).
    • Study commit message from previous release.
  6. Create branch for this release: git checkout -b version-<version>

  7. Commit updated files to a new version branch:
    git commit -a -m "Version <version>"

  8. Push new version into the branch:
    git push -u origin version-<version>

  9. Create Pull-Request on GitHub from version-<version> branch into master:

    • Review it.
    • Make sure it build on CI.
    • Get approval for it.
  10. Merge new version branch into master:
    git checkout master
    git merge version-<version>
    git push

    DO NOT USE GITHUB UI TO MERGE IT

  11. On TeamCity integration server:

    • Wait until “Build” configuration for committed master branch passes tests.
    • Run “Deploy (Configure, RUN THIS ONE)” configuration with the corresponding new version.
  12. In GitHub interface:

    • Create a release named <version>.
    • Cut & paste lines from CHANGES.md into description.
  13. In Sonatype admin interface:

    • Close the repository and wait for it to verify.
    • Release it.
  14. Switch into develop branch:
    git checkout develop

  15. Fetch the latest master:
    git fetch

  16. Merge release from master:
    git merge origin/master

  17. Push updates to develop:
    git push