Changes between Version 3 and Version 8 of Ticket #29500


Ignore:
Timestamp:
Sep 6, 2020, 4:53:20 AM (2 years ago)
Author:
mkoeppe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #29500

    • Property Cc gh-tobiasdiez embray added
    • Property Summary changed from Install all Python packages via pip wheel to Install all Python packages via pip wheel, create PEP 503 simple repository for wheels
  • Ticket #29500 – Description

    v3 v8  
    1 Some of our Python packages are still installed by calling `setup.py` directly. This should be fixed.
     1Our current version of pip already tries to install packages via `bdist_wheel`.
    22
    3 pip tries to install packages via `bdist_wheel`. We should build the wheel explicitly using `pipand then install the wheel -- replacing (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.
     3In this ticket, we break the build process into these steps:
    44
     5 1. In `spkg-build`, build the wheel explicitly using `pip wheel` (or `setup.py bdist_wheel`); store the wheel in `SAGE_ROOT/repo`.
     6
     7 2. In `spkg-install`, install the wheel.
     8
     9We 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).
     10
     11Optionally, the wheels in `SAGE_ROOT/repo` will persist after the completed build.  Then we can create a PEP 503 compliant Simple Repository index in `SAGE_ROOT/repo`. 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`.
     12
     13-------
     14
     15References:
     16
     17 - https://github.com/pytorch/pytorch/issues/25639 "Implement pep 503 Simple Repository API for deployment"
     18
     19 - https://pypi.org/project/piprepo/ - create PEP 503 package repo
     20
     21 - https://stackoverflow.com/questions/45744937/how-do-install-packages-from-a-local-python-package-index
     22
     23 - https://pipenv-fork.readthedocs.io/en/latest/advanced.html#specifying-package-indexes
     24