Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.0 KiB
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 packagesohne Fehler → alle Updates sind kompatibel- Fehlermeldungen über Versionskonflikte → notiere welche Pakete sich gegenseitig blockieren
- Prüfe ob
uv.lockverä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 --upgradeautomatisch ausführen – nur im Report vorschlagen, der Benutzer entscheidet. - Beta/RC-Python-Versionen werden nicht empfohlen (erkennbar an Suffixen wie
b1,rc1). pyarrowund 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.