Dear Sage developers,

Over the past two years I've been working with several people on bringing 
Matroid Theory to Sage. We wanted this to be research-level code that will 
remain relevant for a long time, so we decided to have the design mature for a 
while before integrating it with Sage. By now we have test-driven the code (it 
produces output consistent with the theory and with computations carried out by 
other software for matroid theory), and it is already in use by people in the 
matroid theory community who install it separately on top of Sage.

The code has now been submitted, see

http://trac.sagemath.org/sage_trac/ticket/7477

There are about 21,000 lines of code, and 500 functions with docstrings. While 
it is doable to check that it plays nice with the rest of Sage and follows all 
coding conventions (I'm  sure it does), a full code review sounds like a hard 
task. So I write you to solicit opinions on how to proceed. Four suggestions 
have been made on the ticket:

1) Treat it as if it were an spkg, and accept with only a cursory review
2) Try to assemble a team of reviewers, each responsible for part of the code
3) Chop it up into separate, smaller pieces and have those submitted as 
separate tickets
4) Get the authors of the package to review each others' code

Options (3) and (4) are not very feasible. The core part of the code has close 
links all over the place, and I think I can't get it much below 9,000 lines of 
code without a lot of extra work. It would also mean rewriting all docstrings 
since we can't use the catalog of matroids for our examples. As for (4), Rudi 
Pendavingh and I are responsible for the bulk of this code, and each of us has 
had a hand in pretty much every part of it. 

That leaves (1) and (2). I hope to get the other users/developers to review 
parts of it, but so far I have not heard of any commitments, and I fear it 
would still take a long time to get it accepted. I'd rather see that time spent 
building a user base and ironing out any bugs uncovered in actual use.

What do you all think?

Regards,

Stefan.

P.S. The impact on the rest of Sage is the following:

* add a directory sage.matroids
* lazy_import two items, a function "Matroid" and a package "matroids", on 
startup
* add an entry "Matroid theory" to the reference manual.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to