There are two long-lived branches in SOCS, master
and develop
.
master
should be considered stable, and will only move forward on official
releases. develop
may be unstable, and is where all development should take
place. This branching model follows the one in the OCS repository.
What this means for you, the contributor, is that you should base your feature
branches off of the latest develop
branch, and pull request them into
develop
. Detailed steps below.
When opening a pull request, you should push your feature branch, and select
the develop
branch as the base branch, the branch you want to merge your
feature branch into. This is the default branch, so it should be automatically
selected for you.
Note: Releases will be issued by core maintainers of SOCS.
If you are trying to issue a release of SOCS you should follow these steps:
- Open a Pull Request, comparing
develop
to themaster
base branch. Describe the features added for this release. - Make a merge commit when you merge this PR.
- This merge commit will be what is tagged for the release.
develop
is now one commit behindmaster
(the merge commit)
- Pull the latest
master
anddevelop
branches to your work station. - Checkout
develop
, then rungit merge --ff-only master
, catchingdevelop
up tomaster
. push origin develop
to update the remotedevelop
branch.
The develop
and master
branches are now aligned, and master
is
ready to be released. You can use the GitHub release interface to create a new
release, copying the change log you wrote in the PR and otherwise describing the
release.
Contributors should follow the recommendations made in the SO Developer Guide.