OK, let's take a look at sage.coding.
First, let's see if it uses symbolics.
(9.5.beta6) $ git grep -E 'sage[.](symbolic|functions|calculus)' src/sage/coding
src/sage/coding/code_bounds.py: from sage.functions.other import ceil
src/sage/coding/code_bounds.py: sage: codes.bounds.entropy(1/5,4).factor() # optional - sage.symbolic
src/sage/coding/code_bounds.py: sage: codes.bounds.entropy(1, 3) # optional - sage.symbolic
src/sage/coding/grs_code.py:from sage.functions.other import binomial
src/sage/coding/grs_code.py:from sage.symbolic.ring import SR
src/sage/coding/guruswami_sudan/gs_decoder.py:from sage.functions.other import floor
src/sage/coding/guruswami_sudan/utils.py:from sage.functions.other import floor
Apparently it does not in a very substantial way
- The imports of ceil and floor can likely be replaced by integer_floor, integer_ceil from sage.arith.misc.
- Looking at the import of SR by src/sage/coding/grs_code.py, it seems that SR is used for running some symbolic sum, but the doctests do not show symbolic results, so it is likely that this can be replaced.
- Note though that the above textual search for the module names is merely a heuristic. Looking at the source of "entropy", through "log" from sage.misc.functional, a runtime dependency on symbolics comes in. (I have already marked 2 doctests there as # optional - sage.symbolic.)
So if packaged as sagemath-coding, now a domain expert would have to decide whether these dependencies on symbolics are strong enough to declare a runtime dependency ("install_requires") on sagemath-symbolics. This declaration would mean that anyone who installs sagemath-coding ("pip install sagemath-coding") would pull in sagemath-symbolics ... which, at least currently, has heavy compile-time dependencies (ECL/Maxima/FLINT/Singular...).
The alternative is to consider the use of symbolics by sagemath-coding merely as something that provides some extra features ... which will only be working if the user also has installed sagemath-symbolics. (It is possible to declare this as an "extras_require" so that users could go "pip install sagemath-coding[symbolics]".)
Let's say that we go with the second alternative. Then sagemath-coding would be a dependency of sagemath-standard-no-symbolics.
So it would look like this:
sagemath-objects < sagemath-categories < sagemath-coding < sagemath-standard-no-symbolics < sagemath-standard
No, only directed acyclic. For example, another chain is
sagemath-objects < sagemath-categories < sagemath-symbolics < sagemath-standard
As to other distributions that you asked about, yes, sagemath-schemes could be a good distribution, but I am not sure where it would go in this picture because sage.schemes is not homogeneous in terms of its dependencies. For example, sage.schemes.[hyper]elliptic_curves seems to make heavy use of symbolics, whereas sage.schemes.toric is closely connected to sage.geometry. So smaller distributions along the lines of dependencies could make sense as well.
We will most likely not have a distribution sagemath-rings. The reason is that the various ring element implementations pull in a wide spectrum of compiled libraries, so sagemath-rings would be nearly as monolithic as all of Sage. More useful could be smaller distributions, again informed by dependencies, such as sagemath-padics, for example: Most current uses of the NTL library in Sage seem to be for sage.rings.padics.