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.