Changes between Version 14 and Version 15 of Ticket #29500
- Timestamp:
- Sep 8, 2020, 2:31:49 AM (2 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #29500 – Description
v14 v15 1 1 Our current version of pip already tries to install packages via `bdist_wheel`. 2 2 3 In this ticket, we break the build process into these steps :3 In this ticket, we break the build process into these steps by modifying `sdh_pip_install`: 4 4 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`. 6 6 7 2. In `spkg-install`,install the wheel.7 2. Then install the wheel. 8 8 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).9 The 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. 10 10 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`. 11 Users 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 13 Optionally, 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 15 In 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). 12 16 13 17 -------