Dev News Daily ENDE

uv 0.12.19 testet schlankere Lockfiles, vermeidet unnötige Neuinstallationen

uv 0.12.19, Astrals Paket- und Projektverwaltung für Python, ist am 24. September erschienen. Das Release ist klein, doch zwei Änderungen betreffen Dinge, die Teams im Alltag bemerken: ständig geänderte Lockfiles und Pakete, die grundlos neu installiert werden.

Die erste ist eine Vorschaufunktion, resolution-inputs. Ist sie aktiviert, lässt uv ungenutzte Auflösungseinstellungen aus uv.lock weg und ignoriert Änderungen daran, wenn es prüft, ob das Lockfile aktuell ist. Vorschaufunktionen sind in uv freiwillig; ohne Aktivierung ändert sich nichts. Eine zweite Vorschau, build-lazy-imports, führt Build-Backend-Hooks unter CPython 3.15 und neuer mit verzögerten Importen aus.

Die zweite ist eine Fehlerkorrektur: uv bewahrt jetzt signierte und kodierte Query-Parameter in den Metadaten direkter URLs, was laut Notizen die Neuinstallation unveränderter Pakete vermeidet. Weitere Korrekturen lassen die Prüfung installierter Pakete 1.0.0 als Erfüllung von ===1 gelten, wie es der Resolver schon tat; bewahren stets falsche python_version-Marker beim Einlesen ihrer serialisierten Form; und verhindern Kollisionen zwischen Bereitschaftsmarkern von Git-Checkouts und .ok-Dateien in Abhängigkeiten. Dazu kommen PyPy 3.11.16 und 3.12.14, GraalPy 3.13.0 in Build 25.4.4 und ein wiederhergestellter öffentlicher Export FlatDistributions für Werkzeuge, die uvs Rust-API nutzen.

uv 0.12.19 testet schlankere Lockfiles, vermeidet unnötige Neuinstallationen
uv 0.12.19 testet schlankere Lockfiles, vermeidet unnötige Neuinstallationen — Dev News Daily

Was das bedeutet

Beide Hauptänderungen zielen auf dasselbe: Wenn sich nichts geändert hat, soll es auch so aussehen. Ein Lockfile, das Einstellungen festhält, die das Ergebnis nicht beeinflusst haben, erzeugt Diffs, Merge-Konflikte und fehlschlagende Aktualitätsprüfungen ohne Bezug zu den Abhängigkeiten. Ein Paket, dessen URL-Metadaten unterwegs umgeschrieben werden, sieht beim nächsten Sync anders aus als es selbst und wird erneut installiert - das kostet Zeit im CI und macht Caches weniger nützlich.

Beides ist unspektakulär und deshalb leicht monatelang zu ertragen. Wer sieht, dass sich uv.lock auf Branches ändert, die keine Abhängigkeiten berührt haben, sollte die Vorschau resolution-inputs zuerst an einem Projekt ausprobieren; wer Pakete aus signierten URLs installiert, etwa aus einem privaten Index hinter einem CDN, und bei jedem Lauf Neuinstallationen sieht, dürfte mit 0.12.19 Ruhe haben.

Primärquelle
astral-sh/uv - release 0.12.19
https://github.com/astral-sh/uv/releases/tag/0.12.19