You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@spamassassin.apache.org by Justin Mason <jm...@jmason.org> on 2007/07/04 18:41:48 UTC

a guide to reviewing

actually, it occurs to me that a good few of the recent committers
probably don't know the details on reviewing patches.
http://wiki.apache.org/spamassassin/DevelopmentMode has the details; I'll
cut and paste:


  Review-Then-Commit

  R-T-C mode is short for "[WWW] Review-then-Commit".

  Non-trivial patches (see below for a definition of what's considered a
  'trivial' change) must be reviewed by committers, and need consensus
  approval before being committed into the development tree. This is done
  by opening a Bugzilla ticket, setting the Target Milestone to the
  correct release version of the tree, attaching the suggested patch to
  the ticket via the web interface, and putting the ticket in "review"
  status (indicated by adding [review] as a prefix to the ticket summary).

  The patch is then [WWW] voted upon, and if gets a [WWW] consensus
  approval and is not [WWW] vetoed, can be applied to the tree. Votes
  should generally be permitted to run for at least 24 hours to provide an
  opportunity for all concerned persons to participate regardless of their
  geographic locations. "Consensus approval" refers to a vote which has
  completed with at least three binding +1 votes and no -1 vetos.

  The author of a patch is allowed to vote as long as they're a committer.
  Typically, if a committer uploaded the patch, it's assumed they're
  implicitly voting +1 on their own patch, unless otherwise specified.

  Trivial Patches: When R-T-C is Optional

  Trivial patches include:

      * documentation
      * finishing off pre-existing T_ tests
      * changes to sandbox rules
      * non-controversial non-semantic style changes (fixing indentation, adding comments, but not actual code)
      * very simple, non-controversial, and absolutely safe bug fixes (i.e.: removing repetitive my() enclosing sections)

  These can be applied without a vote.

  Time Delays for Code Modifications

  Votes should generally be permitted to run for at least 72 hours to
  provide an opportunity for all concerned persons to participate
  regardless of their geographic locations.

  (Since it does say "generally", it seems reasonable exceptions to the 72
  hour rule are allowed if you specify such in your vote, but let's always
  allow at least 24 hours or at least 48 hours if the weekend is involved.
  Remember, though, that if someone later vetos with a technical
  explanation, then the code gets pulled.)

  How To Review A Patch

  Please don't vote +1 unless you actually did something to check the
  patch. That means some form of testing or code review. You do not
  necessarily need to apply the patch to your local copy of SA, but do
  take a look at it before voting +1.

  It's not your responsibility as the reviewer to run 'make test'. It is
  assumed that a review patch already passes this, so don't worry about
  it.

  If you don't understand the workings of the code you're voting on, don't
  worry about it too much. Do your best, and if all else fails, vote on
  the structural aspects of the patch, and its code quality. It's not
  expected that every committer knows how all of SpamAssassin works -- but
  it is important that R-T-C has enough people voting!

  Running 'make test'

  'make test' should be run before committing anything, unless the change
  doesn't modify the code in any way (such as a documentation change). If
  you check in something that breaks 'make test', you have Done A Bad
  Thing.

  If you send out a patch for C-T-R, and your patch manages to break 'make
  test' on its own (ie. not through interaction with other current review
  patches), that is Also Bad. However, it's not the fault of the reviewers
  -- it's yours ;)


Hope that helps,

--j.

Re: a guide to reviewing

Posted by Sidney Markowitz <si...@sidney.com>.
Michael Parker wrote, On 5/7/07 8:53 AM:
> but I did want to highlight the 24 hr clause. I'm seeing patches
> enter bugzilla, get voted on and get committed in < 24 hrs

Oops, even worse than my faux pas at committing other people's fixes, I
see that I included bug 5545 when I was blasting through the queue of
3.2.2 bugs that had been finally reviewed after sitting for a long time.
Mea culpa, mea culpa, mea culpa. No excuse for that one.

 -- sidney

Re: a guide to reviewing

Posted by Sidney Markowitz <si...@sidney.com>.
Daryl C. W. O'Shea wrote, On 5/7/07 8:59 AM:
> Michael Parker wrote:
>> Also, it is polite to allow patch creators, who are also committers, to
[...]
> Yeah, I find this quite annoying when others immediately commit other 
> people's patches

I apologize -- I would not have done that if I had thought anyone would
be annoyed by it. It must be a cultural difference. I won't do that again.

 -- sidney

Re: a guide to reviewing

Posted by "Daryl C. W. O'Shea" <sp...@dostech.ca>.
Michael Parker wrote:

> Also, it is polite to allow patch creators, who are also committers, to
> apply and commit their own patches unless a) they pass that off to
> someone else or b) enough time has passed with sufficient votes for the
> patch to be committed.

Yeah, I find this quite annoying when others immediately commit other 
people's patches.  Just now I spent a good chunk of time looking for a 
change I made 6 months ago to finally find that someone else committed 
it as soon as they added their (the third) +1 vote.

Daryl

Re: a guide to reviewing

Posted by Michael Parker <pa...@pobox.com>.
Justin Mason wrote:
> 
>   The patch is then [WWW] voted upon, and if gets a [WWW] consensus
>   approval and is not [WWW] vetoed, can be applied to the tree. Votes
>   should generally be permitted to run for at least 24 hours to provide an
>   opportunity for all concerned persons to participate regardless of their
>   geographic locations. "Consensus approval" refers to a vote which has
>   completed with at least three binding +1 votes and no -1 vetos.
> 

Not that I have an issue with any recent commits, and with me being less
than active perhaps I should just shut up, but I did want to highlight
the 24 hr clause.  I'm seeing patches enter bugzilla, get voted on and
get committed in < 24 hrs.  While there are good reasons to bypass the
24 hr pause, it is there for a reason.

Also, it is polite to allow patch creators, who are also committers, to
apply and commit their own patches unless a) they pass that off to
someone else or b) enough time has passed with sufficient votes for the
patch to be committed.

Michael