⇤ ← Revision 1 as of 2012-06-05 08:22:08
4283
Comment:
|
4280
|
Deletions are marked like this. | Additions are marked like this. |
Line 62: | Line 62: |
Having a centralized place where all de development is seen is a good tool for team coordination and code management. It also helps early detection of patch conflicts. |
Having a centralized place where all development is seen is a good tool for team coordination and code management. It also helps early detection of patch conflicts. |
What is this Sage-Combinat queue madness about???
Sage-Combinat is a software project whose mission is: "to improve the open source mathematical system Sage as an extensible toolbox for computer exploration in (algebraic) combinatorics, and foster code sharing between researchers in this area".
In practice it's a community of a dozen regular contributers, 20 occasional ones and, maybe, 30 users. They collaborate together on a collection of experimental patches (i.e. extensions) on top of Sage. Each one describes a relatively atomic modification which may span several files; it may fix a bug, implement a new feature, improve some documentation. The intent is that most of those extensions get integrated into Sage as soon as they are mature enough, with a typical life-cycle ranging from a few days to a couple months. In average 20 extensions are merged in each version of Sage (42 in Sage 5.0!), and more than 200 are under development.
What are our constraints
Vital necessity of supporting several versions of Sage at once
For the convenience of the user, it is usually possible to use the sage-combinat patches with older versions of sage. The intent is only to temporarily support one or two older versions of sage (that is about one month old). Typical use case: a developer urgently needs the latest version of a patch for a software demonstration at a conference, but can't instantly upgrade because of a slow internet connection. There is no guarantee whatsoever; on occasion we do not support this when this causes technical difficulties.
By nature, our calculations are transversal. Thus it would be hard to split Sage-Combinat in smaller chunks by subareas.
Some random questions
- linear order versus DAG (directed acyclic graph) of dependencies: what's easier to maintain ?
Foreseeable future
- More contributers
- Less overlap between patches as development goes from core to peripheral features