Files
xsl-validator/.claude/skills/dep-update-check/SKILL.md
T
2026-05-11 20:15:44 +02:00

4.0 KiB
Raw Blame History

name, description
name description
dep-update-check Prüft manuell, ob Python-Version und Projekt-Dependencies aktualisiert werden können, und testet die Kompatibilität. Verwende diesen Skill AUSSCHLIESSLICH wenn der Benutzer explizit danach fragt z.B. '/dep-update-check', 'Prüfe Dependencies', 'Sind Updates verfügbar?', 'Kann ich Python updaten?'. Niemals automatisch auslösen.

Dependency & Python Update Check

Dieser Skill prüft systematisch, welche Updates für das DocuMentor-Projekt verfügbar sind und ob sie kompatibel miteinander sind. Verwendete Werkzeuge: uv, pyproject.toml.

Ablauf

Führe alle Schritte der Reihe nach aus und erstelle am Ende einen übersichtlichen Report.


Schritt 1: Python-Versionscheck

Lies die Python-Constraint aus pyproject.toml (Feld requires-python).

grep "requires-python" pyproject.toml

Prüfe dann, welche stabilen Python-Versionen im erlaubten Bereich verfügbar sind:

uv python list

Stabile Versionen sind jene ohne Suffix wie b1, rc1, a1 oder +freethreaded. Filtere Beta- und Release-Candidate-Versionen heraus.

Vergleiche:

  • Aktuell verwendete Version: uv run python --version
  • Neueste stabile verfügbare Version innerhalb der Constraints

Falls eine neuere stabile Version verfügbar ist, notiere dies für den Report.


Schritt 2: Veraltete Dependencies ermitteln

uv tree --outdated

Extrahiere daraus die direkten Projektabhängigkeiten (aus pyproject.toml, Abschnitte [project] dependencies und [dependency-groups]) und trenne sie von transitiven Abhängigkeiten.

Erstelle eine strukturierte Liste:

  • Direkte Dependencies: Name, aktuelle Version, neueste Version
  • Transitive Dependencies mit Updates (nur zur Information)

Schritt 3: Kompatibilitätstest

Sichere zunächst die aktuelle Lock-Datei:

cp uv.lock uv.lock.backup

Versuche dann, alle Dependencies auf die neuesten kompatiblen Versionen aufzulösen:

uv lock --upgrade 2>&1

Interpretation:

  • Resolved X packages ohne Fehler → alle Updates sind kompatibel
  • Fehlermeldungen über Versionskonflikte → notiere welche Pakete sich gegenseitig blockieren
  • Prüfe ob uv.lock verändert wurde: diff uv.lock.backup uv.lock | head -50

Stelle die Lock-Datei wieder her (wir wollen die Umgebung nicht tatsächlich ändern):

mv uv.lock.backup uv.lock

Schritt 4: Report erstellen

Gib den Report im folgenden Format aus:


🐍 Python-Version

Version
Aktuell in Verwendung z.B. 3.13.11
Neueste stabile im erlaubten Bereich z.B. 3.13.13
Update empfohlen? Ja / Nein

Falls ein Python-Update verfügbar ist, zeige den Befehl:

uv python install 3.X.Y
# Dann in pyproject.toml requires-python anpassen falls nötig
# Danach: uv sync

📦 Direkte Dependencies

Tabelle mit Spalten: Paket | Aktuell | Verfügbar | Status

Status-Symbole:

  • Aktuell
  • ⬆️ Update verfügbar
  • ⚠️ Update verfügbar, aber Kompatibilitätsproblem

🔗 Transitive Dependencies (Auswahl)

Nur falls es relevante Updates gibt, kurze Liste.


🔄 Kompatibilitäts-Ergebnis

Klares Fazit:

  • Können alle direkten Dependencies gleichzeitig aktualisiert werden? Ja/Nein
  • Falls Nein: Welche Konflikte bestehen und warum?

📋 Empfohlene Aktion

Falls Updates verfügbar und kompatibel:

uv sync --upgrade

Falls nur einzelne Pakete aktualisiert werden sollen:

uv add paketname>=neue.version

Falls Python aktualisiert werden soll (nur wenn innerhalb der Constraints):

uv python install 3.X.Y
uv sync

Hinweise

  • Nie uv sync --upgrade automatisch ausführen nur im Report vorschlagen, der Benutzer entscheidet.
  • Beta/RC-Python-Versionen werden nicht empfohlen (erkennbar an Suffixen wie b1, rc1).
  • pyarrow und andere native Pakete können bei Python-Upgrades besondere Anforderungen haben darauf hinweisen falls relevant.
  • Wenn der uv lock --upgrade-Test fehlschlägt, die Lock-Datei immer aus dem Backup wiederherstellen.