Skip to content

Branches

Mark Reeves edited this page Jan 4, 2018 · 5 revisions

This page is to help contributors understand which branch to work against.

Short Story

We don't use master as our default branch, instead it will be alphabetically sorted names starting with charlie. For historical reasons the one we did was called release2.

If in doubt it's always safest to develop against the default release branch, i.e. create your activity branch off the default branch and raise your pull request against the default branch. GitHub will set the defaults for you when creating a pull request, so if in doubt don't change anything.

Release Branches

Our branch model is designed to support development on parallel releases. For example suppose the latest release branch is named narcissus and the previous one is medea. In this example:

  • medea is bugfixes only
  • narcissus is active development

Any changes to medea must be merged into narcissus. Any changes to narcissus will generally not be merged into medea.

Master Branch

The master branch is our "mainline" and is never touched in normal development. Release branches are created off the master branch. Immediately before creating a release branch the latest release branch will be merged back into master.

The creation of a new release from master would generally coincide with cessation of development on the penultimate release - for example when creating oedipus all work would typically stop on medea which would essentially be frozen (while narcissus would become bugfixes only).

Clone this wiki locally