We recently switched to a trunk-based development model for managing development.
master
branch has recently been depreciated in favor of usingdevelop
as the trunk branch.develop
branch contains the consistent and mostly stable development version of the Tasking Manager. It is the branch where all reviewed features are combined and tested together. This branch is automatically going to be deployed on tasks-stage.hotosm.org.feature/
branches are applied todevelop
after one teammate has reviewed the pull request as approved.hotfix/
branches are applied todevelop
after two teammates have reviewed the pull request as approved.bugfix/
branches are applied todevelop
after two teammates have reviewed the pull request as approved. This convention applies to non-critical fixes that can be deployed in the next scheduled release.deployment/
branches contain the codebase for deployed code. See Deployment for more info.
Outside collaborations from the wider community most likely will not always apply the trunk branching model and the conventions for naming the branches. This doesn’t have to be a requirement in this case.
This procedure is undergoing changes! Keep an eye on this space for updated info soon.
We consider major releases to be counting the second digit up (e.g. 3.1.0 or 3.2.0). Major releases shall happen around once every six weeks and follow an established procedure:
- After four weeks coordinate a feature freeze. Which can happen immediately, or might give some one or two weeks for finishing up the features that the team wants to have in the next release.
- Freeze
develop
after agreed improvements have been implemented. The feature freeze shall last for one week, which means no feature branch pull requests can be merged for the time being. - Create a Pull Request to
master
from thedevelop
branch. Include the release notes into it, so it can be reviewed by the team. - Ping
@hotosm/software-testers
group to test tasks-stage.hotosm.org extensively. - Get approval of two code reviews of core contributors to the Tasking Manager.
- After one week and good feedback merge into
master
. - Rebase
develop
onmaster
. - Create a tag with a release from the
master
branch.
A minor release refers to the third digit (like 3.2.1 or 3.2.2). It is meant to be an emergency release to fix bugs that are crucial. Only hotfix branches can be applied.
- Create a Pull Request to
master
from ahotfix
branch. Include brief release notes into it, so it can be reviewed by the team. - Get approval of two code reviews of core contributors to the Tasking Manager.
- Merge into
master
anddevelop
. - Rebase
develop
onmaster
. - Create a tag with a release from the
master
branch.