requires-python pins a single patch release (>=3.14.5,<3.14.6), making `make test-py-uv` unrunnable

Offen Anfängerfreundlich
#13,681 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
72/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
docker, python

Rechercherichtung

Beginne mit Zeile 4 von pyproject.toml und vergleiche dessen Python-Bereich mit dem in AGENTS.md und CLAUDE.md dokumentierten make test-py-uv-Pfad. Reproduziere den Fehler mit uv run --with-requirements requirements_test.txt pytest openlibrary/tests/core/ -q und überprüfe anschließend, dass die gewählte Einschränkung den lokalen Testbefehl erlaubt und dabei das Docker-Setup in docker/Dockerfile.olbase beibehält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Problem

pyproject.toml line 4 pins:

requires-python = ">=3.14.5,<3.14.6"

That range admits exactly one release, 3.14.5. On a machine without that precise patch version, uv refuses to build an environment at all:

$ uv run --with-requirements requirements_test.txt pytest openlibrary/tests/core/test_acquisitions_weave.py -q
error: No interpreter found for Python >=3.14.5, <3.14.6 in managed installations or search path
Why it is not just a local setup issue

AGENTS.md / CLAUDE.md names this the preferred way to run the Python tests:

make test-py-uv # Python tests (preferred — runs outside Docker with uv)

So the documented fast path is the one that breaks, and it breaks in a way that is easy to misread as a broken local install rather than as a repository constraint.

The version is not obtainable

On the machine where this was hit (macOS arm64, uv 0.10.10):

  • installed: 3.14.4 and 3.14.6 — both outside the range
  • uv python list --all-versions offers for download: 3.14.0, 3.14.1, 3.14.2, 3.14.3 — all outside the range

3.14.5 is available by neither route, so there is no local action that satisfies the pin. The only remaining way to run the tests is Docker, which is substantially slower and, on a machine already hosting many per-worktree stacks, not always possible.

Reproduction
uv run --with-requirements requirements_test.txt pytest openlibrary/tests/core/ -q

on any host lacking exactly CPython 3.14.5.

Suggested direction

Widening the upper bound (e.g. >=3.14.5,<3.15) would restore the documented path. Deliberately not opening a PR for it: the pin was presumably narrowed on purpose, and whoever chose it should decide whether the reason still holds. Filing so the cost is visible — the docker/Dockerfile.olbase base image is python:3.14.5-slim-trixie, so CI and the containers are unaffected and this only bites local non-Docker development.

Found while setting up a worktree for #13395.

Vorherrschende Sprache
Python
Sterne
6.7k
Forks
2k
Ø Merge
2 T. 12 Std.
Gemergte PRs (30 T.)
121

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus internetarchive/openlibrary

Alle Issues in internetarchive/openlibrary

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.