Back to Kotlinx Coroutines

kotlinx.coroutines release checklist

RELEASE.md

1.11.03.6 KB
Original Source

kotlinx.coroutines release checklist

To release a new <version> of kotlinx-coroutines:

  1. Checkout the 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 new_version

  5. Write release notes in CHANGES.md:

    • Use the old releases for style guidance.
    • Write each change on a single line (don't wrap with CR).
    • Look through the commit messages since the previous release.
  6. Create the branch for this release:

    git checkout -b version-<version>

  7. Commit the updated files to the new version branch:

    git commit -a -m "Version <version>"

  8. Push the new version to GitHub:

    git push -u origin version-<version>

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

    • Review it.
    • Make sure it builds on CI.
    • Get approval for it.
  10. On TeamCity integration server:

    • Wait until "Build" configuration for committed version-<version> branch passes tests.
    • Run the Deployment/Deploy [RUN THIS ONE] configuration with the corresponding new version:
      • Use the version-<version> branch
      • Set the Version build parameter to <version>
  11. Wait until the corresponding Deployment/Upload Deployment to Central Portal build finishes. Check its Artifacts tab. It has to contain deployment_<version>.zip with the artifacts expected for kotlinx.coroutines. If it does, approve the corresponding Deployment/Publish deployment build and wait for it to finish.

  12. Merge the new version branch into master:

    git checkout master

    git merge --ff-only version-<version>

    git push

  13. In GitHub interface:

    • Create a release named <version>, creating the <version> tag.
    • Cut & paste lines from CHANGES.md into description.
  14. Announce the new release in Slack

  15. Switch onto the develop branch:

    git checkout develop

  16. Fetch the latest master:

    git fetch

  17. Merge the release from master:

    git merge origin/master

  18. Push the updates to GitHub:

    git push

  19. Propose the website documentation update: