On 29.05.2012 0:07, Brad Roberts wrote:
There's an analogy that we like to use at work, and in my experience it holds 
pretty well for code quality and bleeds
pretty well into the entire development process:

   http://en.wikipedia.org/wiki/Broken_windows_theory

We do an ok job when it comes to the tests (though certainly not perfect).  
We've been getting a lot better at
addressing regressions, though there's still 4 open right now (1 phobos, 2 
druntime, 1 dmd).  Can we please make the
remaining open regressions a release blocker?

Also, I'd really love to see the pull lists knocked down considerably before 
the next beta, particularly the phobos set
(considering the larger set of people with access to it).  The d-p-l and tools 
sets should be even easier to keep at 0,
but even those have some accumulated requests, the oldest of which is over a 
year now.

Several of the open requests (across all the repos) are open because there's 
some controversy about them.  I'll pick the
'dur' ones as a good, but hardly only, example.  Either those should be pulled 
or closed.  Leaving in limbo helps no
one.  For this sort of request, a choice needs to be made and move on.  A key 
part of the problem with this set is that
we don't have a process for deciding what to do with them.  Anyone care to put 
forth a proposal?
Would be awesome to have a simple official way of handling pull request.
Throwing in something to start a discussion.

    The D Pull Process (TDPP).
1. Pulls that are open longer then 1-2 weeks must be reviewed by at least one core dev. (exceptions are large pulls, e.g. 1KLOC+ pulls) 2. The review MUST end with one of following verdicts (it should be obvious, like separate message, no free form only exact terms*) :
    a) "Good to go", followed by merge.
b) "Needs work", review prolonged by another 1-2 weeks to let author address issues, then processed simillarly. c) "Not good enough" or "Rewrite" means that idea is OK, but implementation is no good and won't be accepted. Pull is either closed or in select cases it can be kept so that contributor can rewrite it with push --force.
    d) "Rejected", followed by explanation a-la:
        d.1 unfit, doesn't cover the problem set it objectively should
        d.2 disruptive, breaks (too much of) existing code
d.3 pointless, adds no or too little value (observe that d.1 is "misses the boat", here it's too small a benefit ) d.4 ineffective, (though that may be rewrite) if contributor refuses to rewrite ;) d.5 insecure/unsafe, breaking language or OS guarantees (proof links may help revert this decision)
        ...
e) "Postponed", followed by close. Meaning that it delayed for arbitrary long amount of time (not 1 month, but like "try again later") Read it like "till we have x64 dmd on win32" ;)

3. Longest period of review (given few prolongs) is 3** months. Then it's ether closed or merged, any possible limbo is handled via "e" - postponed (e.g. no response form authors etc.).

*Names are placeholders and debatable.
**values too, obviously

Another point - it looks like core developers are hesitant to pull in various stuff that touch parts of Phobos they know nothing about. Would be great if we had coverage of factor ~2 at least. That is every module in Phobos is known at least to 2 developers (known in general).

--
Dmitry Olshansky

_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to