Document the Debian/Ubuntu opentracing build failure - #789
Merged
Conversation
Installing requirements/test.txt into the system Python on Debian or
Ubuntu fails while building opentracing:
AttributeError: install_layout
opentracing 2.4.0 is the latest release and publishes no wheel, so pip
builds it from the sdist through the legacy setup.py path using whatever
setuptools is already installed. Debian's packaged python3-setuptools
patches its install_lib command to read an install_layout option from
the install command it runs against, and that command -- setuptools'
vendored _distutils -- does not define it.
Nothing in the pin can avoid this: 2.4.0 is the newest release, and the
sdist is all upstream publishes. So document it where contributors meet
it, next to the install commands in the contributing guide, and leave a
pointer in the extras file itself.
Verified on Ubuntu 24.04 with the system Python 3.11: the packaged
setuptools 68.1.2 fails, and a virtualenv (setuptools 79.0.1), an
upgraded setuptools in place (84.0.0), and `pip install --use-pep517`
each build it fine.
The comment added to requirements/extras/opentracing.txt is stripped by
setup.py's own requirements parser, so the `faust[opentracing]` extra
still resolves to the pin alone; tests/unit/test_packaging.py passes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Sejq9tYzzeqWeZAgA3EB6s
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #789 +/- ##
=======================================
Coverage 96.20% 96.20%
=======================================
Files 110 110
Lines 11789 11789
Branches 1281 1281
=======================================
Hits 11342 11342
Misses 350 350
Partials 97 97 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Note: Before submitting this pull request, please review our contributing
guidelines.
Description
Docs only. Following the setup steps in the contributing guide on Debian or Ubuntu fails, and the error names nothing you'd connect to Faust.
pip install -U -r requirements/test.txtinto the system Python dies while buildingopentracing:opentracing2.4.0 is the latest release and publishes no wheel, so pip builds it from the sdist through the legacysetup.pypath, using whatever setuptools is already installed. Debian's packagedpython3-setuptoolspatches itsinstall_libcommand to read aninstall_layoutoption off theinstallcommand it runs against — and that command, setuptools' vendored_distutils, doesn't define it:Nothing in the pin can dodge it — 2.4.0 is the newest release and the sdist is all upstream publishes — so this documents it where contributors actually hit it: a note beside the install commands in the contributing guide, plus a pointer in the extras file itself.
CI doesn't see this because
actions/setup-pythonprovides an upstream setuptools, not the distro-patched one.Verification
On Ubuntu 24.04 with the system Python 3.11, against the four setuptools situations a contributor can be in:
python3-setuptoolsAttributeError: install_layoutpython -m venvpip install -U setuptoolsin placepip install --use-pep517The note recommends the virtualenv and gives the other two as fallbacks.
Also checked that the comment added to
requirements/extras/opentracing.txtis harmless:setup.py's ownstrip_comments()parser drops it, so thefaust[opentracing]extra still resolves to['opentracing>=1.3.0,<=2.4.0'], andtests/unit/test_packaging.pypasses. The reStructuredText parses with the same zero errors as master.No changelog entry — this documents existing behaviour rather than changing any. Happy to add one if you'd rather it were tracked.
Generated by Claude Code