Yeah, I saw that post. I haven't had time yet to really go over it
closely, but it will definitely help in performing a first pass. In
order to make it easier to find later, you wrote:
> there are 9 modules in the base of the dependency graph (that is, avery
> other module imports something from them, or from other modules that imports
> something on them, or so on). They are schemes, ext, docbuild, version, env,
> all_cmdline, all, all_notebook, and notebook
> over them there is a big set of modules that have circular dependencies
> between them. That is, they import something from the previous set, or from
> other module in this set. They are probability, data_structures, misc,
> combinat, server, quadratic_forms, homology, plot, functions, stats, matrix,
> rings, categories, algebras, calculus, arith, finance, symbolic, interfaces,
> numerical, modular, repl, groups, databases, libs, parallel, structure,
> geometry, modules, typeset, graphs, quivers, doctest, sets, gsl, monoids.
> Then there are 16 modules that import something from the previous two lists,
> but not from anything on this level. They are: games, tensor, matroids,
> knots, interacts, crypto, dev, logic, lfunctions, dynamics, sat,
> coding, game_theory, tests, sandpiles, media
> Finally, there is manifolds, that imports from tensor and from level (2).
> As I said, this is just a quick look (for instance, I didn't consider lazy
> imports). But I think it gives an idea of what is already moreless
> independent, and what is pretty much entangled with the rest of the
> components. One would be tempted to say that (2) consists of the "core" of
> the Sage library, whereas (1) are its dependencies and (3) and (4) would be
> "extra" modules that deppend on the core library. But again, this is just a
> first impression after a quick look.
Now, breaking up the existing sage library, which may or *may not* be
a good idea--I don't necessarily presuppose that it is, though I think
it's worth looking into in detail to determine that. But we also have
to discuss what to do better moving forward and there was also some
discussion toward the end of the other thread about how to make it
easier to develop packages that depend on sage but are not subpackages
thereof, and how to better advertise those packages. That's also
worth discussing here. See also my posts about how the Astropy
project manages "affiliated packages".
Thanks,
Erik