Skip to content

Commit e8add48

Browse files
authored
Add a release checklist (#324)
* Add a release checklist
1 parent 601e5f1 commit e8add48

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

docs/ReleaseChecklist.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
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

Comments
 (0)