-
-
Notifications
You must be signed in to change notification settings - Fork 654
Description
When ./configure --disable-editable
is in use (the default before #32406), the Sage library is installed using its custom incremental implementation of setup.py install
-- which installs its files in site-packages
and then removes the files that it does not know about (the "cleaner").
Problem 1: The cleaner is incompatible with namespace packages and trying to fix it would lead to complicated and awkward code (#32927). (Besides, setup.py install
is deprecated since https://setuptools.pypa.io/en/latest/history.html#v58-3-0)
Problem 2: Because of the direct installation, we do not have wheels for sagemath-standard available (even if make wheels is used explicitly). Such wheels can be useful for making separate venvs.
In this ticket:
- We create a new option
./configure --enable-wheels
(which can be used both with./configure --enable-editable
and./configure --disable-editable
). - If enabled, installation of sagelib will go through wheel building and installation - like we do with all other Python packages. This enables modularized builds (Refactor sagemath-standard through sagemath-{categories,environment,repl} #34587).
- If disabled, there is no change.
A trivial ./sage -b
is much slower with ./configure --disable-editable --enable-wheels
compared to ./configure --disable-editable
(from 28s as per timings in #32406 comment:21 to 70s).
This ticket brings a number of speed improvements to mitigate this.
CC: @jhpalmieri
Component: build
Author: Matthias Koeppe
Branch: 25898ba
Reviewer: Kwankyu Lee
Issue created by migration from https://trac.sagemath.org/ticket/32874