Unless ./configure --enable-editable is used, the Sage library is installed directly into site-packages using setup.py install, and at the end of sage_setup's custom sage_install_and_clean invokes the installation cleaner, which removes "stale" installed files.
The installation cleaner is problematic when we start to install optional modules in the sage.* namespace via separate distributions such as sagemath-tdlib (#29864).
pkgs/sagemath-standard/setup.py will no longer enable optional Cython modules based on which optional packages are installed
- but the installation cleaner needs to know about these optional Cython modules so it does not remove them right after their installation.
In this ticket we solve this problem by removing the use of the installation cleaner from pkgs/sagemath-standard/setup.py. Instead we invoke it separately at the end of the installation script build/pkgs/sagelib/spkg-install.
(An alternative solution, replacing this installation procedure by a standard installation procedure using wheels, as proposed in #32874, would make sage -b much slower. Also, the idea of just making ./configure --enable-editable the default, #32406, has met skepticism.)
Depends on #32874
CC: @kiwifb @jhpalmieri
Component: build
Work Issues: Do not build_ext
Branch/Commit: u/mkoeppe/pkgs_sagemath_standard_setup_py__move_distributions_logic_to_a_new_package_sagemath_optional @ edd0ea1
Reviewer: Kwankyu Lee
Issue created by migration from https://trac.sagemath.org/ticket/32927
Unless
./configure --enable-editableis used, the Sage library is installed directly intosite-packagesusingsetup.py install, and at the end ofsage_setup's customsage_install_and_cleaninvokes the installation cleaner, which removes "stale" installed files.The installation cleaner is problematic when we start to install optional modules in the
sage.*namespace via separate distributions such as sagemath-tdlib (#29864).pkgs/sagemath-standard/setup.pywill no longer enable optional Cython modules based on which optional packages are installedIn this ticket we solve this problem by removing the use of the installation cleaner from
pkgs/sagemath-standard/setup.py. Instead we invoke it separately at the end of the installation scriptbuild/pkgs/sagelib/spkg-install.(An alternative solution, replacing this installation procedure by a standard installation procedure using wheels, as proposed in #32874, would make
sage -bmuch slower. Also, the idea of just making./configure --enable-editablethe default, #32406, has met skepticism.)Depends on #32874
CC: @kiwifb @jhpalmieri
Component: build
Work Issues: Do not build_ext
Branch/Commit: u/mkoeppe/pkgs_sagemath_standard_setup_py__move_distributions_logic_to_a_new_package_sagemath_optional @
edd0ea1Reviewer: Kwankyu Lee
Issue created by migration from https://trac.sagemath.org/ticket/32927