The COmanage Project has adopted a modified version of git-flow as its branch management strategy. In short, the differences are
hotfix-1.0.x
is used for (eg) 1.0.1
and1.0.2
. While these will typically branch from and merge into main
, they may also branch from any release tag, and may not merge into main
if main
has already moved on to a new minor (or major) release. Both main
and hotfix-*
should be deployable at all times.develop
, which eventually merges into main
to create a release tag.feature-co500
). In general, feature branches are used when merging directly into develop
is undesirable, perhaps because the feature is experimental. Features may also be used when a priority enhancement is made for a specific deployment, and the enhancement is required before the next scheduled minor release.feature-3.1
) rather than a JIRA issue.Do not commit the same change to multiple branches. Pick the "earliest" relevant branch and commit there. For example, if you commit to Under limited circumstances, it may be necessary to cherry pick a commit or otherwise violate this rule. Please discuss before doing so. |
In general, do not merge |
Branch | Description | Branches From | Merges To |
---|---|---|---|
main | Current release or release candidate | - | - |
develop | New features scheduled for next minor release | - | main , hotfix-* (if appropriate) |
hotfix-* | Bug fixes and minor changes scheduled for next bugfix release | main | main , develop |
feature-* | Experimental or prioritized features | develop or (rarely) hotfix-* | develop , hotfix-* (if appropriate) |
container-maintenance | Maintenance updates for container images, e.g. updated PHP version | main | main, develop, hotfix-* |