[Twisted-Python] Interesting plot on new author contributions post-Github for several Python packages

Richard Wall m-lists at the-moon.net
Mon Aug 26 16:37:18 MDT 2013


On 26/08/2013, Terry Jones <terry at jon.es> wrote:
> This doesn't prove anything, but I think the first plot at
> http://jakevdp.github.io/blog/2012/09/20/why-python-is-the-last/ is quite
> provocative.

Terry,

I don't think the problem is "too few contributors".

A big problem is that there are too few reviewers - especially while
Tom's away.

There are 52 branches currently awaiting review:
 * https://twistedmatrix.com/trac/report/15

Here are a few thoughts:

 1. Encourage new code reviewers -- various people have said they'd do
    code reviews but are unsure of the process or feel unqualified to
    comment on other people's code. So:

    1. Update the code review checklist
       * https://twistedmatrix.com/trac/wiki/CodeReview
       * https://www.ibm.com/developerworks/rational/library/11-proven-practices-for-peer-review/
         (via @zooko)
       * http://mumak.net/stuff/your-code-sucks.html

    2. Make the code review checklist and the highscores pages more
       prominent. Maybe via a new "Contribute" link on the top right
       of the homepage. (I think ashfall was working on a new wiki
       page for contributors).

    3. Less emphasis in report 15 on "By Order You Should Review Them
       In"
       * It's very difficult (for me at least) to review branches
         that I know nothing about.
       * Reviewers should be encouraged to review tickets for
         components that they are familiar with or tickets which they
         are interested in learning more about.
       * https://twistedmatrix.com/trac/report/15


 2. Encourage code review trading
    1. Contributors could be pointed to report 15 after submitting
       their patch or branch.
    2. Encourage contributors to make contact with another developer and
       agree to trade reviews.
    3. Modify report15 so that branches from contributors with highscores
       get moved higher up the list
       (http://twistedmatrix.com/highscores).


 3. Encourage self review -- It's frustrating when you come to review
    a patch and you have to point out obvious things. (merge
    conflicts, no tests, spelling mistakes, missing docstrings,
    missing documentation)

    1. Ask contributors to do a self review before submitting their
       patch or branch for peer review.

    2. Make it easier for contributors to run twistedchecker,
       pydoctor, pyflakes, lore locally before submitting code for
       review.

    3. Since buildbot is checking out code from Github now,
       perhaps there could be an interface for contributors to
       request it to build their own Github branch?

    4. Automatically detect merge conflicts in branches and patches
       awaiting review and notify the author.
       * This would prevent the frustrating situation of having waited
         for a month for a review only to have it pushed back to the
         bottom of the queue with a request to merge forward.


 4. Publicise upcoming features /  High priority tickets and branches

    1. For example, Twisted Web Sockets which people keep asking about
       on IRC.

    2. It's not obvious that there is a Web Sockets server branch
       which is almost ready to be
       merged. https://twistedmatrix.com/trac/ticket/4173

    3. It's been reviewed over ten times and is now back with therve
       who may or may not have time to address the latest code review
       comments.

    4. Maybe it would be nice to highlight tickets like this on the
       twistedmatrix.com front page. That might encourage new people
       to help push them through to completion.


> Semi-related: I made a tiny optimization to jQuery a couple of months ago
> as a completely unknown first-time contributor. The time from doing the git
> clone to having the pull request merged into jQuery master was about an
> hour, which included signing their contributor agreement.

You mean this one?
 * https://github.com/jquery/jquery/pull/1321

The turn-around time can be just as quick in Twisted. Here are a few
recent small changes that were merged within an hour or two:
 * https://twistedmatrix.com/trac/ticket/6674
 * https://twistedmatrix.com/trac/ticket/6525
 * https://twistedmatrix.com/trac/ticket/6403


One final thing. I hate to hear people beating up Trac. That article
follows the trend, stating that Github "replaced the clunky Trac
system of submitting static patches to projects". Well that's a gross
simplification. I for one am very fond of Trac. I find its UI
intuitive -- much more intuitive than Github, and from what I've seen
of the code it's quit well designed too. It's a flagship Python
application and we should be supporting it. It's just a shame it
wasn't built on top of Twisted.

Sorry for the long email.

-RichardW.




More information about the Twisted-Python mailing list