On Wed, May 26, 2010 at 11:34 PM, Matthew Brett
Hi,
No, at this point we don't have a release manager, we haven't since 1.2. We have people who do the builds and put them up on sourceforge, but they aren't release managers, they don't decide what is in the release or organise the effort. We haven't had a central figure since Travis got a real job ;) And now David has a real job too. I'm just pointing out that that projects like Linux and IPython have central figures because the originators are still active in the development. Let me put it this way, right now, who would you choose to pull the changes and release the official version?
OK - for nipy - we have - I think - 5 people who can commit into the main repository. Any one of those 5 people can review someone's work, and commit into the main repository. My guess is - with numpy - there would be some number of people with the same permissions - I imagine you among them. But the rule is -
No-one commits into the main repo without someone reviewing and agreeing the work
Any trusted person can review. But the point is:
No development in the main repo. Merges only.
Why?
Let's flip your question the other way round.
You are saying - I want to continue (as for SVN) to develop in the main repo.
No, I am saying we need at least five people who can commit to the main repo. That is the central repository model.
But the main repo is where everyone merges from. That means that
a) It makes it much harder for anyone to review your changes because they are mixed up in a lot of other changes and
b) You force everyone following numpy to adopt your changes
In practice - that means that you make it harder for others by making them follow your line of development when they may not want to - until it's ready.
Review is fine, and it would be nice if more people were reviewing code. At the moment I think it is just Pauli, Stefan, and myself. I guess you'd agree that code review is essential to good code quality
- both for improving code - and for teaching. It encourages new developers because they know their work will be checked. It helps developers learn the coding guidelines and to share good practice. It helps the developers have a broad knowledge of the code base.
With SVN / central repo development - that's really hard - because all the development lines get mixed up as people work in different places.
But a repo that five folks can commit to *is* a central repository, by definition. DVCS and central repository are orthogonal concepts. With git / DVCS - it suddenly becomes absolutely natural.
I think that's why people like Joel Spolsy say stuff like 'This is possibly the biggest advance in software development technology in the ten years I’ve been writing articles here.' : http://www.joelonsoftware.com/items/2010/03/17.html
Please - try it - see - I am absolutely sure you'll love it after a very short time...
Chuck