To release new <version> of kotlinx.serialization:
-
Checkout
devbranch and update:
git checkout dev && git pull -
Make sure the
masterbranch 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>-releaseand send it for review, then merge it todevbranch.
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
devbranch passes tests. - Run "Runtime library (Deploy - Train)" configuration:
- On 'Changes' tab, select
devbranch 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.