kotlinx.coroutines release checklist

To release new <version> of kotlinx-coroutines:

  1. Checkout master branch:
    git checkout master

  2. Retrieve the most recent master:
    git pull

  3. Merge develop branch unto master:
    git merge origin/develop

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

  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. Commit updated files for new version:
    git commit -a -m "Version <version>"

  7. Push new version into master:
    git push

  8. On TeamCity integration server:

    • Wait until "Build" configuration for committed master branch passes tests.
    • Run "Deploy" configuration with the corresponding new version.
  9. In GitHub interface:

    • Create new release named as <version>.
    • Cut & paste lines from CHANGES.md into description.
  10. Build and publish documentation for web-site:
    site/deploy.sh <version> push

  11. In Bintray admin interface:

    • Publish artifacts of the new version.
    • Wait until newly published version becomes the most recent.
    • Sync to Maven Central.
  12. Announce new release in Slack

  13. Switch into develop branch:
    git checkout develop

  14. Merge release from master:
    git merge master

  15. Push updates to develop:
    git push