Created a "ContributingCode" wiki page. I intend for this page to replace the outdated-and-confusing "ContributionReviews" page.
diff --git a/ContributingCode.wiki b/ContributingCode.wiki new file mode 100644 index 0000000..08903a3 --- /dev/null +++ b/ContributingCode.wiki
@@ -0,0 +1,121 @@ +#summary Guidelines for contributing code to Melange +#labels Contents-Complete,Phase-Guidelines,Importance-Useful + +The [MelangeIntro Melange project] welcomes code changes from everyone. + +== Contributor License Agreement == + +*You must [ContributorLicenseAgreements sign a Contributor License Agreement] +before we can accept your contributions.* + +== Drafting Your Change == + +Please conform to [PythonStyleGuide Melange's Style Guide] when making +your change. If your change is of sufficient complexity to warrant +changed or additional test coverage, please change or add tests in +accordance with [TestingGuidelines Melange's testing guidelines]. + +== Committing Your Change == + +Any change to Melange requiring less than a day of work should be +proposed in the form of one or more commits. When creating a commit, +please deliberately author all three aspects of the commit. + +=== Commit Content === + +The number of changed files and number of changed lines in your commit +should be as small as possible. There should be no extraneous or +irrelevant changes to Melange included in your commit. `git status`, +`git diff`, and `git checkout` will help you create a commit +containing just the content changes that you intend to include. + +=== Commit Metadata === + +Commit log messages should be styled in the following manner: + +{{{ +One line under 70 characters summarizing the change. + +After a blank line, a more detailed paragraph explaining the +reason for the change (not necessarily what was changed, as that can +be seen by readers in the patch). Please wrap your lines at 70 +characters. + +If necessary, additional paragraphs affording more information, +also wrapped at 70 characters and separated from one another by +single blank lines. +}}} + +Commit log messages should follow a "what, then if necessary, why, +and if further necessary, how" rule for their content: the commit +log message should first describe the content of the change. Then, if +not clear from the context of the change, the commit log message +should state the reason for the change (for example, if the change +fixes issue 15, the log message might say "Fixes issue 15."). +Lastly, if the means by which the change was made is not apparent +from the context of the change (for example, if the change was made +by running some tool over the entire codebase rather than by manual +editing of individual files), the commit log message should describe +how the change was made. + +Metadata outside the commit log message should identify who made the +change and when it was made. Author and committer fields should be +of the form: + +{{{ +"FirstName LastName <somebody@example.com>" +}}} + +The commit's Date and Commit Date fields should be accurate. + +=== Provenance === + +Good changes should not be made "on top of" bad changes. New commits +should be given [http://code.google.com/p/soc/source/list?num=300 the head of Melange's master branch] +as their parent commit unless some particular complexity germane to +the change being made requires some other commit (or commits) to be +chosen as parents of the new commit. + +== Code Reviews == + +All code incorporated into Melange's codebase must first pass code +review conducted by a Melange committer. + +=== Requesting A Code Review === + +Please use `git bundle` to create a bundle file that contains your +commits. + +If your change addresses a known issue in Melange, please attach the +bundle containing your commits to the issue addressed as an attachment +in a comment on the issue. If your change is not relevant to any +particular issue, attach your bundle to a new message to the +[MailingListsGuidelines#Developer_list developer mailing list]. + +Upon reciept of your bundle, a Melange committer will conduct a review +of your code, typically within two or three days. + +=== Responding To A Code Review === + +Review of a commit generates a message to the +[MailingListsGuidelines#Commits_list commits list]. Typically the +reviewer will ask several questions during the course of the review; +respond to these questions in a reply message. If appropriate, attach +a revised bundle containing revised a version of your commit for +further review. + +*Contributions by first-time contributors typically go through several +rounds of review.* We hope you both learn from and enjoy the process. + +=== After Code Review === + +After you have created a commit that is suitable for inclusion in +Melange, a Melange committer will commit the change to +[http://code.google.com/p/soc/source/list?num=300 Melange's master branch]. +Congratuations! + +---- +_Copyright 2014 Google Inc._ +_This work is licensed under a_ +[http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License]. +[http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png]