Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
dev:howto:contribute [2013/02/02 13:37] – [Contribution Process] jannis | dev:howto:contribute [2013/02/02 15:55] – jannis | ||
---|---|---|---|
Line 44: | Line 44: | ||
* Make sure to commit frequently. | * Make sure to commit frequently. | ||
+ | * Make sure to pull in the latest Xfce master frequently. | ||
* Keep commits clean: | * Keep commits clean: | ||
* Make incremental, | * Make incremental, | ||
Line 49: | Line 50: | ||
* Comment the code you write | * Comment the code you write | ||
* Write commit messages using the standard Git message format | * Write commit messages using the standard Git message format | ||
- | * Don't fear the rebase (against master) to reorder, reorganize and rewrite your branch | + | * Don't fear the rebase (against |
=== 3. Push === | === 3. Push === | ||
- | Before submitting your changes for review, it is a good idea to push them to a public repository, e.g. on GitHub. This will make it easier for others to check out your branch and test it as part of their reviews. | + | Before submitting your changes for review, it is a good idea to push them to a public repository, e.g. on GitHub. This will make it easier for others to check out your branch and test it as part of their reviews. It also simplifies the merging process. |
=== 4. Submit for review === | === 4. Submit for review === | ||
- | Submitting your changes for review is as simple as running a single | + | Submitting your changes for review is as simple as running a single command. In your branch, run: |
git send-email --suppress-cc=self --annotate --cover-letter origin/ | git send-email --suppress-cc=self --annotate --cover-letter origin/ | ||
Line 72: | Line 73: | ||
... auto-generated git log and diff stats ... | ... auto-generated git log and diff stats ... | ||
- | Fill out the SUBJECT and MESSAGE by briefly describing what you are submitting. Then save the file and close the editor. '' | + | Fill out the SUBJECT and MESSAGE by briefly describing what you are submitting. Then save the file and close the editor. '' |
+ | |||
+ | **Configuring '' | ||
+ | |||
+ | You will need to configure a number of items for '' | ||
+ | |||
+ | git config --global sendemail.smtpserver mail.example.com | ||
+ | git config --global sendemail.smtpserverport 25 | ||
+ | |||
+ | If you need encryption to use your mail server, set: | ||
+ | |||
+ | git config --global sendemail.smtpencryption starttls | ||
+ | |||
+ | If you need to log in to your server, you can set the user name in the config and then git send-email will prompt you for the password during the sending process. | ||
+ | |||
+ | git config --global sendemail.smtpuser yourmailusername | ||
+ | |||
+ | You need to teach git send-email what name and address to send the emails from. This might need to change from project to project, but if not, then: | ||
+ | |||
+ | git config --global sendemail.from "$(git config user.name) <$(git config user.email)>" | ||
=== 5. Review === | === 5. Review === | ||
+ | |||
+ | Once submitted to '' | ||
+ | |||
+ | * Testing the changes. | ||
+ | * Comments on: | ||
+ | * Coding style and bad code design | ||
+ | * Potential issues | ||
+ | * Possible side-effects | ||
+ | |||
+ | The reviews will be sent as replies to your cover letter and patch emails. Thanks to having the patches included in your submission as plain text, they can be commented on in-line. | ||
+ | |||
+ | Reviews may be performed in multiple rounds. If your submission is rejected, you are advised to rework your branch and re-submit it using the same approach as described above. | ||
=== 6. Merge === | === 6. Merge === | ||
+ | |||
+ | Once you get an ok, one of the reviewers will pull your branch into the official repository and merge as follows: | ||
+ | |||
+ | git checkout master | ||
+ | git merge --no-ff <your username>/< | ||
+ | | ||
+ | This will result in an explicit merge commit, confirming in the git history that your changes have been merged. | ||
+ | |||
+ | At the bottom of the merge commit message, the reviewer should add the following lines: | ||
+ | |||
+ | Signed-off-by: | ||
+ | Reviewed-by: | ||
+ | Reviewed-by: | ||
+ | | ||
+ | These fields are defined in the [[http:// |