On Wednesday, November 17, 2021 at 10:01:47 PM UTC-8 Kwankyu Lee wrote:

> On Thursday, November 18, 2021 at 11:47:37 AM UTC+9 Matthias Koeppe wrote:
>
>> That would be https://trac.sagemath.org/ticket/29705
>
>
> Yes, all the information could be found in the ticket description and the 
> descriptions of the subtickets. But the master plan is buried in the 
> details. I want to see how the whole sage library would be split into what 
> distributions at the end of the modularization effort, and how the 
> distributions depend on another if any.   
>

The design of the distributions is not completely settled. I am hoping that 
Interested developers will join the effort in completing the design.

Hard constraints on the distributions come from compile-time dependencies 
of Cython modules on C/C++ libraries. 
We can define some meaningful small distributions that just consist of a 
single or a few Cython modules. For example, *sagemath-tdlib* 
(https://trac.sagemath.org/ticket/29864) would just package the single 
Cython module that must be linked with tdlib, 
sage.graphs.graph_decompositions.tdlib. In the Sage 9.6 cycle, as soon as 
namespace packages are activated (by dropping __init__.py files), we can 
start to create these distributions. This is quite a mechanical task -- for 
each distribution it's just a new directory in pkgs/ with some metadata 
files.

Let me sketch my strategy to get closer to the design of other 
distributions. https://trac.sagemath.org/ticket/29865 (waiting for review) 
introduces the two lowest levels - *sagemath-objects*, 
*sagemath-categories.* As soon as we have namespace packages working, the 
latter will depend on the former. The current issue with both of these 
distributions is that they are not really separately testable because the 
doctests for these modules depend on a lot of other functionality from 
higher-level parts of the library. In contrast, in 
https://trac.sagemath.org/ticket/32432, we are working on a medium-sized 
distribution *sagemath-polyhedra*, which be the first modularized 
distribution that is useful for end users. It will also be sufficiently 
self-contained for running most doctests (but some doctests that depend on 
other parts of the library are marked # optional). Between *sagemath-categories 
*and *sagemath-polyhedra *(which depends on *sagemath-categories*) there is 
room for designing intermediate distributions. For example, there could be 
a distribution that contains the linear algebra needed by 
*sagemath-polyhedra* (i.e., parts of the sage.modules and sage.matrix).

At the coarsest level, *sagemath-symbolics 
(*https://trac.sagemath.org/ticket/31695) 
and *sagemath-standard-no-symbolics *(https://trac.sagemath.org/ticket/32601) 
are intended to form a partition of all Sage standard library modules that 
are not already in *sagemath-categories *(or its dependencies). Below these 
two distributions, again there is room for designing various intermediate 
distributions. The design will be best if done by (or in ollaboration with) 
developers who are knowledgable about specific parts of the Sage library 
corresponding to the various areas of mathematics.


-- 
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 sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/99a02ddf-5f6a-4973-a15d-7ca927bfd12en%40googlegroups.com.

Reply via email to