To release new <version>
of kotlinx.serialization
:
-
Checkout
dev
branch and update:
git checkout dev && git pull
-
Make sure the
master
branch is fully merged intodev
:
git merge origin/master
-
Search & replace
<old-version>
with<version>
across the project files. Should replace in:Update Kotlin version, if necessary.
-
Write release notes in
CHANGELOG.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.
git changelog from git-extras may help you with that.
-
If necessary, commit your changes to a new branch called
<version>-release
and send it for review, then merge it todev
branch.
If review is not required, commit directly todev
. -
Tag version:
git tag v<version>
-
Push your changes:
git push origin dev && git push origin --tags
-
On TeamCity integration server:
- Wait until "Runtime library (Build – Aggregated)" configuration for committed
dev
branch passes tests. - Run "Runtime library (Deploy - Train)" configuration:
- On 'Changes' tab, select
dev
branch and corresponding commit. - On 'Parameters' tab, find 'Deploy version' and fill in with
<version>
.
- On 'Changes' tab, select
- Wait until "Runtime library (Build – Aggregated)" configuration for committed
-
In Sonatype admin interface:
- Close the repository and wait for it to verify.
- Release it.
-
Propose the website documentation update:
- Set a new value for
KOTLINX_SERIALIZATION_RELEASE_TAG
, creating a pull request in the website's repository. - The website team will be notified about the pull request, review your changes, and merge it to master after all checks pass.
- Once the pull request is merged to the main branch, it automatically will trigger the website's update, which will be done within an hour.
- Set a new value for
-
Create a new release in Github releases. Use created git tag for title and changelog message for body.
-
Switch back to master branch and update it:
git checkout master && git pull git merge --ff-only dev git push origin master
-
Announce new release in Slack.