Gitorious change submission procedure

Version 7 (Michael Troß, 02/03/2012 01:06 pm)

1 1 Johannes Winkelmann
h1. Gitorious change submission procedure
2 1 Johannes Winkelmann
3 1 Johannes Winkelmann
4 1 Johannes Winkelmann
h2. General concept
5 1 Johannes Winkelmann
6 1 Johannes Winkelmann
Typically, changes should not be pushed directly to 'mainline'. Instead, a personal repository and a merge request should be used. This ensures that the code gets reviewed by a second person, hopefully improving quality and consistency of the 'mainline' code base.
7 1 Johannes Winkelmann
8 4 Patrick Stählin
It is required to create a separate branch for every feature/set of changes one does, since this makes it easier to create the merge request, and allows one to continue working on other features while another merge request is open. Make sure the branch is rebased to @upstream/master@ before submitting a merge request.
9 1 Johannes Winkelmann
10 6 Patrick Stählin
If a merge request needs to be adjusted before it can be committed to @dss-mainline/master@ please use the power of git to add changes inside previous commits rather than adding a new commit. E.g. if a variable got a spelling error in it, please use @git rebase --interactive@ to correct the problem and keep the history clean.
11 5 Patrick Stählin
12 1 Johannes Winkelmann
h2. Special cases
13 1 Johannes Winkelmann
14 1 Johannes Winkelmann
h3. Trivial merges
15 1 Johannes Winkelmann
16 2 Johannes Winkelmann
Sometimes, changes can be rather trivial; we want every change to be submitted as merge request, however for trivial changes, the submitted should add '@[TRIVIAL]@' to the one-line summary, which should accelerate the review process of these.
17 1 Johannes Winkelmann
18 1 Johannes Winkelmann
Also, if the submitter is a member of the core team, the review may optionally choose to just acknowledge the merge request in a comment, allowing the original submitter to proceed and merge the change into 'mainline' himself/herself.
19 1 Johannes Winkelmann
20 1 Johannes Winkelmann
h3. Extra complex merges
21 1 Johannes Winkelmann
22 1 Johannes Winkelmann
If changes require manual merging and/or rebasing it may be advisable to merge the changes into an integration branch in a personal repository of a core member, create another merge request, and ask the original submitter to review this one.
23 7 Michael Troß
24 7 Michael Troß
h2. Contributing
25 7 Michael Troß
26 7 Michael Troß
Use the following list to check your merge-requests. As a general rule, stick to the conventions of the files you're editing.
27 7 Michael Troß
28 7 Michael Troß
* New features _should_ come with a test. We'll require tests as soon as the testability of the code improves.
29 7 Michael Troß
* The test-suite must pass (issue @make test@ in your build directory)
30 7 Michael Troß
* Don't use tabs
31 7 Michael Troß
* Two space indentation, strip whitespace at eol
32 7 Michael Troß
* Use meaningful commit messages
33 7 Michael Troß
** Keep the first line under 50 characters