Changes between Version 9 and Version 10 of Ticket #29701


Ignore:
Timestamp:
06/03/20 22:09:56 (17 months ago)
Author:
mkoeppe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #29701

    • Property Cc gh-kliem added
    • Property Dependencies changed from to #29411, #29702, #29706, #29720, #29721, #29785, #29786, #29790, #29791, #28925
    • Property Summary changed from Meta-ticket: Replace use of OptionalExtension by namespace packages to Replace 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.
     1Using the extended `find_python_sources` from #28925,
     2we remove the use of `module_list`, finding Cython extensions instead in the source tree.  (This is prepared by #29706 and follow-up tickets by moving Extension options to directives in the source files.)
    23
    3 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).
     4We remove `OptionalExtension`s as follows. We map installed packages to "distributions" (for example, `tdlib` -> `sage-tdlib`) and then filter by distribution.
    45
    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` -> `sage-tdlib`), 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 follow-up ticket, part of Meta-ticket #29705, we will make these "distributions" actually separate distutils packages.)