Repository navigation
Mark the docs dependencies for the Python they need - #503
Merged
Merged
Conversation
`uv run --group tests` cannot resolve this project on Python 3.10 or 3.11, and
fails over a documentation dependency while trying to run the tests:
Because the requested Python version (>=3.10) does not satisfy
Python>=3.12 and sphinx>=9.1.0,<=9.1.1 depends on Python>=3.12, we can
conclude that sphinx>=9.1.0,<=9.1.1 cannot be used.
...
And because tika:docs depends on sphinx>=9.1 and your project requires
tika:docs, we can conclude that your project's requirements are
unsatisfiable.
requires-python is >=3.10 for the library, which is correct -- tika itself runs
there, and the classifiers say so. sphinx 9.1 needs >=3.12, and furo pulls
sphinx. pip never notices because it resolves for the interpreter in front of
it, and CI builds the docs on 3.14; uv resolves every supported version at
once, so the conflict surfaces there and takes the test group down with it.
Marking the three docs dependencies `python_version>='3.12'` states what was
already true and lets the other groups resolve. Verified:
uv run --python 3.10 --group tests -> 28 passed
uv run --python 3.12 --group tests -> resolves
uv run --python 3.14 --group docs -> sphinx 9.2.0
uv run --python 3.10 --group docs -> installs nothing, as declared
The last one is the trade-off: asking for the docs group on 3.10 now gets you
an empty group rather than an error about sphinx. Building the docs needs 3.12
or newer, which is what the markers say and what CI already does.
No uv.lock is committed. This project does not have one, and adding one
changes how contributors work, so it is a separate decision.
This was referenced Nov 9, 2026
Merged
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.
uv run --group testscannot resolve this project on Python 3.10 or 3.11. It fails over a documentation dependency while trying to run the tests:requires-pythonis>=3.10, and that is correct — tika itself runs there and the classifiers say so. But sphinx 9.1 requires>=3.12, and furo pulls sphinx. pip never notices, because it resolves for the one interpreter in front of it and CI builds the docs on 3.14. uv resolves every supported Python at once, so the conflict surfaces there — and takes the unrelatedtestsgroup down with it.Marking the three docs dependencies
python_version>='3.12'states what was already true and lets the other groups resolve.Verified
uv run --python 3.10 --group testsuv run --python 3.12 --group testsuv run --python 3.14 --group docsuv run --python 3.10 --group docsThe trade-off
That last row is the cost: asking for the docs group on 3.10 now gets you an empty group rather than an error naming sphinx. Building the docs needs 3.12 or newer — which is what the markers now say, and what CI already does.
The alternative was raising
requires-pythonto>=3.12, which would drop 3.10 and 3.11 for everyone using the library in order to fix a docs-tooling constraint. That seemed clearly worse.No
uv.lockis committed. This project doesn't have one, and adding one changes how contributors work, so it belongs in its own change.