Clone this wiki locally
Check if your code follows the Coding Conventions. If the code does not comply these style rules, your code will not be merged.
Create a new branch in your own fork for every new feature or fix. Then create the pull request from this branch, once you completed your task (feature or fix). Every commit in this branch will be added to the pull request. Use Labels to classify your pull request (only maintainers can assign labels). See also the guideline for creating a good pull request.
The master branch should always be in a working state. The RIOT maintainers will create release tags based on this branch, whenever a milestone is completed.
New features and fixes will always be submitted as pull requests. A pull request will be merged if the RIOT maintainers acknowledge the request. We currently use GitHub's Review feature to comment and acknowledge PRs. Before it will get merged, the pull request has to stay open long enough to discuss possible issues, but no longer than 30 days. The more extensive the changes in the pull request, the more time should be given for discussion.
Comments on a pull request should be added to the request itself, and not to the commit.
Only RIOT maintainers have commit rights to the main RIOT repository. However, even they have to create pull requests to submit their changes. A RIOT contributor cannot acknowledge his own pull request. All current RIOT maintainers are listed in the wiki (Maintainers).
Keep commits to the point, e.g., don't add whitespace/typo fixes to other code changes. If changes are layered, layer the patches.
Describe the technical detail of the change(s) as specific as possible.
When updating a pull request, push the changes as individual commits so the reviewers can tell how their comments have been addressed. (I.e. Refrain from squashing/amending changes to the pull request immediately. Add the label "NEEDS SQUASHING" instead so this will not be forgotten.)
E.g.: "address comment by @UserName - fix license header comment URL"
Once the pull request gets acknowledged, these follow up commits can be squashed in a reasonable manner before merging.
Closing an issue or pull request must always be accompanied by a comment indicating why it gets closed.
When porting for a new board, please create a wiki page at first if there isn't already one. The wiki page should include a link to an issue in the tracker to coordinate porting tasks. To make sure everybody catches this information, please put it on the developers mailing list once. This should avoid overlaps between the work of multiple developers.