Moose::Manual::Contributing - How to get involved in Moose
version 2.0604.
As Moose has matured, some structure has emerged in the process.
You.
If you have commit access, you can create a topic on the main Moose.git repository. If you don't have a commit bit, give us your SSH key or create your own clone of the git://git.moose.perl.org/Moose.git repository.
The relevant repository URIs are:
git://git.moose.perl.org/Moose.git
gitmo@git.moose.perl.org:Moose.git.
The repository is divided into several branches to make maintenance easier for everyone involved. The branches below are ordered by level of stability.
The branch from which releases are cut.
When making a new major release,
the release manager makes a new
stable/X.YY branch.
The main development branch.
All new code should be written against this branch.
This branch contains code that has been reviewed,
and will be included in the next major release.
Commits which are judged to not break backwards compatibility may be backported into
stable to be included in the next minor release.
Topic branches that are completed and waiting on review.
A Cabal member will look over branches in this namespace,
and either merge them to
master if they are acceptable,
or move them back to a different namespace otherwise.
Small personal branches that are still in progress. They can be freely rebased. They contain targeted features that may span a handful of commits. Any change or bugfix should be created in a topic branch.
Branches which have been reviewed, and rejected. They remain in the repository in case we later change our mind, or in case parts of them are still useful..
# update your copy of master git checkout master git pull --rebase # create a new topic branch git checkout -b topic/my-feature # hack, commit, feel free to break fast forward git commit --amend # allowed git rebase --interactive # allowed git push --force # allowed # keep the branch rebased on top of master, for easy reviewing git remote update git rebase origin/master git push --force # when finished, move the branch to the rfc/ namespace git branch -m rfc/my-feature git push git push origin :topic/my-feature
When your branch is completed, make sure it has been moved to the
rfc/ namespace and is rebased on top of master, and ask for review/approval (see "APPROVAL WORKFLOW"). If it is approved, the reviewer will merge it into
master.
No actual merging (as in a human resolving conflicts) should be done when merging into
master, only from
master into other branches.. For especially simple patches (doc patches especially), committing directly to master is fine..