-
Notifications
You must be signed in to change notification settings - Fork 668
Desktop Client Github Workflow
This article will explain the git workflow and branching model we use to develop the ownCloud Desktop Client. Development happens in Github at http://github.com/owncloud/mirall. Mirall is the original name of the project that inspired for the start of the ownCloud Client, and was kept as a working name.
Regular development usually happens in the master branch. For larger features, feature branches based and rebased on master are created to develop in. Once a feature has matured the feature branch is merged into master.
When we are heading towards releases, a release branch is created. That happens usually with the release of the first beta and also means a harder feature freeze. Release branches are created for major releases only, i.e. 1.6 and 1.7, not for 1.6.1, 1.6.2.
The minor releases are tags in the release branch. Git tags are created for every release (also betas) and should be used to specify the version to build in Jenkins.
The closer we get to a release the more work happens in the release branch. That makes it necessary to merge the release branch into master regularly.
We do not have a formal review process by now. But every member of the desktop team is expected to review every commit that is going in, especially in the release branches.
For bigger changes or things that might require discussion it is advisable to use the Github pull request mechanism to get stuff into master.
Testing should happen especially in the release branch. Once a release branch is created, it will be clear which high level features are subject of the release. Testing will concentrate on these. The Github milestones also help to identify bugs and features relevant for the release.
Bug fixes are marked with label "Ready To Test" in the bug tracker if they should be reviewed by QA. QA closes the issues and removes the "Ready to Test" label once testing was done with a positive result. Next to a release, all bug fixes must be tested in the release branch.
☁️