[LinuxBIOS] commit rules

Stefan Reinauer stepan at coresystems.de
Sun Oct 22 19:34:20 CEST 2006


* Uwe Hermann <uwe at hermann-uwe.de> [061022 18:07]:
> I agree that all of the review and patch management should happen on the
> list. The issue tracker should only be used for tracking bugs (when a
> commit fixes a bug in the tracker, the commit message should say
> "Closes: #1234" or some such thing; Trac for example will then
> automatically link to the respective issue/bug).
 
I think we can easily reach this. All tracker changes can be sent to the
list, similar to what OLPC does.


I am all for putting all patches into the tracker. For several reasons:

- if I make a patch A and it is superseded by patch B, I need to be able
  to track this.

- Feature enhancements should be handled like bug fixes as well to make
  the change process simpler-

- Every patch therefore is a to-be-tracked bug/issue, and should go to
  the tracker.

  If there's no bug, there's no need to change the code, right?

- If there is some issue that requires action on developer side, this
  issue has a distinct status. an issue can be resolved, or open, or 
  in progress, etc. 
  On a mailing list we dont have this status. I have issues in my inbox
  that reflect open threads, though being several weeks old. This is
  not going to change, but it should be handled properly. Just having 
  such stuff in mails _does_ make important issues go down. 

  I want to point out Uwe's very useful mail of un-checked in patches on 
  the mailing list. I guess some are still open, but I forgot.

  Having them in an issue tracker at one point would make life a lot
  easier.

- Last but not least: That is how we've already been doing it since
  quite a while with the roundup issue tracker. But since roundup pretty
  much sucks people stopped using it.

> The issue tracker can also be used for long-term issues (so we don't
> forget about such things), and maybe release planning/goals etc.
 
Yes, we do want milestones and handle them publically so people can plan
on interactions to get those solved.

> Another important thing for the issue tracker: _Users_ should be able to
> use it to submit bug reports, feature requests etc.

full ack. This is a more modal form of doing support.

> > > As in: No code goes in
> > > that does not serve a (documented) purpose.
> > 
> > A good check in comment would state that purpose anyway.
 
this is the wrong direction. The reason has to be documented 
_before_ the checkin, not after the checkin. I agree though that we
need better checkin comments. 

> > How about: only maintainers (of the code under discussion) can approve
> > a patch (and they can approve their own).  Patches should _still_ be
> > sent to the mailing list of course (and in most cases it would be
> > prudent to not check in before it has been out for review for a few  
> > days).
> 
> I don't think there are clear maintainers of subsystems (as in the Linux
> kernel). Neither is there a Benevolent Dictator (Linus) here.
> Both is a good thing, IMHO.

currently we have a couple of people who are long-term contributors and
looked at many different pieces of code to be able to judge whether code
"fits in the structure" of LinuxBIOS, and there are some others that
have 100% indepth hardware knowledge that is required to make things
work. Those are arguing which things should go in until someone feels
determined to check things in. So we dont have a voters system, but we
dont really have a dictator system as well.

The grub project had this discussion recently, and Johan Rydberg had an
interesting suggestion (which did not find too much positive feedback
from the "dictators" though ;):

------- 8< -------
From: Johan Rydberg <jrydberg at night.trouble.net>
To: grub-devel at gnu.org
Subject: Let core developers "vote" to accept patches.
[..]
In other projects that I've worked on, we've used a system where the
core developers can either give a +1 or a -1 on a contributed patch.
If a patch receives two +1's or more, it is accepted (if there are no
-1's) and committed by one of the developers.

This lowers the pressure on the maintainers, and hopefully will speed
up the development.

Though, the core developers need to be a bit careful.  They should not
give +1's or -1's on a patch that they either (1) do not fully
understand, or that (2) applies to a section of the code that they are
not knowledgeable about.  It is then better to either state that they
do not know the area well enough, and maybe give the patch a +0, or be
silent.

The downside is that some developers will never feel that they are
knowledgeable enough to comment on a contribution; resulting in that
the maintainer will have to do it.  The same situation we are in now,
more or less.

The upside is that the maintainers can focus on other things than just
reviewing patches; maybe getting some new features in.  Also, trivial
and small patches will get quicker review and get merged into the tree
in a swift manner.


Please note:

This is in no way an attempt to overrun any of our maintainers, it is
just an attempt to make things go a bit smoother and faster in the
times when the maintainers are busy with other things.
[..]
~j
------- 8< -------

> As for the sign-off mechanism: the two main points it should
> achieve, I think, is this:
> 
>  1. Review of _all_ patches.
 
ack!

>  2. Tracking of who is the author and copyright owner of the code, and
>     making sure that all contributed code is GPL'd.

ack!

>  * If a reviewer merely looked over the patch and thinks it's ok and
>    should be applied, he replies to the mail with
> 
>      Acked-by: John Reviewer <baz at example.com>
> 
>    This only means he reviewed the patch, he does _not_ modify it, and
>    thus is not an author/co-author, and thus doesn't own the copyright
>    on the code.

So in addition to one Signed-off-by: we would need at least one other 
Signed-off-by or at least one Acked-by?


>  * When the review process is finished and there's consensus that the
>    patch is fine, it gets committed (usually by the person who wrote
>    it, or by someone else if the person doesn't have an svn account).
> 
>    The commit log then _must_ contain _all_ Signed-off-by and Acked-by
>    lines the patch gathered during the review process.

which argues for putting the patches into the tracker. grabbing this
stuff together in the mailing list archives is fine for stuff that goes 
in after 1-4 days, but will be hell for bigger things..

>    Also, it _must_ contain a good, descriptive explanation what the
>    patch does, and why (but that should always be the case anyway).
>    If it fixes a bug from the issue tracker, it should be referenced.
 
This description should also go to the tracker, so it can be copied to
the commit message from there. There should also be a link to the
tracker. ie. This commit adds the feature described in isse #2342.

This is why we wanted a tracker with VC support after all, right?

> Optional:
> 
>  * We _could_ introduce a rule that every (non-trivial) patch needs at
>    least one Signed-off-by and at least one Acked-by line. This ensures
>    that at least one other developer looked over the patch and didn't
>    spot any glaring obvious breakage.

Maybe a second signed-off-by should be handled like an acked-by, because 
we can assume that someone participating in a patch will acknowledge
its inclusion in the tree.

> > Please even with a tracker keep it on the mailing list as well.  Mail
> > works offline, is distributed, has built-in redundancy -- all things
> > that a centralised web-based thing does not.
> [...]
> > Let's keep the whole "process" thing as flexible and unobtrusive as
> > possible?
 
> ACK.
 
It still needs to be a process though. We've had enough uber-hackers
destroying the tree because they thought they just know better than all
the rest of us. If people do not want to cooperate, they can do their
own fork, right. So we might very well enforce cooperation in this
project. ;-)

And a set of rules that apply to anyone is 100% to be preferred over
the endless arguing about why one party insists on the other doing this
and that even though its only overhead and it doesnt really matter
because the tree compiles (meaning: for one single board).

> I think using the Linux kernel process is nice, because it's
> well-established and well-known, so contributors who know the
> kernel-process, feel right at home when contributing to LinuxBIOS.

ack.
 
> Also, I suggest to always use the _same_ name, email (and case and spelling)
> for the Signed-off-by/Acked-by lines for consistency reasons.
> E.g. don't use "Ron G. Minnich", "ron minnich", "Ronald G. minnich",
> "ronald g. minnich" etc... Choose one and use it consistently.
 
It should at least be the same email address.

Also: Who should be doing reviews? Only other committers? Or anyone?

> Another suggestion for the pre-commit-hook:
> 
>  * Make it check for the exact spelling of 'Signed-off-by:' (that's
>    what the kernel uses (instead of Signed-Off-By:).

ok changed.


>  * Make a Name and an email address required (already done?)
 
currently only an email is required. any regex welcome ;)
 
> Uwe.
> -- 
> Uwe Hermann 
> http://www.hermann-uwe.de
> http://www.it-services-uh.de  | http://www.crazy-hacks.org 
> http://www.holsham-traders.de | http://www.unmaintained-free-software.org



> -- 
> linuxbios mailing list
> linuxbios at linuxbios.org
> http://www.openbios.org/mailman/listinfo/linuxbios

-- 
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.dehttp://www.coresystems.de/




More information about the coreboot mailing list