mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-18 17:40:48 +02:00
47 lines
2.4 KiB
Markdown
47 lines
2.4 KiB
Markdown
|
## Branches
|
||
|
Our branching strategy is very similar to GitFlow
|
||
|
* `master` branch has release commits. One commit - one release. Each release commit should be tagged with version `maj.min.patch`
|
||
|
* `beta` branch is for stabilization of ongoing release. We don't merge new features into `beta` branch - only bug fixes are acceptable. Hotfixes for already released software should be delivered to this branch as well.
|
||
|
* `develop` branch is a main branch for ongoing development. Pull requests with new features should be targeted to this branch, `develop` version is one step ahead of 'beta`
|
||
|
|
||
|
## Release process step-by-step
|
||
|
Assuming that all features planned to be released are implemented in `develop` branch and next release version will be `1.x.0`
|
||
|
|
||
|
### Start of stabilization stage
|
||
|
Should be done several weeks before planned release date
|
||
|
|
||
|
- Create [milestone](https://github.com/vcmi/vcmi/milestones) named `Release 1.x`
|
||
|
- - Specify this milestone for all regression bugs and major bugs related to new functionality
|
||
|
- Create `beta` branch from `develop`
|
||
|
- Bump vcmi version on `develop` branch
|
||
|
- Bump version for linux on `develop` branch
|
||
|
|
||
|
### Release preparation stage
|
||
|
Should be done several days before planned release date
|
||
|
|
||
|
- Update [release notes](https://github.com/vcmi/vcmi/blob/develop/ChangeLog.md)
|
||
|
- Update release date for Linux packaging. See [example](https://github.com/vcmi/vcmi/pull/1258)
|
||
|
- Update release date for Android packaging. See [example](https://github.com/vcmi/vcmi/pull/2090)
|
||
|
- Create draft release page, specify `1.x.0` as tag for `master` after publishing
|
||
|
- Prepare pull request with release update for web site https://github.com/vcmi/VCMI.eu
|
||
|
- Prepare pull request for [vcmi-updates](https://github.com/vcmi/vcmi-updates)
|
||
|
|
||
|
### Release publishing phase
|
||
|
Should be done on release date
|
||
|
|
||
|
- Check that all items from milestone `Release 1.x` completed
|
||
|
- Merge `beta` into `master`
|
||
|
- Check that artifacts for all platforms are available on `master` branch
|
||
|
- Trigger builds for new release on Ubuntu PPA
|
||
|
- Attach build artifacts for all platforms to release page
|
||
|
- - Android build should be prepared manually from custom branch (master)
|
||
|
- Merge prepared pull requests
|
||
|
- Publish release page
|
||
|
|
||
|
### After release publish
|
||
|
|
||
|
- Close `Release 1.x` milestone
|
||
|
- Write announcements in social networks
|
||
|
- Merge `master` into `develop`
|
||
|
- Update downloads counter in readme.md. See [example](https://github.com/vcmi/vcmi/pull/2091)
|