Changes between Version 78 and Version 86 of Ticket #29013
 Timestamp:
 02/26/21 07:15:31 (18 months ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

Ticket #29013

Property
Dependencies
changed from
#30719, #30657, #30622, #30724  #22731, #30731, #30896
to#31362

Property
Milestone
changed from
sage9.3
tosage9.4

Property
Commit
changed from
9b93425dad001fe468e0f1551a9b55c0f8289d62
tod04b08b61ba7e86e75da625a30717b9809606cb7

Property
Work issues
changed from
refactor through #30896
toAC_ARG_WITH

Property
Dependencies
changed from

Ticket #29013 – Description
v78 v86 1 1 #27824 made `$SAGE_LOCAL` a venv if a suitable system python3 is found. 2 2 3 In this ticket, we add support for installing several python versions into the same`SAGE_LOCAL`:4  keeping install records for Python packages in `$SAGE_VENV/var/lib/sage/{installed,scripts,wheels}`, separate from those of nonPython packages (`$SAGE_LOCAL/var/lib/sage/{installed,scripts}`)3 In this ticket, we add support for installing builds of Sage with several python versions, sharing the nonPython packages in `SAGE_LOCAL`: 4  keeping install records for Python packages (recognized by having `installrequires.txt` or `requirements.txt`) in `$SAGE_VENV/var/lib/sage/{installed,scripts,wheels}`, separate from those of nonPython packages (`$SAGE_LOCAL/var/lib/sage/{installed,scripts}`) 5 5  likewise for `$SAGE_LOCAL/var/tmp/sage/build` 6 6  here `$SAGE_VENV` defaults to `$SAGE_LOCAL`, but can be overridden to an arbitrary directory that will be used as the wheelbuilding venv, for example `$SAGE_LOCAL/var/lib/sage/venv/$PYTHON_TAG`. … … 11 11  We also want to support `./configure withsagevenv=no` which would suppress making any venv (#30896) 12 12 13 (Tricky case: When system python3 is not in use and SAGE_VENV != SAGE_LOCAL, then both a real `$SAGE_LOCAL/bin/python3` needs to be built and a venv in SAGE_VENV created. )13 (Tricky case: When system python3 is not in use and SAGE_VENV != SAGE_LOCAL, then both a real `$SAGE_LOCAL/bin/python3` needs to be built and a venv in SAGE_VENV created... or should python3 be installed in `$SAGE_VENV`?) 14 14 15 To implement this, an SPKG needs an indication that it is a Python package. Per #30719, we use existence of `installrequires.txt` or of `requirements.txt`. 15 (Optional: A file `build/pkgs/SPKG/trees` could override the install tree determination  this would allow us to for example install a package such as `jupyter_core` both into something like `SAGE_NOTEBOOK_VENV` and `SAGE_VENV`...) 16 16 17 (Optional: A file `build/pkgs/SPKG/trees` could override it  this would allow us to for example install a package such as `jupyter_core` both into something like `SAGE_NOTEBOOK_VENV` and `SAGE_VENV`...) 18 19 This is mainly for #29039; but also facilitates testing with several Python versions without having to rebuild the Sage distribution. 17 This facilitates testing with several Python versions without having to rebuild the Sage distribution. 20 18 21 19 This depends on: