Skip to content

build/pkgs/sagelib: Invoke install cleaner explicitly, remove it from pkgs/sagemath-standard/setup.py #32927

@mkoeppe

Description

@mkoeppe

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions