To release new <version>
of kotlinx-coroutines
:
-
Checkout
develop
branch:
git checkout develop
-
Retrieve the most recent
develop
:
git pull
-
Make sure the
master
branch is fully merged intodevelop
:git merge origin/master
-
Search & replace
<old-version>
with<version>
across the project files. Should replace in:README.md
(native, core, test, debug, modules)coroutines-guide.md
gradle.properties
ui/kotlinx-coroutines-android/example-app/gradle.properties
ui/kotlinx-coroutines-android/animation-app/gradle.properties
- Make sure to exclude
CHANGES.md
from replacements.
As an alternative approach you can use
./bump_version.sh old_version new_version
-
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.
-
Create branch for this release:
git checkout -b version-<version>
-
Commit updated files to a new version branch:
git commit -a -m "Version <version>"
-
Push new version into the branch:
git push -u origin version-<version>
-
Create Pull-Request on GitHub from
version-<version>
branch intomaster
:- Review it.
- Make sure it build on CI.
- Get approval for it.
-
Merge new version branch into
master
:
git checkout master
git merge version-<version>
git push
-
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.
- Wait until "Build" configuration for committed
-
In GitHub interface:
- Create a release named
<version>
. - Cut & paste lines from
CHANGES.md
into description.
- Create a release named
-
Build and publish documentation for web-site:
site/deploy.sh <version> push
-
In Bintray admin interface:
- Publish artifacts of the new version.
- Wait until newly published version becomes the most recent.
- Sync to Maven Central.
-
Announce new release in Slack
-
Create a ticket to update coroutines version on try.kotlinlang.org.
- Use KT-30870 as a template
- This step should be skipped for eap versions that are not merged to
master
-
Switch into
develop
branch:
git checkout develop
-
Fetch the latest
master
:
git fetch
-
Merge release from
master
:
git merge origin/master
-
Push updates to
develop
:
git push