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

Aperta Adatta ai principianti
#13,681 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
docker, python

Direzione di ricerca

Inizia dalla riga 4 di pyproject.toml e confronta il relativo intervallo di versioni Python con il percorso make test-py-uv documentato in AGENTS.md e CLAUDE.md. Riproduci il fallimento con uv run --with-requirements requirements_test.txt pytest openlibrary/tests/core/ -q, quindi verifica che il vincolo scelto consenta il comando di test locale preservando al contempo la configurazione Docker in docker/Dockerfile.olbase.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
6.7k
Fork
2k
Merge medio
2g 12h
PR unite (30g)
121

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di internetarchive/openlibrary

Tutte le issue di internetarchive/openlibrary

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.