Drop libffi-devel from the cibuildwheel Linux before-all step#236
Merged
Conversation
The package was added in PR #75 so cffi could build from source while cibuildwheel installed the wheel test environment. cffi is no longer pulled into that chain (only requirements/codspeed.txt references it, and the CodSpeed job does not use cibuildwheel), so libffi-devel is dead weight that costs an extra package and slightly more yum metadata work per Linux wheel job. Confirmed by walking the deps of requirements/test.txt (cython, covdefaults, pytest, pytest-cov, pytest-xdist) and the build-system requires (expandvars, setuptools, tomli); none pull cffi.
Member
Author
|
Looks like ffi has long been fixed so we can merge this now |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What do these changes do?
Removes the
libffi-develinstall from[tool.cibuildwheel.linux] before-allinpyproject.toml,leaving the step responsible only for installing
ccache.History:
libffi-develwas added in #75 (Dec 2024, "Fix wheel buildswhen cffi needs to be built from source") because
cffiwas beingbuilt from source during the wheel test environment install, and
cffi's build requires libffi headers. Today the wheel test chain(
requirements/test.txt: cython, covdefaults, pytest, pytest-cov,pytest-xdist) and the build-system requires (expandvars, setuptools,
tomli) do not pull
cffi. The only remainingcffireference isrequirements/codspeed.txt, which is installed by the CodSpeedbenchmark job on a regular ubuntu-latest runner where libffi-dev is
already present and which does not use cibuildwheel.
Are there changes in behavior for the user?
No. CI-only change. The published wheels and the test command run by
cibuildwheel are unchanged; the only effect is a slightly faster
before-all(one fewer package installed, fewer yum/apt/apk fetches).Related issue number
Follow-up cleanup spotted while reviewing #233 / #235.
Checklist
effect is observable only by re-running the wheel-build matrix)
CHANGES/folderAgent run details (optional, for reviewers)
History trace:
git show 08091df(PR Fix wheel builds when cffi needs to be built from source #75, "Fix wheel builds when cffineeds to be built from source"; references the same fix in
Implement support for the free-threaded build of CPython 3.13 multidict#1015).
git show 36ec052("Revert building armv7l manylinuxwheels / libcffi-dev is not available in the manylinux armv7
images") -- confirming that the only consumer of
libffi-develwas
cffi.Dep audit (current
master):grep -l cffi requirements/*.txt-> onlyrequirements/codspeed.txt.requirements/test.txt->cython.txt+ covdefaults + pytest +pytest-cov + pytest-xdist. None of these pull
cffitransitively.pyproject.tomlbuild-system requires -> expandvars, setuptools,tomli. None pull
cffi.Local checks:
make doc-spelling: passes for the new fragment. Two pre-existingfailures remain on master that are unrelated to this change
(
subdirectoryinCHANGES/207.contrib.rst:1andpostfixinCHANGES.rst:168).The runtime effect cannot be exercised locally; verification is the
next Linux wheel-build job on this branch.
Drafted with Claude Code (Claude Opus 4.7); reviewed by @bdraco.