[Numpy-discussion] Development workflow

Pauli Virtanen pav@iki...
Tue Oct 12 03:46:12 CDT 2010

Mon, 11 Oct 2010 16:47:23 -0700, Matthew Brett wrote:
> Am I right in thinking that for the moment at least, the git workflow is
> basically the same as the svn workflow (everyone commiting to trunk)?

I think there are two issues here:

(A) How to be sensible and presentable

(B) How and when your stuff gets into master


For (A) I'm following the same workflow I had with the git mirror:

1. For *every* change, create a separate topic branch.

2. Work on it until the feature/bugfix is ready.

3. Push it to my own github clone for review/backup purposes if necessary.

4. If necessary, rebase (not merge!) on master when developing
   to keep in stride.

5. When ready, (i) rebase on master, (ii) check that the result is
   sensible, and (iii) push from the topic branch as new master.

In this case, since all recent changes are just unrelated stand-alone 
bugfixes, this produces something that looks very much like SVN log :)

I think of the above, 1-4 are okay in all cases. 5 is then perhaps not so 
absolute, as one could also do a merge if there are several commits. I 
100% endorse Fernando's recommendations:


This really sounds like best-practice to me, and it's even empirically 


Then there's the second question (B) on when core devs should push 
changes. When ready, when reviewed, or only before release?

I would be open even for the "radical" never-push-your-own-changes 

I think we could even try it this way for the 1.5.1 release. If it seems 
that unhandled pull requests start to accumulate (which I don't think 
will happen), we could just reverse the policy.


> I realize that this is not going to cheer anyone up, but is this the
> best workflow now?   Who would decide?

I think it is best to discuss this now, and make sure all core devs have 
similar ideas on what is ideal.

One change at a time (i.e. "give 'em the little finger" approach).

Pauli Virtanen

More information about the NumPy-Discussion mailing list