[Numpy-discussion] NumPy Governance

Ondrej Certik ondrej at certik.cz
Thu Dec 29 01:51:45 EST 2011


On Mon, Dec 5, 2011 at 4:22 AM, Perry Greenfield <perry at stsci.edu> wrote:
> I'm not sure I'm crazy about leaving final decision making for a
> board. A board may be a good way of carefully considering the issues,
> and it could make it's own recommendation (with a sufficient
> majority). But in the end I think one person needs to decide (and that
> decision may go against the board consensus, presumably only rarely).
>
> Why shouldn't that person be you?

I haven't contributed to NumPy directly. But I can offer my experience
with SymPy.

I agree with Perry. Having one person being in charge as the last
call (project leader) works excellent in my experience. For SymPy,
that person has been me,
up until a year ago (when I realized that I am too busy to do a good
job as a project leader), when I passed it to Aaron Meurer.
We always try to reach
consensus, and the project leader's main job is to encourage such discussion.
When consensus cannot be reached, he needs to make the decision (that
happened maybe once or twice in the last 5 years and it is very rare).

There seems to be quite strong "community ownership" in SymPy (that
was Stefan's objection). I think the reason being that in fact we
probably have something like a "board of members", except that
it is informal and it simply consists of people whose opinions
the project leader highly values. And I think that it is very easy
for anybody who gets involved with SymPy development to
become trusted and thus his or her opinion will count.

As such, for NumPy I think by default the project leader is Travis, who
created it. He became busy in the last few years and so he could
appoint a person, who will be the project leader.

The list of possible people seems quite simple, I would choose
somebody who is involved a lot with NumPy in the last 1 year
(let's say):

$ git shortlog -ns --since="1 year ago" | head
  651  Mark Wiebe
  137  Charles Harris
   72  David Cournapeau
   61  Ralf Gommers
   52  rgommers
   29  Pearu Peterson
   17  Pauli Virtanen
   11  Chris Jordan-Squire
   11  Matthew Brett
   10  Christopher L. Farrow

So anybody from the top 5 or 10 people seems ok. This has to be a personal
decision, and I don't know what the actual contribution and involvement (and
personal ability to be a project leader) is of the above people, so that's
why it should be done by Travis (possibly consulting with somebody who
he trusts and who is involved).

For SymPy, here is the list from the "1 year ago" when I passed the
project leadership:

$ git shortlog -ns --since="January 2010" --until "January 2011" | head
  317  Øyvind Jensen
  150  Mateusz Paprocki
   93  Aaron Meurer
   81  Addison Cugini
   79  Brian E. Granger
   64  Ronan Lamy
   61  Matt Curry
   58  Ondřej Čertík
   36  Chris Smith
   34  Christian Muise

It's not exactly accurate, as some of the branches from 2010 were
merged in 2011, but it gives you a picture. The above
list doesn't tell you who the best person should be. I knew that Aaron
would be the best choice, and I consulted it
with several "core developers" to see what the "community" thinks, and
everybody told me, that if I need to pass it
on, Aaron would be the choice.

Since this was the first time for me doing this, I simply stated, that Aaron
is the project leader from now on. And in couple months we clarified
it a little bit, that I am the "owner",
in a sense that I own the domain and some servers and other things and
I am ultimately responsible for the project (and I still have a say in
non-coding related issues, like Google Summer of Code and such). For
anything code related, Aaron has the last word,
and I will not override it. The precise email is here:

https://groups.google.com/d/topic/sympy/i-XD15syvqs/discussion

You can compare it to today's list:

$ git shortlog -ns --since="1 year ago" | head   805    Chris Smith
  583  Mateusz Paprocki
  508  Aaron Meurer
  183  Ronan Lamy
  150  Saptarshi Mandal
  112  Tom Bachmann
  101  Vladimir Perić
   93  Gilbert Gede
   91  Ondřej Čertík
   89  Brian E. Granger


So the activity has gone up after I stopped being the bottleneck, and
after there was again a clear person, who is in charge and has time
for it.


Anyway, I just wanted to offer some experience that I gained with
SymPy with this regard. As I said, I am not a NumPy developer and as
such, this decision should be made by NumPy developers and Travis as
the original project leader.

I could see a familiar pattern here --- Travis has spent enormous time
to develop NumPy and to build a community, and later became busy. This
is exactly what happened to me with SymPy (when I was back in Prague,
I spent months, every evening, many hours with sympy....). In fact,
Travis once said at some lecture, that opensource is addictive. And
not only that, also, if you develop (start) something, it really feels
like it's yours. And then when I didn't have time and I knew I am not
doing good job with SymPy, it was probably the hardest decision I had
to make to pass the leadership on.
Now, from retrospect, I should have done it much earlier and it is now
obvious, that it was the right thing to do. But at that time, it was
not obvious and I was very unsure what is going to happen.

So anyway, good luck with any decision that you make. :)

Ondrej



More information about the NumPy-Discussion mailing list