sagemath/sage

Use PEP 660 editable wheels for sagelib

mkoeppe opened this issue · 20 comments

The current implementation of --enable-editable uses pip install --editable --no-build-isolation (with SETUPTOOLS_ENABLE_FEATURES=legacy-editable in
build/pkgs/sagelib/spkg-install.in), which goes through legacy setup.py develop.

Here we change to the PEP 660 implementation in setuptools 65.x from #34344. We drop --no-build-isolation too, so that setuptools from the wheel, not the installed setuptools 63.x is used.

Depends on #32874

CC: @kwankyu @saraedum

Component: build

Branch/Commit: u/mkoeppe/use_pep_660_editable_wheels_for_sagelib @ 48576c8

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

Dependencies: #34177

Changed dependencies from #34177 to #34177, #32406

Commit: eb75752

comment:4

seems to work but cythonizes from scratch every time


New commits:

989217fbuild/pkgs/setuptools: Update to 63.1.0
d60fa18build/pkgs/setuptools: Update to 63.2.0
970c9d9Merge #34177
8619b29configure.ac: Make --enable-editable the default
6513b6bREADME.md: Explain configure --disable-editable
ff8710edocker/Dockerfile: Use configure --disable-editable
7221a76src/setup.py: Do not run find_namespace_packages for 'setup.py dist_info'
a911e0fsrc/MANIFEST.in: prune sage_docbuild, doc
6c1e4f9Merge #32406
eb75752build/pkgs/setuptools: Use setuptools @ features/pep660
comment:6

This setuptools branch is about to be merged into main - https://discuss.python.org/t/help-testing-pep-660-support-in-setuptools/16904/61

Work Issues: rebase on #34344

Changed dependencies from #34177, #32406 to #34177, #32406, #34344

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

c06ececbuild/pkgs/setuptools: Update to 64.0.0
a292013build/bin/sage-dist-helpers (sdh_pip_editable_install), build/pkgs/sagelib/spkg-install: Do not use PEP 660 editable wheels

Changed commit from eb75752 to a292013

Changed commit from a292013 to ea8a50e

Branch pushed to git repo; I updated commit sha1. New commits:

ea8a50eRevert "build/bin/sage-dist-helpers (sdh_pip_editable_install), build/pkgs/sagelib/spkg-install: Do not use PEP 660 editable wheels"

Changed work issues from rebase on #34344 to none

Changed dependencies from #34177, #32406, #34344 to #34344

Changed commit from ea8a50e to da94f7e

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

da94f7eRevert "build/bin/sage-dist-helpers (sdh_pip_editable_install), build/pkgs/sagelib/spkg-install: Do not use PEP 660 editable wheels"

Changed dependencies from #34344 to #32874

Description changed:

--- 
+++ 
@@ -1,4 +1,5 @@
 The current implementation of `--enable-editable` uses `pip install --editable --no-build-isolation`, which goes through legacy `setup.py develop`.
 
-Here we change to the experimental PEP 660 implementation in the setuptools feature branch - https://discuss.python.org/t/help-testing-pep-660-support-in-setuptools/16904
+Here we change to the PEP 660 implementation in setuptools 65.x from	#34344. We drop `--no-build-isolation` too, so that setuptools from the wheel, not the installed setuptools 63.x is used.
 
+

Branch pushed to git repo; I updated commit sha1. Last 10 new commits:

a683934configure.ac (--enable-wheels): New
f2d1576configure.ac: Improve docstring
05b44d7build/pkgs/{sage_conf,sage_docbuild,sage_setup,sage_sws2rst}/spkg-install: Handle SAGE_WHEELS
dde4bdbsrc/sage/misc/package_dir.py: Fix docstring markup
ffe67e8is_package_or_sage_namespace_package_dir: Add option distribution_filter
11507a5build/pkgs/sagelib/spkg-install: No need to uninstall before installing - cleaner is back in
974c7fdsrc/MANIFEST.in: Remove redundant entries for MANIFEST.in, pyproject.toml
25898basrc/MANIFEST.in: Exclude generated file farey_symbol.h; add comments
7ad267aMerge #32874
48576c8build/bin/sage-dist-helpers: Use pip wheel --editable

Changed commit from da94f7e to 48576c8