|
| 1 | +# kotlinx-io release check list |
| 2 | + |
| 3 | +`kotlinx-io` release process consists of several partially automated steps. |
| 4 | + |
| 5 | +This document is aimed for engineers responsible for releasing the library and should read as an |
| 6 | +overview of how things are done usually rather than a rigid script that should be followed strictly. |
| 7 | + |
| 8 | +## TODO |
| 9 | + |
| 10 | +Some steps are not fully automated, some steps fail (like the smoke tests) even though everything |
| 11 | +is fine. It all should be fixed sooner or later. |
| 12 | + |
| 13 | +## Checklist |
| 14 | + |
| 15 | +As it is described in [contibuting guidelines](../CONTRIBUTING.md), |
| 16 | +the developent takes place in `develop` branch |
| 17 | +and `master` branch contains sources for a recently released version. |
| 18 | + |
| 19 | +The following steps are usually performed: |
| 20 | +- Ensure all tests pass in CI for the `develop` branch; |
| 21 | +- Update [README](../README.md) instructions on how to use the library with a new version; |
| 22 | +- Add a note describing what will be released to the [CHANGELOG](../CHANGELOG.md); |
| 23 | +- Bump up the current version in [gradle.properties](../gradle.properties); |
| 24 | +- Commit changes in `README`, `CHANGELOG` and `gradle.properties` into the `develop` branch; |
| 25 | +- Checkout `gh-pages` branch, generate documentation using Dokka (`./gradlew dokkaHtmlMultiModule`), move it to `docs` directory, and commit it all; |
| 26 | + - that generated docs use correct `kotlinx-io` version; |
| 27 | +- [Deploy](https://teamcity.jetbrains.com/buildConfiguration/KotlinTools_KotlinxIo_DeployRunThisOne) |
| 28 | +a pre-release version of the library into [Sonatype](http://oss.sonatype.org) staging repository, |
| 29 | +close it and [run smoke tests](https://teamcity.jetbrains.com/buildConfiguration/KotlinTools_KotlinxIo_DeploymentSmokeTest) |
| 30 | +with this pre-release version; |
| 31 | +- If smoke tests passed, merge the `develop` branch into `master`, wait until a successful test run in CI; |
| 32 | +- Drop the pre-release version from Sonatype; |
| 33 | +- [Create a draft](https://github.com/Kotlin/kotlinx-io/releases/new) describing the next release in GH: |
| 34 | + - it's more or less fine to pick up the record from the [CHANGELOG](../CHANGELOG.md), update it if |
| 35 | + necessary; |
| 36 | + - release names are usually starts with `v`, like `v0.9.10`, but there's no `v` in a git tag, like `0.9.10`. |
| 37 | +- Deploy the release version, close the repo, run smoke tests with it and if tests passed, release the repository. |
| 38 | +- Push `gh-pages` branch; |
| 39 | +- Set previously created draft in [kotlinx-io/releases](https://github.com/Kotlin/kotlinx-io/releases) |
| 40 | +as the latest version; |
| 41 | +- That's all, folks! |
0 commit comments