Difference between revisions of "Imeji git repository policy"

From MPDLMediaWiki
Jump to navigation Jump to search
m
m
Line 25: Line 25:
For more information, with illustrations and code snippet, see [http://scottchacon.com/2011/08/31/github-flow.html the detailed git flow]
For more information, with illustrations and code snippet, see [http://scottchacon.com/2011/08/31/github-flow.html the detailed git flow]


[[Category:Imeji_Technical_Specification|git repository policy]]
[[Category:Imeji_Technical_Specification|Git repository policy]]

Revision as of 08:53, 4 March 2013

This page descibes the policy for the imeji version repository


Roles

  • repository manager: This person is responsible for all operation in the repository. Is the only one allowed to manage (create, delete, merge)the release branches and to commit into master.
  • community developers: Can create a feature branch and commit in development branch
  • external developers: Is responsible in its own repository, can commit into imeji repository via pull-request

Branches

  • master: The master branch contains the releases.
  • develop: it contains the current state of the development.
  • feature branch: it contains the development of a specific feature. The name of the branch should look like: feature-featureName
  • hotfix branch: A branch to fix bug of the current release. The name of the branch should look like: hotfix-hotfixVersionNumber
  • release branch: Is created to prepare a new release. Lives so long the release is not finished

Rules

  • The development is made in the development branch
  • New features are developed in a feature branch. This branch is created by a developer from the last commit in the develop branch. When the feature is ready, the branch is merged into develop and then deleted. The developer who created this branch is responsible to manage possible conflict with the develop branch (frequent merge from develop into feature branch recommended)
  • When the sofware is about to be released, the repository manager creates a release branch from the last commit of develop. He is responsible to merge potential changes made in develop branch. The release process will happen in this branch. At the end of the release, he will merge this branch into master and develop, and then remove the release branch
  • If a bug fix release is needed, a hot fix branch will be created out of the last commit in master (i.e. the last release). All bug fixes will be made directly into this branch, as well as the release process. When the bugs fix has been releases, the branch is merged into master and into develop. The repository manager is responsible for the creation, the release, the merge and the delete operations. All other developers can contributes into this branch to the bug fix.

Workflow illustration

Git-flow.png

More

For more information, with illustrations and code snippet, see the detailed git flow