ACE3/documentation/development/branching-and-release.md
2015-05-16 20:03:19 +02:00

38 lines
2.1 KiB
Markdown

---
layout: wiki
title: Merging Pull Requests
description:
group: development
parent: wiki
order: 5
---
## 1 Versioning
For ACE3 we use an versioning strategy based on Semver http://semver.org/. This means our version numbering is structured `MAJOR.MINOR.PATCH.BUILD`.
Because this modification is for Arma and backwards compatability is not always possible, our `MAJOR.MINOR.PATCH.BUILD` rules are slightly different. We increment the:
MAJOR version when we switch to a new arma version (ie Arma 4 or standalone expansion),
MINOR version when we add new features or large amount of bug fixes.
PATCH version when a release only contains bug fixes.
## 2 Branching and releases
We have a release scheduled every 2 weeks on a Tuesday. On the friday before release, the project management will decide whatever or not this scheduled release will continue. When continueing with the release, the current `master branch` will be merged into a `release branch`. This release branch will not contain any direct commits and no other branches will be merged into this branch. The exception being `hotfixes`, which are branched off `Release` and merged back into `Release` and `Master`.
`Hotfixes` are fixes for critical bugs that prevent stable gameplay with the currently available version of ACE3.
During this release process between the friday and tuesday, the day of release, work can continue on as normal on the `Master branch`. This includes new features, bug fixes that won't make it for release or other work`. These will not be merged into the `Release branch` until the next release cycle, normally 2 weeks later.
### 2.1 Branching
* New features, bug fixes that are not a hotfix or other work will always be branched off `master` or another branch but never a `hotfix` or the `Release branch`.
* Hotfixes are always branched off the `Release branch`
* The release branch is never merged or deleted. Only master or hotfixes are allowed to merge into the `Release branch`.
### 2.2 Diagram
<img src="{{ site.baseurl }}/img/wiki/development/release_and_branching.jpg" alt="Release and branching flowchart" />