Describe and simplify the release process (#1322)

This commit is contained in:
Adam Babik 2018-12-17 10:55:17 +01:00 committed by GitHub
parent 74cb16c456
commit 7fb2755f6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 58 additions and 19 deletions

View File

@ -5,26 +5,10 @@
# Docs
- [How To Build](https://docs.status.im/docs/build_status_go.html)
- [How To Build](https://status.im/build_status/status_go.html)
- [How To Contribute](CONTRIBUTING.md)
- [How To Release](RELEASING.md)
# License
[Mozilla Public License 2.0](https://github.com/status-im/status-go/blob/develop/LICENSE.md)
### Releasing
To create a release, first increase the `VERSION` file according to semantic versioning.
You can then build the artifacts for the specific platform.
Once done, you can run:
`make prepare-release`
and
`make release release_branch={{release_branch}}`
Where `release_branch` is the branch you are targeting.
You will also need to specify some form of credentials, `GITHUB_TOKEN` environment variable for example.

55
RELEASING.md Normal file
View File

@ -0,0 +1,55 @@
# Release Process of status-go
The release process describes creating a release on Github. Each release consists of a new tag and assets which are builds for various environments but not only.
The process is automated and, even though it's possible to run manually, should always be triggered using [our Jenkins job](https://ci.status.im/job/status-go/job/parallel/).
## Versioning
We use [semver](https://semver.org/) but as we do not have a stable version yet, it's a bit skewed.
We use `0` as the MAJOR version and bump only MINOR when there are breaking changes and PATCH when there are no breaking changes.
Additionally, a pre-release can be created and the version can look like as complicated as this:
```
0.MINOR.PATCH-beta.INDEX.GIT_SHA
```
## Releasing from a branch
TODO: create a script that can do that instead of manual work.
1. Make sure that your branch is rebased on `develop`,
1. Change `VERSION` file content to `0.X.Y-beta.Z.$GIT_SHA` where `GIT_SHA` is the commit you want to release,
1. Go to [Jenkins job](https://ci.status.im/job/status-go/job/parallel/) and use your branch. NOTE: do **not** select "RELEASE".
**NOTE**: remember to change `VERSION` content back before merge.
## Releasing pre-release from develop
TODO: create a script that can do that instead of manual work.
1. Pull `develop` branch,
1. Bump `Z` (`0.X.Y-beta.Z`) in the current version (`VERSION` file),
1. Commit and push the change,
1. Go to [Jenkins job](https://ci.status.im/job/status-go/job/parallel/) and use develop branch. NOTE: do not select "RELEASE".
## Releasing from develop (regular release)
TODO: create a script that can do that instead of manual work.
1. Pull `develop` branch,
1. Checkout a new branch `release/0.X`,
1. Remove `-beta.Z` suffix from the current version (`VERSION` file),
1. Commit and push the change,
1. Checkout develop branch, bump `X`, reset `Z` to `0` and commit to develop,
1. Go to [Jenkins job](https://ci.status.im/job/status-go/job/parallel/), select "RELEASE" and use `release/0.X` branch.
## Releasing from develop (a hot-fix)
TODO: create a script that can do that instead of manual work.
1. Checkout a release branch you want to hot fix (branch have a name `release/0.X`),
1. Bump `Y` (`0.X.Y`) in the current version (`VERSION` file),
1. Commit and push the change to `release/0.X` branch,
1. Go to [Jenkins job](https://ci.status.im/job/status-go/job/parallel/), select "RELEASE" and use `release/0.X` branch name.

View File

@ -1 +1 @@
0.18.2-beta
0.18.2-beta.0