[SciPy-dev] The future of SciPy and its development infrastructure

Ravi lists_ravi@lavabit....
Thu Feb 26 16:33:43 CST 2009


On Thursday 26 February 2009 10:40:24 jason-sage@creativetrax.com wrote:
> > 2) While I understand the desire to increase the quality of commits to  
> > scipy by putting in a more formal process, like making sure code is  
> > reviewed, tests are present, and documentation is provided, I too,  
> > like Travis, worry that this may inhibit many useful contributions.  
> > Rather than act as a barrier, why not just have some sort of "seal of  
> > approval" for things that have gone through that process.
>
> Lots of projects have -stable and -dev branches.

Please, NO! This does not scale. This is the process used in Boost and makes 
the release process a nightmare. Boost svn commit access is not easily gifted; 
virtually every library in Boost goes through extensive review and its authors 
are generally way-above-average programmers. In spite of all the preceding, 
getting a Boost release out is a superhuman effort:
  - tracking commits between branches is a full-time job
  - the -dev branch becomes "the wild west" very easily (slippery slope)
  - if no feature freeze, bug fixes get done even slower

What you want, in my humble opinion, is what the KDE people call "always 
summer in the trunk". There really is only one scalable way to manage this: a 
DVCS. Instead of using trunk as a playground, use the "trunk" in your clone 
("master" in git). So long as your clone is published somewhere (anywhere on 
the web, for instance), any authorized committer into the main repository can 
pull it. There is *exactly* one more step compared to using svn trunk, viz., 
sending a mail out to the mailing list indicating the change. But then, you 
were going to do that anyway, weren't you?

The best example I can think of is Xorg. See
             http://cgit.freedesktop.org
for a list of everyone's local repositories. (Of course, scipy may choose bzr 
over git, but the point still stands.) Let's say "airlied" just finished 
implementing the feature "drm" for the submodule "radeon r6xx". *His workflow 
is exactly the same as svn*:
  git clone ...                           = svn co / svn up
  # make changes
  git commit -a -m "drm rework finished"  = svn commit
  # send mail to the mailing list
Any interested party in the mailing list reviews the code and pulls it into 
the main repository. Note that "airlied" does no more work with the DVCS than 
with svn; the workflow for "airlied" has not changed other than the command 
substitution above. The above is actually a true story.

Of course, now note that instead of "airlied" (a sanctified committer), it 
could be you and anyone interested (core developer or not) can simply pull 
from you and test it. This lowers the barriers to newbies, in my limited 
experience.

Regards,
Ravi




More information about the Scipy-dev mailing list