OT Software Review Code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry for the off-topic post.

I'm looking for the following in an open source project...

Imagine using bugzilla hooks, or hooks in Trac, or a new piece of 
"software review code" I'll call SRC, to implement the following...

When a code change is proposed, make a new entry in SRC.  Describe the 
change, add a commit message for the change, and add a patch that 
implements the change.

Next SRC enters the "patch review state".  In this state, SRC runs the 
patch through an automatic patch evaluation process that has hooks to 
check the style, build, and run tests.  If the patch fails this test, 
the patch submitter is asked to resubmit the patch by SRC via email.

If the patch passes the automatic patch submission test, it goes to the 
"code review state".  For this state, the SRC program reviews all 
directories and source modules modified by the patch and determines a 
point value based on a point value assigned to the directories and files 
in the code base.

The point values are used to determine the level of review required 
before a commit to the version code repository is allowed.  Usually, 
commit privileges are based on a simple binary decision based on the 
code that is being changed and the changes account name.

Here's an example of the proposed system.  Someone commits a patch that 
touches the following directories with the following point values:

Application/src          1
Lib/Math                 6
Lib/GUI                  5

SRC would look at this data and use the worst case required point total.

In this case it would be 6 for the change made to the Lib/Math directory.

Now imagine anyone registered in the SRC database could review the 
patch, but patch reviewers were assigned a "code reviewer quality".

Account Name  |  Code Reviewer Quality
--------------------------------------
cppexpert     |        5
upandcomer    |        3
newbie1       |        1
newbie2       |        1
newbie3       |        1
newbie4       |        1
newbie5       |        1
unqualified   |        0
--------------------------------------

Also imagine SRC has a check box that reviewers can check to give their 
review approval to a patch.  If they don't give their approval, the
submitter must negotiate with the reviewer and possibly resubmit the 
patch.  If this occurs the patch must pass the "automatic patch review" 
again and review continues.

Once the sum of Code Reviewer Quality points for reviewers that have 
approved the patch is greater than or equal to 6, the patch is tested 
one more time to see if updates are needed, and if it passes this final 
test, the code is committed using the account of the original patch 
submitter and the commit message they entered in an earlier phase of the 
process.

In this case if the "cppexpert" and anyone other than "unqualified" 
reviewed an approved the patch, it would be approved and committed by 
SRC.  Reviews and approvals by the "upandcomer" account plus three 
additional "newbie*" reviews would also commit the patch.

There could also be an optional "software design/architecture review 
state" added up front that disallows the submission of a patch until the 
proposed changes have passed a similar point based review.  A person in 
the SRC system may be assigned different Quality values for
different tasks.  For instance the "cppexpert" might have a 5 rating for 
"Code Reviewer Quality", but a 2 rating for "Design Reviewer Quality". 
For "designexpert" it might be the opposite.

Does anyone know of such a beast that is available as open source?

Where should I post such a question?

Pete

PS I currently implement this by restricting commit privilege to 
critical directories to myself to force peer code review. 
Unfortunately, this means I'm the only member of the team that can 
commit in these directories.  So there is currently a binary system that 
says "only I can commit here" which means "I want the code committed to 
this directory to be thoroughly reviewed".  The only way I could 
guarantee thorough code review was to lock everyone else out and review 
everything myself.  I want a system that will change this.

-- 
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines

[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux