Changes between Version 9 and Version 10 of Ticket #29701
 Timestamp:
 06/03/20 22:09:56 (2 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

Ticket #29701
 Property Cc ghkliem added

Property
Dependencies
changed from
to
#29411, #29702, #29706, #29720, #29721, #29785, #29786, #29790, #29791, #28925

Property
Summary
changed from
Metaticket: Replace use of OptionalExtension by namespace packages
toReplace use of module_list and OptionalExtension by extending find_python_sources

Ticket #29701 – Description
v9 v10 1 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. 1 Using the extended `find_python_sources` from #28925, 2 we remove the use of `module_list`, finding Cython extensions instead in the source tree. (This is prepared by #29706 and followup tickets by moving Extension options to directives in the source files.) 2 3 3 W ith 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).4 We remove `OptionalExtension`s as follows. We map installed packages to "distributions" (for example, `tdlib` > `sagetdlib`) and then filter by distribution. 4 5 5 Preparation: 6  #28925 Modify `find_python_sources`, `clean_stale_files` to support modularization of sagelib by native namespace packages (PEP 420) 7  Map installed packages/features to virtual `distributions` (for example, `tdlib` > `sagetdlib`), replace `module_list.py` and the `OptionalExtension` mechanism by passing `distributions` to `find_python_sources`. 8  Remove empty `__init__.py` files to convert packages to native namespace packages 9  #29702 Move all code from `src/setup.py` to `sage_setup` 10 11 Tickets for individual `OptionalExtension`s (see `src/module_list.py`): 12  `sage.graphs.mcqd` 13  `sage.graphs.bliss` 14  `sage.graphs.graph_decompositions.tdlib` (used as an example in #28925) 15  `sage.interfaces.primecount` (how come this is not in `sage.libs`, where `primecount.pxd` lives?) 16  `sage.libs.coxeter3.coxeter` 17  `sage.libs.fes` 18  `sage.libs.sirocco` 19  `sage.libs.meataxe`, `sage.matrix.matrix_gfpn_dense` 20 21 6 (In a followup ticket, part of Metaticket #29705, we will make these "distributions" actually separate distutils packages.)