Changes between Version 14 and Version 15 of Ticket #29500


Ignore:
Timestamp:
Sep 8, 2020, 2:31:49 AM (2 years ago)
Author:
Matthias Köppe
Comment:

Narrowed the scope of the ticket.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #29500 – Description

    v14 v15  
    11Our current version of pip already tries to install packages via `bdist_wheel`.
    22
    3 In this ticket, we break the build process into these steps:
     3In this ticket, we break the build process into these steps by modifying `sdh_pip_install`:
    44
    5  1. In `spkg-build`, build the wheel explicitly using `pip wheel --no-binary :all: --no-build-isolation -w "$SAGE_ROOT/wheelhouse"` (or `setup.py bdist_wheel`), which stores the wheel in `SAGE_ROOT/wheelhouse`.
     5 1. Build the wheel explicitly using `pip wheel --no-binary :all: --no-build-isolation -w "$SAGE_SPKG_WHEELS"` (or `setup.py bdist_wheel`), which stores the wheel in `SAGE_SPKG_WHEELS=$SAGE_LOCAL/var/lib/sage/wheels`.
    66
    7  2. In `spkg-install`, install the wheel.
     7 2. Then install the wheel.
    88
    9 We drop (for Python packages only) the problematic use of the DESTDIR staging mechanism (#29585). The pip lock (if it is at all still necessary after the major pip upgrades in the 9.2 series) will only need to be held during the wheel installation (step 2).
     9The wheels in `$SAGE_SPKG_WHEELS` persist after the completed build. We manage them using the DESTDIR staging mechanism -- there will be exactly 1 wheel for each installed package.
    1010
    11 Optionally, the wheels in `SAGE_ROOT/wheelhouse` will persist after the completed build.  Then we can create a PEP 503 compliant Simple Repository index in `SAGE_ROOT/wheelhouse`. Then users can create virtual environments and install the wheels built by the Sage distribution into them, using standard tools such as `pipenv` `[[source]]` or `pip install --find-links` or `pip install --index-url`.
     11Users can create virtual environments and install the wheels built by the Sage distribution into them, using standard tools such as `pip install --find-links`.
     12
     13Optionally, we can create a PEP 503 compliant Simple Repository index in `$SAGE_SPKG_WHEELS`. Then users can create their virtual environment using tools such as `pipenv` `[[source]]` or `pip install --index-url`.
     14
     15In this ticket, we keep using the DESTDIR staging mechanism also for the installation of the package from the wheel. This can be changed later -- to remove the problems described in #29585 -- by just holding the pip lock (if it is at all still necessary after the major pip upgrades in the 9.2 series) during the wheel installation (step 2).
    1216
    1317-------