Skip to content

pip, wheel, setuptools: Make wheels available in SAGE_SPKG_WHEELS #31045

@mkoeppe

Description

@mkoeppe

From #30913:

Currently, pip, wheel, and setuptools are installed without making wheels available in SAGE_SPKG_WHEELS.

In this ticket, we make wheels available in SAGE_SPKG_WHEELS. For the case of setuptools, we create a new spkg setuptools_wheel that takes care of it (it depends on wheel).

This is so that after installation, we have a complete set of wheels for all Python packages installed by the Sage distribution. This allows users to create a venv by installing a compatible set of wheels (whose compiled extensions use the configured libraries in SAGE_LOCAL and the system). The most robust way of doing so is by disabling the use of PyPI (pip install --no-index) so that no incompatible wheels can leak in. (This can be tested using #30913.)

As PEP 517 packages (packages with a pyproject.toml, such as pplpy) are built using build isolation (without access to already installed packages), they need access to their build system packages such as wheel and setuptools. When use of PyPI is disabled, this relies on distributions (either source or wheel) to be available otherwise. On this ticket, we make them available as wheels. (We make pip available as a wheel for completeness.)

CC: @videlec @tobiasdiez @jhpalmieri @kliem

Component: build

Author: Matthias Koeppe

Branch/Commit: 1d19802

Reviewer: John Palmieri

Issue created by migration from https://trac.sagemath.org/ticket/31045

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions