Open mkoeppe opened 4 years ago
Description changed:
---
+++
@@ -1,6 +1,6 @@
(From https://groups.google.com/d/msg/sage-devel/M9QTWtln6zU/UHwkrmTKBQAJ)
-Modularize sagelib into separate distutils packages, so that these can be built and run with a much smaller set of libraries. The packages can be made available individually on !PyPI. The goal would be to do this **without changing the overall structure of the source tree**.
+Modularize sagelib into separate distutils packages, so that these can be built and run with a much smaller set of libraries. The packages can be made available individually on PyPI. The goal would be to do this **without changing the overall structure of the source tree**.
1. In particular, create a package `sage_objects` that makes Sage objects, the element/parent framework, categories, the coercion system and the related metaclasses available. This package would, for example, not provide or know about integers, polynomials, or matrices (thus avoiding all the dependencies on the various libraries implementing these). Ideally it would only have a build dependency on Cython and no runtime dependencies.
Description changed:
---
+++
@@ -6,7 +6,7 @@
(Doctesting `sage_objects` would still need more of Sage, but some it could also be done by mocking instead of with the real classes.)
- a) These facilities could see a wider use in the mathematical Python community, and in this way we could hope to benefit from a larger developer base. For example, we would hope that `sage_objects` could be ported for use with PyPy instead of !CPython.
+ a) These facilities could see a wider use in the mathematical Python community, and in this way we could hope to benefit from a larger developer base. For example, we would hope that `sage_objects` could be ported for use with PyPy instead of CPython.
b) Building and deploying a user package would be easier if it could depend on a small package such as `sage_objects` only instead of the whole multigigabyteness of Sage.
Description changed:
---
+++
@@ -17,7 +17,7 @@
**Not** within the scope of this ticket:
-- We will not change the overall structure of the source tree (`SAGE_ROOT/src/sage`). We will achieve this by using the mechanism of native namespace packages introduced in Python 3.3 (see https://github.com/sagemath/sage-prod/issues/28925).
+- We will not change the overall structure of the source tree (`SAGE_ROOT/src/sage`). We will achieve this by using the mechanism of native namespace packages introduced in Python 3.3 (PEP 420, see https://github.com/sagemath/sage-prod/issues/28925).
- It is not a prerequisite to fight against all circular imports. In particular, a parent class and its corresponding element class would certainly not be separated into separate distutils packages.
Description changed:
---
+++
@@ -45,6 +45,7 @@
- #29411: make sagelib a script package
- #29702: Move all code from `src/setup.py` to `sage_setup`
+- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
- #21516: Fix sagelib sdist (src/setup.py sdist)
- #29701: Meta-ticket: Replace use of `OptionalExtension` by namespace packages
Description changed:
---
+++
@@ -45,6 +45,7 @@
- #29411: make sagelib a script package
- #29702: Move all code from `src/setup.py` to `sage_setup`
+- #29706: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
- #21516: Fix sagelib sdist (src/setup.py sdist)
- #29701: Meta-ticket: Replace use of `OptionalExtension` by namespace packages
Description changed:
---
+++
@@ -52,3 +52,4 @@
**Related:**
- #21508 Meta-ticket: Clean up `src/setup.py` to bring it to standard distutils behavior
+- https://wiki.sagemath.org/CodeSharingWorkflow
Changed keywords from none to sd109
Last 10 new commits:
47cb578 | is_package_or_namespace_package_dir: Recognize namespace packages by file 'namespace' |
381a507 | src/module_list.py: Remove explicit list of sage.numerical.backends extensions |
4c51133 | sage_setup/command/sage_install.py: WIP: Disable cleaning |
c0a2ed7 | src/module_list.py: Remove explicit listing of sage.graphs.graph_decompositions extensions |
acaa409 | Merge branch 't/28925/modify_find_python_sources__clean_stale_files_to_support_modularization_of_sagelib_by_native_namespace_packages__pep_420_' into HEAD |
6909e23 | build/pkgs/coxeter3/distros/fedora.txt: New |
2b060ae | src/module_list.py: Move OptionalExtension options for sage.libs.coxeter3.coxeter to distutils directive |
4f0d07d | src/sage/libs/coxeter3/decl.pxd: Add coxeter/ prefix to all header includes; src/module_list.py: remove include_dirs option |
1497f3f | build/pkgs/coxeter3/spkg-configure.m4: New |
06a5911 | Merge branch 't/29721/spkg_configure_m4_for_coxeter3' into HEAD |
Description changed:
---
+++
@@ -45,10 +45,10 @@
- #29411: make sagelib a script package
- #29702: Move all code from `src/setup.py` to `sage_setup`
-- #29706: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
+- #29706, #29720, #29721, #29785, #29786: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
- #21516: Fix sagelib sdist (src/setup.py sdist)
-- #29701: Meta-ticket: Replace use of `OptionalExtension` by namespace packages
+- #29701 (#28925): Meta-ticket: Replace use of `OptionalExtension` by namespace packages
**Related:**
- #21508 Meta-ticket: Clean up `src/setup.py` to bring it to standard distutils behavior
Description changed:
---
+++
@@ -45,7 +45,7 @@
- #29411: make sagelib a script package
- #29702: Move all code from `src/setup.py` to `sage_setup`
-- #29706, #29720, #29721, #29785, #29786: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
+- #29706, #29720, #29721, #29785, #29786, #29790: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
- #21516: Fix sagelib sdist (src/setup.py sdist)
- #29701 (#28925): Meta-ticket: Replace use of `OptionalExtension` by namespace packages
Branch pushed to git repo; I updated commit sha1. New commits:
55bd7ba | src/module_list.py: Move options for Extensions in sage.graphs to distutils directives |
4365e5d | Merge branch 't/29790/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_5__sage_graphs_' into t/29705/META-modularize-sagelib |
Branch pushed to git repo; I updated commit sha1. New commits:
7d94648 | src/module_list.py: Move options for Extensions in sage.libs to distutils directives |
Description changed:
---
+++
@@ -45,7 +45,7 @@
- #29411: make sagelib a script package
- #29702: Move all code from `src/setup.py` to `sage_setup`
-- #29706, #29720, #29721, #29785, #29786, #29790: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
+- #29706, #29720, #29721, #29785, #29786, #29790, #29791: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
- #21516: Fix sagelib sdist (src/setup.py sdist)
- #29701 (#28925): Meta-ticket: Replace use of `OptionalExtension` by namespace packages
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
9dc7022 | Merge branch 't/29706/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files' into t/29791/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_6__last_ |
f78b06d | src/module_list.py: Move options for Extensions in sage.libs to distutils directives |
1b0e29d | src/module_list.py: Move options for Extensions in sage.matrix to distutils directives |
6421e2c | src/module_list.py: Move remaining options for Extensions in sage.libs, sage.rings to distutils directives |
b3d3d2f | Merge branch 't/29791/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_6__last_' into t/29705/META-modularize-sagelib |
Branch pushed to git repo; I updated commit sha1. New commits:
2821934 | Fix sage_setup directives: Use distribution, not package |
9052db4 | Merge branch 't/29720/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_2___optionalextensions_' into t/29705/META-modularize-sagelib |
ff710ee | src/sage_setup/optional_extension.py (is_package_installed_and_updated): Factor out from OptionalExtension |
891d12a | src/setup.py: Remove use of module_list.py; filter by distributions |
Description changed:
---
+++
@@ -11,6 +11,11 @@
b) Building and deploying a user package would be easier if it could depend on a small package such as `sage_objects` only instead of the whole multigigabyteness of Sage.
2. Remove the mechanism of `OptionalExtension`s from `sagelib`.
+
+ Currently, a user would install, for example, the optional package `tdlib` and then rebuild `sagelib` so that the `OptionalExtension` `sage.graphs.graph_decompositions.tdlib` is built and installed.
+
+ With this ticket, the user would instead install a new optional package `sage-tdlib` (which has `tdlib` as a dependency); this installs the `Extension` `sage.graphs.graph_decompositions.tdlib` (as a namespace package).
+
This is #29701 Meta-ticket: Replace use of `OptionalExtension` by namespace packages
@@ -46,9 +51,9 @@
- #29411: make sagelib a script package
- #29702: Move all code from `src/setup.py` to `sage_setup`
- #29706, #29720, #29721, #29785, #29786, #29790, #29791: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
+- #29701 (#28925): Replace use of `module_list` and `OptionalExtension` by extending `sage_setup.find_python_sources`
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
- #21516: Fix sagelib sdist (src/setup.py sdist)
-- #29701 (#28925): Meta-ticket: Replace use of `OptionalExtension` by namespace packages
**Related:**
- #21508 Meta-ticket: Clean up `src/setup.py` to bring it to standard distutils behavior
Description changed:
---
+++
@@ -58,3 +58,10 @@
**Related:**
- #21508 Meta-ticket: Clean up `src/setup.py` to bring it to standard distutils behavior
- https://wiki.sagemath.org/CodeSharingWorkflow
+
+
+
+The branch on this meta-ticket is not intended for merging.
+It is an integration branch to facilitate testing. See https://github.com/mkoeppe/sage/pull/35 for automated tests
+
+
Description changed:
---
+++
@@ -15,9 +15,6 @@
Currently, a user would install, for example, the optional package `tdlib` and then rebuild `sagelib` so that the `OptionalExtension` `sage.graphs.graph_decompositions.tdlib` is built and installed.
With this ticket, the user would instead install a new optional package `sage-tdlib` (which has `tdlib` as a dependency); this installs the `Extension` `sage.graphs.graph_decompositions.tdlib` (as a namespace package).
-
-
- This is #29701 Meta-ticket: Replace use of `OptionalExtension` by namespace packages
**Not** within the scope of this ticket:
Description changed:
---
+++
@@ -48,8 +48,9 @@
- #29411: make sagelib a script package
- #29702: Move all code from `src/setup.py` to `sage_setup`
- #29706, #29720, #29721, #29785, #29786, #29790, #29791: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
-- #29701 (#28925): Replace use of `module_list` and `OptionalExtension` by extending `sage_setup.find_python_sources`
+- #29701 (depends on all of the above): Replace use of `module_list` and `OptionalExtension` by extending `sage_setup.find_python_sources`
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
+- #28925 Modify find_python_sources, clean_stale_files to support modularization of sagelib by native namespace packages (PEP 420)
- #21516: Fix sagelib sdist (src/setup.py sdist)
**Related:**
Branch pushed to git repo; I updated commit sha1. New commits:
0295c8f | src/module_list.py: Move options for Extensions in sage.graphs.graph_decompositions to distutils directives |
b582789 | src/sage_setup/find.py: Filter by directive 'sage_setup: distribution = PKG', find Cython modules |
63c64d5 | Merge branches 't/29720/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_2___optionalextensions_', 't/29721/spkg_configure_m4_for_coxeter3', 't/29785/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_3__get_rid_of_uname_specific_', 't/29786/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_4__sage_rings_', 't/29790/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_5__sage_graphs_' and 't/29791/move_extension_options_from_src_module_list_py_to__distutils___directives_in_the_individual_files__part_6__last_' into t/29701/replace_use_of_module_list_optionalextension |
ae70c81 | src/sage_setup/optional_extension.py (is_package_installed_and_updated): Factor out from OptionalExtension |
ec7e9c5 | src/setup.py: Remove use of module_list.py; filter by distributions |
bd26ddf | Merge branch 't/29701/replace_use_of_module_list_optionalextension' into t/29705/META-modularize-sagelib |
Description changed:
---
+++
@@ -51,6 +51,7 @@
- #29701 (depends on all of the above): Replace use of `module_list` and `OptionalExtension` by extending `sage_setup.find_python_sources`
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
- #28925 Modify find_python_sources, clean_stale_files to support modularization of sagelib by native namespace packages (PEP 420)
+- Install native namespace packages. Do not use eggs (does not seem to be compatible with native namespace packages). Either install `sagelib` and, e.g., `sage_tdlib` using pip -- this writes into one shared directory `site-packages/sage/`; or use our `sage_install` command, which installs in the same format.
- #21516: Fix sagelib sdist (src/setup.py sdist)
**Related:**
Branch pushed to git repo; I updated commit sha1. New commits:
38b6bcf | Merge tag '9.2.beta0' into t/29411/make_sagelib_a_script_package |
f9a30f6 | build/pkgs/sagelib/spkg-install: Fix up error exits |
00a1d57 | Merge branch 't/29411/make_sagelib_a_script_package' into t/29702/move_all_code_from_src_setup_py__src_fpickle_setup_py_to_sage_setup |
25a2340 | Merge branch 't/29702/move_all_code_from_src_setup_py__src_fpickle_setup_py_to_sage_setup' into t/29701/replace_use_of_module_list_optionalextension |
d7bd69e | Merge branch 't/29701/replace_use_of_module_list_optionalextension' into t/29705/META-modularize-sagelib |
2d866a3 | src/sage/graphs/graph_decompositions/tdlib.pyx: Fixup |
14f488f | Merge branch 't/29701/replace_use_of_module_list_optionalextension' into t/29705/META-modularize-sagelib |
0d9f653 | WIP: Add sage_tdlib package |
26b5575 | Use sage_install |
Description changed:
---
+++
@@ -52,6 +52,7 @@
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
- #28925 Modify find_python_sources, clean_stale_files to support modularization of sagelib by native namespace packages (PEP 420)
- Install native namespace packages. Do not use eggs (does not seem to be compatible with native namespace packages). Either install `sagelib` and, e.g., `sage_tdlib` using pip -- this writes into one shared directory `site-packages/sage/`; or use our `sage_install` command, which installs in the same format.
+- Move `build/pkgs/sage_conf/src/sage_conf.py[.in]` into `src/`, mark it (and also `src/bin/sage-env-config[.in]`) `# sage_setup: distribution = sage_conf`.
- #21516: Fix sagelib sdist (src/setup.py sdist)
**Related:**
Description changed:
---
+++
@@ -50,7 +50,9 @@
- #29706, #29720, #29721, #29785, #29786, #29790, #29791: Move `Extension` options from `src/module_list.py` to `distutils:` directives in the individual files
- #29701 (depends on all of the above): Replace use of `module_list` and `OptionalExtension` by extending `sage_setup.find_python_sources`
- #28197: upgrade to ipython 7 (old ipython completer crashes on namespace packages)
-- #28925 Modify find_python_sources, clean_stale_files to support modularization of sagelib by native namespace packages (PEP 420)
+- #28925 Modify `find_python_sources`, `clean_stale_files` to support modularization of `sagelib` by native namespace packages (PEP 420)
+- #29803: Upgrade `setuptools`, `setuptools_scm`, `pip` (2020-06), add package `wheel`; remove `zope_interface`
+- #13190: make `sagelib` use `setuptools` instead of `distutils`
- Install native namespace packages. Do not use eggs (does not seem to be compatible with native namespace packages). Either install `sagelib` and, e.g., `sage_tdlib` using pip -- this writes into one shared directory `site-packages/sage/`; or use our `sage_install` command, which installs in the same format.
- Move `build/pkgs/sage_conf/src/sage_conf.py[.in]` into `src/`, mark it (and also `src/bin/sage-env-config[.in]`) `# sage_setup: distribution = sage_conf`.
- #21516: Fix sagelib sdist (src/setup.py sdist)
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
29327d3 | build/pkgs/entrypoints: Do not provide setup.py, not needed for entrypoints 0.3 |
bcc79a5 | build/pkgs/entrypoints/spkg-install.in: Remove pyproject.toml so that setup.py is used |
361b98b | build/pkgs/terminado/spkg-install.in: Remove pyproject.toml so that setup.py is used |
5040d7e | build/pkgs/testpath/spkg-install.in: Remove pyproject.toml so that setup.py is used |
371ede6 | build/pkgs/zope_interface: Change to a dummy script package |
b7c63df | Merge branch 't/29803/upgrade_setuptools__pip__2020_06_' into t/29705/META-modularize-sagelib |
5f33436 | src/setup.py: from setuptools import setup |
93bbbfe | Add src/setup.cfg |
a7de6c0 | Merge branch 't/13190/make_sagelib_use_setuptools_instead_of_distutils' into t/29705/META-modularize-sagelib |
7dd469f | WIP: Add sage_tdlib package, use symlinks for sagelib package |
Description changed:
---
+++
@@ -53,6 +53,7 @@
- #28925 Modify `find_python_sources`, `clean_stale_files` to support modularization of `sagelib` by native namespace packages (PEP 420)
- #29803: Upgrade `setuptools`, `setuptools_scm`, `pip` (2020-06), add package `wheel`; remove `zope_interface`
- #13190: make `sagelib` use `setuptools` instead of `distutils`
+- #29845: PEP 517 `buildapi` for `sage_setup`
- Install native namespace packages. Do not use eggs (does not seem to be compatible with native namespace packages). Either install `sagelib` and, e.g., `sage_tdlib` using pip -- this writes into one shared directory `site-packages/sage/`; or use our `sage_install` command, which installs in the same format.
- Move `build/pkgs/sage_conf/src/sage_conf.py[.in]` into `src/`, mark it (and also `src/bin/sage-env-config[.in]`) `# sage_setup: distribution = sage_conf`.
- #21516: Fix sagelib sdist (src/setup.py sdist)
Branch pushed to git repo; I updated commit sha1. New commits:
24e9b30 | build/pkgs/sage_tdlib/src/MANIFEST.in: New |
Branch pushed to git repo; I updated commit sha1. New commits:
9b59435 | fixup symlinks |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
c3593b2 | build/pkgs/sage_tdlib/src/sage_setup: Remove, we use the installed one |
Description changed:
---
+++
@@ -24,6 +24,8 @@
- It is not a prerequisite to fight against all circular imports. In particular, a parent class and its corresponding element class would certainly not be separated into separate distutils packages.
**Constraints and challenges:**
+
+- Inconsistent handling of symlinks by `pip`/`setuptools`. We cannot simply create a distribution of a subset of the files in `src` by creating a flock of symlinks (see #29850)
- The category framework can not really be separated from the `Parent`/`Element`/`CategoryObject` (e.g. coercion is involved in comparisons and binary operations).
Description changed:
---
+++
@@ -25,7 +25,7 @@
**Constraints and challenges:**
-- Inconsistent handling of symlinks by `pip`/`setuptools`. We cannot simply create a distribution of a subset of the files in `src` by creating a flock of symlinks (see #29850)
+- Inconsistent handling of symlinks by `pip`/`setuptools`. We cannot simply create a distribution of a subset of the files in `src` by creating a flock of symlinks (see #29850) and expect everything to work; notably, pip fails because of longstanding issues with installs from local directories (see discussion in #29854).
- The category framework can not really be separated from the `Parent`/`Element`/`CategoryObject` (e.g. coercion is involved in comparisons and binary operations).
Description changed:
---
+++
@@ -26,6 +26,8 @@
**Constraints and challenges:**
- Inconsistent handling of symlinks by `pip`/`setuptools`. We cannot simply create a distribution of a subset of the files in `src` by creating a flock of symlinks (see #29850) and expect everything to work; notably, pip fails because of longstanding issues with installs from local directories (see discussion in #29854).
+
+ Solution: Do not use pip for installations from local source directories. Use `setup.py install` (distutils) directly; or use `setup.py sdist`, followed by `pip install` of the sdist; or use a custom PEP 517 backend (#29845) for making an sdist, followed by `pip install` of the sdist.
- The category framework can not really be separated from the `Parent`/`Element`/`CategoryObject` (e.g. coercion is involved in comparisons and binary operations).
We modularize sagelib into separate distributions (pip-installable packages), so that these can be built and run with a much smaller set of dependencies. The packages are made available individually on PyPI in source and wheel form. The modularization is done without changing the overall structure of the source tree by means of PEP 420 implicit namespace packages.
Mega-PR #35095 (not for merging; changes are being cherry-picked from here for integration in Sage) adds the new distributions. Instead of defining a distribution package for every possible community or subfield of mathematics that Sage supports, the modularization project introduces three types of distribution packages:
Distributions named after a basic mathematical structure: The packages may also cover a wide range of generalizations/applications of the structure after which they are named. Users who work in a specialized research area will, of course, recognize what structures they need. The down-to-earth naming also creates discoverability by a broader audience. Not many more distribution packages than these 7 are needed:
Distributions named after a technical functionality:
Older posts and presentations:
Initial steps: (2020)
In particular, create a package sagemath-objects that makes Sage objects, the element/parent framework, categories, the coercion system and the related metaclasses available. This package would, for example, not provide or know about integers, polynomials, or matrices (thus avoiding all the dependencies on the various libraries implementing these). Ideally it would only have a build dependency on Cython and no runtime dependencies.
(Doctesting sagemath-objects would still need more of Sage, but some it could also be done by mocking instead of with the real classes.)
a) These facilities could see a wider use in the mathematical Python community, and in this way we could hope to benefit from a larger developer base. For example, we would hope that sagemath-objects could be ported for use with PyPy instead of CPython.
b) Building and deploying a user package would be easier if it could depend on a small package such as sagemath-objects only instead of the whole multigigabyteness of Sage.
This has been completed in Sage 9.6 (#29865).
Remove the mechanism of
OptionalExtension
s fromsagelib
.Currently, a user would install, for example, the optional package
tdlib
and then rebuildsagelib
so that theOptionalExtension
sage.graphs.graph_decompositions.tdlib
is built and installed.With this ticket, the user would instead install a new optional package sagemath-tdlib (which has
tdlib
as a dependency); this installs theExtension
sage.graphs.graph_decompositions.tdlib
(as a namespace package).This has been completed in Sage 9.2 (#29701).
Not within the scope of this ticket:
We will not change the overall structure of the source tree (
SAGE_ROOT/src/sage
). We will achieve this by using the mechanism of native namespace packages introduced in Python 3.3 (PEP 420, see https://github.com/sagemath/sage-prod/issues/28925).It is not a prerequisite to fight against all circular imports. In particular, a parent class and its corresponding element class would certainly not be separated into separate distribution packages.
Initially noted constraints and challenges: (2020)
Inconsistent handling of symlinks by
pip
/setuptools
. We cannot simply create a distribution of a subset of the files insrc
by creating a flock of symlinks (see #29850) and expect everything to work; notably, pip fails because of longstanding issues with installs from local directories (see discussion in #29854).Solution (implemented in Sage 9.2, #29500): Do not use pip for installations from local source directories. Use
setup.py bdist_wheel
, followed bypip install
of the wheel. pip 21.1's--use-feature=in-tree-build
makes this workaround unnecessary (#32046, Sage 9.5).The category framework can not really be separated from the
Parent
/Element
/CategoryObject
(e.g. coercion is involved in comparisons and binary operations).Solution: Therefore they are in the same distribution sagemath-objects.
The category framework cannot live without the integers (e.g. the output of
.cardinality()
expects an integer).Near term solution: #32432 makes sagemath-categories larger, to include integers and some other basic rings.
Possible future solution: The coercion system already has the notion of a global coercion model - which is determined at runtime, not compile time (
sage.structure.element.get_coercion_model
). When methods insagemath-objects
need to create an integer, they should obtain the appropriate class of integers in the same way. An existing function provides this interface already (but has a static implementation):29875 will make this implementation dynamic.
Imports in
sage.categories
:Such imports can be removed using the techniques described in section Module-level runtime dependencies in the Sage developer's guide.
Tickets for Sage 9.2: (2020)
see also Modularization changes in Sage 9.2 (release tour)
29411
29702
Extension
options fromsrc/module_list.py
todistutils:
directives in the individual files: #29706, #29720, #29721, #29785, #29786, #29790, #2979129701 (depends on all of the above)
28197 (old ipython completer crashes on namespace packages)
29803
21559
29950 (supersedes: #21516 / #13190)
29171
30332
29500
30606
30616
Tickets for Sage 9.3: (2021)
see also Modularization changes in Sage 9.3 (release tour)
30715
30739
30784
30779
30780
30579
30580
29355
30780
30719
29951
29852
22731
30013
30587
31261
29850:
31025
31058
31218
31270
31321
31332
31334
30984
31365
31279
31362
31377
31045
31278
30383
31523
31409
Tickets for Sage 9.4: (2021)
see also Modularization changes in Sage 9.4 (release tour)
30913 (supersedes #30578, #30581)
31384
29013
31593
31338
31562
28890
32045
32036
32057
31577
31333
32073
Tickets for Sage 9.5: (2022)
see also Modularization changes in Sage 9.5 (release tour)
32046
29847. Deploy distribution sage-setup to PyPI.
32371
31031
32386 (supersedes #30534)
32412 ... and
sage.libs.primecount
32373
32501:
src/sage/__init__.py
: #31420 / #32479 / #32489__init__.py
in other packages: #32506 / #32507 / #32508 / #3250932840
32414:
sage.rings.abc
: #32566 / #32610 / #32612 / #32660 / #3275032600
32606
32742
.all
imports: #32534 / #32591 / #32620 / #32734 / #3273332442
32062
29039
32601: <!--- Modularization of sagelib: Break out a separate package sagemath-standard-no-symbolics --->
SR
and symbolic functions: #32411 / #32413 / #32415 / #3241632599
32593
32638
32665
32708
32712
32725
32730
32717
32731
32585
32614
30778
32649
32650
32619
32432: <!--- Modularization of sagelib: Break out a separate package sagemath-polyhedra --->
cypari2
andflint
from some modules: #30022 / #32441 / #32455 / #32775 / #3270132592
32628
32634
sage.geometry.polyhedron
: Mark doctests# optional - sage.rings.number_field
etc.: #32652 / #32653 / #3273232635
32666
32677
32625
32641
32769
32777
32780
32778
31386
32899
sage.libs.primecount
/sage.interfaces.primecount
as a separate Python library: #25009 / #32894:Tickets for Sage 9.6: (2022)
see also Modularization changes in Sage 9.6 (release tour)
29865: These distributions only depend on Cython, pkgconfig, cysignals, gmpy2. Use them as a testsuite for testing the filtered structure of sagelib.
31013
32846
32847
31306
33033
32465
33402
33403
33392 (#33159)
sage.*.all
: #32989 / #32999 / #33000 / #33007 / #33146 / #3319932609
32893
31296
33440
Executable.absolute_filename
: #33465, #33466, #32645, #3346733017
Tickets for Sage 9.7: (2022)
see also Modularization changes in Sage 9.7 (release tour)
SAGE_TMP
: #33797 / #33799 (supersedes #32986)33801
33803
32716
29941
28925, rework sagemath-objects, sagemath-categories as namespace packages
33822
python3
spkg-configure.m4
33795
33821
33295
33029
33800
33011
34187
32406
33817
34221
.all
imports: #34189 / #34190 / #34191 / #34192 / #3442834296
Tickets for Sage 9.8: (2023)
see also Modularization changes in Sage 9.8 (release tour)
33812
32874 (supersedes #32927, #30152)
sage.interfaces
is_...Element
functions: #34770/#34823/#3480416522
34547
34858
Tickets for Sage 10.0 (2023)
34945
.all
imports: #34946 / #34947 / #34948 / #34949 / #34951 / #34952 / #34953 / #34954 / #34955 / #34956 / #34957 / #34201 / #3537235135
35100
34998
32664
32709
35240
35253
35322 / #35366
35237
# optional
: #35136 / #35266 / #35267 / #35314Tickets for Sage 10.1 (2023)
35457
35502
35554
35581
35586
35647
35758
35780
35728
35620
35564
32433
32721
35718
35719
35729
35734
35741
35401
34346
35717
36024
36026
35881
35661
35919
35847
35943
35951
35957
36003
36016
36015
35749
35884
36052
36033
36077
36037
36045
36044
36038
36056
Tickets for Sage 10.2 (2023)
36114
36106
36089
36067
36057
35945
35716
36152
36102
36168
36307
36264
36272
36452
36304
36520
36495
36521
36532
36271
36259
36563
36567
36568
36569
36594
36595
36596
36598
36605
36612
36618
36619
Tickets for Sage 10.3 (2023–2024)
36917
36905
36904
36950
36948
36865
36900
36640
36747
36859
36564
36645
36656
36666
36679
36738
36743
36135
36642
36562
36572
36589
36597
36642
36643
36644
36657
36658
35838/#33575
Tickets for Sage 10.4 (2024)
See also: Modularization changes in Sage 10.4 (release notes)
37083
37720
36676 / #36951 / #36964 / #37796 / #38088 / #38086
37486
37857
38060
37715 / #38071 / #38104 / #38146
38180 / #38096 / #38095
36525
37873 / #38081
37993
37099
38200
Tickets for Sage 10.5 (2024)
See also: Modularization changes in Sage 10.5
# needs
: #3823637482
33802
38391
38392
38394
38395
36380
Tickets for Sage 10.x (2024)
38715, #38672, #38668, #38712
37900
37901
37902
30666
33577
31444
33037
32432
31396
32601
32718
32586
34633
34209
34631
34587
33820
32360
32431
29870
30746
30848
30911
pkgs/sage-conf/sage_conf.py[.in]
intosrc/
, mark it (and alsosrc/bin/sage-env-config[.in]
)# sage_setup: distribution = sage-conf
.29868
31543
30647
33405
30036
29041
32700
30716
33660
32702
29912
31695
32613
32908
30371
Wishlist tickets, loose ends
30527
29877
29875
29874
29845
31602
30748
30896
Related:
21508
30914
30922
30818
31041
31251
33580
34201
CC: @videlec @orlitzky @kiwifb @isuruf @tscrim @kliem @jhpalmieri @tobiasdiez @defeo @thierry-FreeBSD @anneschilling
Component: refactoring
Keywords: sd109, sd110, sd111
Issue created by migration from https://trac.sagemath.org/ticket/29705