On Sunday, 26 September 2021 at 13:32:28 UTC-7 Matthias Koeppe wrote: > > This does not describe our current practice or policy. All public names in > all Python modules are part of the API; when we move anything around, we > use deprecation via lazy_import etc. > > I think deprecation only gets used for things exposed in the "sage global namespace", i.e., sage.all. That certainly used to be the case. Other changes are/used to be fair game. We need to keep sage.all in some form, because it's pretty essential that people can "write sage" (minus preprocessor) by doing a "from sage.all import *". I don't think we'll get an alternative for that [I agree that libraries should not be doing that], because there needs to be an option for people to get their code working without having to track down a dozen import statements.
There's a reason sage has a heavily populated global namespace (and moving code from using it to explicit imports is a very annoying step. "import_statements" helps a lot for it, but figuring out what to run it on has been an iterative "test it and see what breaks" process in my experience. Recent example of "rough" deprecation: from 9.2 to 9.3: complex_number.pxd just disappeared. [not something that "all" would help against, by the way]. As a result, it's not easily possible to write a cython extension that uses it and supports both 9.2 and 9.3. I think these are the kind of things that will limit the modularization of sagelib: it's just too integrated. It's certainly going to be a constellation of packages that have *exact* versions as prerequisites. Version ranges will not be an option. At that point I don't quite see what the benefit is to split it up in separate packages rather than just have one big package. -- 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/cb7bbacb-4d12-4278-a824-56fa1b5d4ba7n%40googlegroups.com.