2018-12-17 09:55:17 +00:00
# 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.
2019-06-28 08:37:34 +00:00
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/manual/ ).
2018-12-17 09:55:17 +00:00
## 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.
2018-12-21 14:56:52 +00:00
## Custom build
2018-12-17 09:55:17 +00:00
2019-06-28 08:37:34 +00:00
1. Go to [Jenkins job ](https://ci.status.im/job/status-go/job/manual/ ),
2018-12-21 14:56:52 +00:00
1. Leave "RELEASE" **unchecked** and use your branch name.
2018-12-17 09:55:17 +00:00
2019-06-28 08:37:34 +00:00
After successful build, open it (https://ci.status.im/job/status-go/job/manual/$BUILD_ID/) in a browser. Artifacts will have a random ID, for example `status-go-android-181221-143603-5708af.aar` , means that `181221-143603-5708af` is a version you can use in [status-react ](https://github.com/status-im/status-react ).
2018-12-17 09:55:17 +00:00
2018-12-21 14:15:06 +00:00
## Releasing a new patch (no breaking changes or a hot-fix release)
2018-12-17 09:55:17 +00:00
TODO: create a script that can do that instead of manual work.
2019-01-02 17:57:20 +00:00
1. Checkout a release branch you want to release from (release branches have names like `release/0.X` ),
1. Cherry-pick a commit you want to include OR merge `develop` branch,
2018-12-21 14:15:06 +00:00
1. Bump `Y` (`0.X.Y`) in the current version (`VERSION` file),
1. Commit and push the change to `release/0.X` branch,
2019-06-28 08:37:34 +00:00
1. Go to [Jenkins job ](https://ci.status.im/job/status-go/job/manual/ ), select "RELEASE" and use `release/0.X` branch name.
2018-12-17 09:55:17 +00:00
2018-12-21 14:15:06 +00:00
## Releasing a new version (breaking changes)
2018-12-17 09:55:17 +00:00
TODO: create a script that can do that instead of manual work.
2018-12-21 14:15:06 +00:00
1. Merge your PR to `develop` branch,
1. Pull `develop` branch locally,
1. Bump `X` , reset `Z` to `0` and commit to `develop` with a message "Bump version to 0.X.Y",
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,
2019-06-28 08:37:34 +00:00
1. Go to [Jenkins job ](https://ci.status.im/job/status-go/job/manual/ ), select "RELEASE" and use `release/0.X` branch.