[Python-Dev] Interesting blog post by Ben Sussman-Collins
Jean-Paul Calderone
exarkun at divmod.com
Sat Jun 14 01:22:07 CEST 2008
On Fri, 13 Jun 2008 18:22:42 -0400, Barry Warsaw <barry at python.org> wrote:
> [snip]
>
>* small branches - we have a strict limit on diffs no greater than 800
>lines. Yes we have exceptions, but they are rare and pre-arranged. Having
>such a strict limit really forces you to be disciplined, organized and very
>effectively diffuses code bombs.
>
>* everyone can see (lots of) everyone else's code - this is great because
>everyone needs some advice or guidance along the way. If you get stuck,
>you can push a branch and I can pull it and look at it, run it, test it,
>even modify it and push my own branch for you to see. This is /much/ more
>effective than trading patches, and I don't see how this could even work
>without a dvcs.
>
>* nothing lands without being reviewed - this is a hard and fast rule, no
>exceptions. Someone else has to review your code, and most developers are
>also reviewers (we have a mentoring program to train new reviewers). You
>get over the fear pretty quickly, and learn /a lot/ both by reviewing and
>getting reviewed. Coding standards emerge, best practices are established,
>and overall team productivity goes way up. Small branches are critical to
>this process, as is our goal of reviewing every branch within 24 hours of
>its submission.
>
>* nothing lands without passing all tests - speaking from experience, this
>is the one thing I wish Python would adopt! This means the trunk is
>/always/ releasable and stable. The trade-off is that it can take quite a
>while for your branch to land once it's been approved, since this process
>is serialized and is dependent on full test suite execution time. Python's
>challenge here is that what passes on one platform does not necessarily
>pass on another. Still, if this week is any indication, passing on /any/
>platform would be nice. ;)
>
>I'm not saying Python can or should adopt these guidelines. An open source
>volunteer project is different than a corporate environment, even if the
>latter is very open-source-y. But it is worthwhile to continually evaluate
>and improve the process because over time, you definitely improve
>efficiency in ways that are happily adopted by the majority of the
>community.
A big +1 on all these points. I can also add that Twisted is developed
following many of these rules so it *can* work for open source volunteer
projects, if the developers want it to.
Jean-Paul
More information about the Python-Dev
mailing list