feat: add tested dependency updates with runtime rollback

This commit is contained in:
admin committed 2026-10-16 12:26:00 +02:00
1 parent 34a7a3d039
commit 6438558ea3
10 files changed
+408 -2

No files matched your search

+34 -1
View File
@@ -11,7 +11,7 @@ Auf diesem Rechner sind Python-Umgebung, Absenderdaten und Mustang eingerichtet.
```bash
cd /home/johannes/localdev/einvoice
source .venv/bin/activate
export PATH="$PWD/bin:$PATH"
einvoice --create \
--Customer "Meine Kundenfirma GmbH" \
@@ -85,6 +85,39 @@ eingelesen. Das Präfix JR trennt die neue Serie von früheren `JJJJ-MM`-Nummern
Bei einem technischen Fehler bleibt der reservierte Entwurf samt Log zur Diagnose
erhalten; zum Wiederholen `jr-einvoice generate <Rechnungsordner>` verwenden.
## Abhängigkeiten sicher aktualisieren
```bash
cd /home/johannes/localdev/einvoice
python3 scripts/update.py # neueste kompatible Pakete + Mustang aufbauen und testen
python3 scripts/update.py --apply # testen, aktivieren, nochmals prüfen
python3 scripts/update.py --status # aktiven Stand anzeigen (offline)
python3 scripts/update.py --rollback # vorherigen Stand prüfen und wieder aktivieren (offline)
```
Der Ablauf prüft Python-Paketabhängigkeiten, WeasyPrint/PDF-Erzeugung, beide CLIs
und die vollständige Testsuite einschließlich echter Mustang-Validierung und
ungültiger Gegenbeispiele. Schlägt ein Test vor Aktivierung fehl, bleibt die bisherige
Laufzeit aktiv. Schlägt die Prüfung danach fehl, wird automatisch zurückgeschaltet.
Die Konsole zeigt Schritte, Versionsänderungen und Fehler; vollständige Logs liegen
in `.runtime/logs/`. Netzwerk ist nur für neue Kandidaten nötig. Ohne `--apply`
werden Downloads, Installation und Tests ausgeführt, aber keine Umschaltung.
**Für die verwaltete Laufzeit die Starter aus `bin/` verwenden:**
```bash
export PATH="/home/johannes/localdev/einvoice/bin:$PATH" # bei Bedarf in ~/.zshrc aufnehmen
# alternativ ohne PATH-Einrichtung:
./bin/einvoice --customers
./bin/einvoice --update --apply
```
Diese PATH-Zeile nach einer eventuellen venv-Aktivierung ausführen. Direkte Aufrufe
von `.venv/bin/einvoice` verwenden weiterhin die ursprüngliche Entwicklerumgebung.
Java und native Bibliotheken werden mitgetestet, aber über den Systempaketmanager
aktualisiert; dessen Änderungen kann dieser Updater nicht zurückrollen.
Details und Grenzen: [Update-Betrieb](Documentation.md#updates-und-rollback).
## Daten und Einrichtung
- Absender: **johannes@jr-it-services.de**, lokale Vorlage `private/presets/seller.default.yaml`.