Integration of new developers into a project is a common problem for projects of all sizes. New developers must be indoctrinated into the coding styles of the project, the conventions of the framework, and last, but not least, must produce correct code. These new developers are often thrown into a coding environment with only a general idea of standards, and Google at their disposal. If their code is reviewed, a senior developer must either be at their side, take a patch and apply it to his/her system, or look at the code once it's commited. None of these options are convienient, and require significant team syncronization. Too often, code/peer reviews fall by the wayside, and poor code is committed to the repository, only to cause problems down the line.
The goal of coiterate is to apply technology to the problem of having code/peer reviews done prior to the code being committed to a repository. The general process that coiterate will provide is:
- Developer writes code
- Developer generates a patch
- Developer uploads the patch to coiterate, with an appropriate commit comment
- coiterate selects another developer (reviewer) on the project to perform a review, send an E-Mail with a link
- coiiterate generates a change Table of Contents, and a side-by-side diff for the to reviewer
- The reviewer makes any comments about changes in the patch
- The reviewer accepts or denies the patch
- If the patch is accepted, coiterate commits it to the archive, as the Developer, and sets a rev-prop with reviewer information
- Developer is notified that the patch was accepted, and is able to view the reviewers comments.
- if the patch is denied, the Developer is notified, and is able to view the reviewers comments.
- Developer makes the appropriate changes, and re-submits the patch
- coiterate restarts the review process at step 4 above
This process should help insure that clean code is always committed to the archive. In true "Getting Real" style, the initial feature set will be kept to a minimum, with focus on the core process, and ease of setup and maintenance. Eventually, this project may seemlessly integrate with trac, and integrate a workflow and more fine grained selection of reviewers.
coiterate will be Free Software (GNU license).