[SciPy-dev] Scipy workflow (and not tools).

Alex Griffing argriffi@ncsu....
Thu Feb 26 07:55:46 CST 2009

> I'm another long-time lurker who's been thinking about contributing for
> a while but who's been a bit uncertain about where to start. These
> discussions, plus the git branches Pauli has created, are encouraging me
> greatly to roll up my sleeves and delve in.
> Cheers,
> Gareth.

Hi I'm also mostly a lurker.  Here's a story about the time I tried to 
contribute to scipy.

Maybe a year ago I wanted a procedure to attempt to optimize some aspect 
of a multidimensional function.  I found scipy.optimize, but the 
procedure that I tried failed by dividing by zero.  Undaunted, I started 
digging in the scipy source code, finding the error in the broyden2 
function.  The problem was that the algorithm was finding the correct 
solution in fewer than the default number of iterations and was dividing 
by an error term that was zero.

I sent an email to a scipy mailing list saying that this function needed 
some kind of check to see if it was done (error near zero) so that it 
could stop iterating so that it would not divide by zero.  I got a reply 
saying that I needed to write a patch that included the fix to the 
function and a new test that used to fail but that now passes.  So I 
simplified my failing code, I changed the broyden2 function in a way 
that I thought would fix the problem, and I sent the code to the mailing 
list.  I got a reply saying that what they meant by a patch was an svn diff.

So I installed svn and I checked out the scipy code with the idea that I 
could change my local copy, test my changes, and send the diff to the 
mailing list.  After spending some time trying to get this working, I 
stopped for the following reasons:

1) Binary format and path problems were causing me grief.
2) I already had a scipy that worked, and I didn't want to break this.
3) Neil's comment:
If I want to make a change, I have to check out the trunk and then
develop my change *completely without the benefit of version control*. 
I am not allowed to make any intermediate commits while I learn my way 
through the coding process.  I must submit a fully formed patch without 
ever being able to checkpoint my own progress.  This is basically a 
deal-breaker for me.

I think I still use code that works around this bug by using the 
iteration keyword argument to specify a fewer-than-default number of 
iterations so that the error never reaches zero.


More information about the Scipy-dev mailing list