mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-18 17:40:48 +02:00
2.5 KiB
2.5 KiB
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 versionmaj.min.patch
beta
branch is for stabilization of ongoing release. We don't merge new features intobeta
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 named
Release 1.x
-
- Specify this milestone for all regression bugs and major bugs related to new functionality
- Create
beta
branch fromdevelop
- 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
- Make sure to announce codebase freeze deadline to all developers
- Update release notes
- Update release date for Linux packaging. See example
- Update release date for Android packaging. See example
- Create draft release page, specify
1.x.0
as tag formaster
after publishing - Prepare pull request with release update for web site https://github.com/vcmi/VCMI.eu
- Prepare pull request for vcmi-updates
Release publishing phase
Should be done on release date
- Check that all items from milestone
Release 1.x
completed - Merge
beta
intomaster
- 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
intodevelop
- Update downloads counter in readme.md. See example