Big openWB Update 2026#3341
Conversation
|
Danke für den PR. |
Steht bei dem Punkt "Abwärtskompatibilität":
Aktuell wird in Debian 11 Bullseye Python 3.9 verwendet. |
|
@Xerolux Ein Merge ist jedoch leider aus mehreren Gründen fast komplett unmöglich:
Dass ein Upgrade des Betagten Debian 11 dringend notwendig ist, steht außer Frage. Um diesen sehr komplexen Sprung zu entzerren, sollten einzelne, kleinere Schritte gemacht werden. Schließlich haben wir ein paar Tausend Installationen, die nicht mal eben mit Debian 12/13 versorgt werden können. Wir sind intern bereits dabei, eine Roadmap für die Migration zu entwerfen. Dabei werden sicher auch einige der von Dir umgesetzten Themen/Techniken berücksichtigt. |
|
Der Merge berücksichtigt auch ältere Installationen ( Buster siehe weiter unten kann ich einfügen ) und stellt sicher, dass die Funktionalität weiterhin auf bestehenden Systemen gewährleistet bleibt. Dafür habe ich entsprechende Skripte integriert, die den jeweiligen Fall automatisch erkennen und feststellen, welches System bzw. welche Plattform verwendet wird. Auf älteren Systemen ( Bookworm) wird Python 3.9 durch eine Backport-Version von Python 3.11 ersetzt. Anschließend wird automatisch eine virtuelle Umgebung (venv) erstellt und die aktuellen Requirements installiert. Dadurch ist sichergestellt, dass auf allen Systemen identische Abhängigkeiten verwendet werden und keine Unterschiede hinsichtlich Wartbarkeit oder Verhalten entstehen. Auf Wunsch kann ich zusätzlich auch eine Kompatibilität für Debian Buster integrieren ( dachte das ist nicht mehr oft in Betrieb ). In diesem Fall würden wir Python 3.11 direkt auf dem Raspberry Pi kompilieren und anschließend ebenfalls eine venv erstellen. Das lässt sich vollständig per Skript automatisieren und dauert für den Endkunden etwa 20–30 Minuten. Damit wären auch sehr alte Installationen weiterhin problemlos nutzbar und der User hat kein Todo. Alternative: Ich erstelle precompiled python Pakete für Buster, dann gehts fix und alles bleibt bestehen! Dieser Upgrade-Pfad kann in einigen Monaten wieder entfernt werden, sobald der Support für Buster / Bookworm entfällt. Alternativ kann er dauerhaft bestehen bleiben, da es technisch keinen Unterschied macht, auf welchem System die venv betrieben wird. Zusätzlich habe ich sämtliche Komponenten auf die neuesten Versionen aktualisiert und eure Skripte an die neuen Methoden sowie APIs angepasst. Außerdem habe ich Caddy aufgrund der besseren Performance integriert. Testet das Ganze gerne selbst – ich habe sowohl den Upgrade-Prozess als auch sämtliche Funktionen geprüft. Dabei lief alles sauber und ohne Probleme. Natürlich ist mir bewusst, dass der PR aktuell mehrere Themen gleichzeitig zusammenfasst. Ursprünglich wollte ich dafür mehrere kleinere PRs erstellen, habe mich dann aber entschieden, ein größeres Update mit allen zusammenhängenden Features bereitzustellen. Wie gesagt: Es war auch einiges an Legacy-Code dabei 😉 Am Ende entscheidet natürlich ihr, wie ihr damit umgehen möchtet. |
|
Eine andere Alternative für alle Installationen – unabhängig vom verwendeten System – wäre pyenv: |
Zusammenfassung
Umfassendes Update für open WB (Bookworm & Trixie), moderne Python-Versionen (3.10+) und aktualisierte Abhängigkeiten t. Außerdem wird Apache durch Caddy als Webserver ersetzt.
211 Dateien geändert, +2185 / -1579 Zeilen
Neuerungen
Debian 13 Trixie & Python 3.13 Unterstützung
openWB läuft jetzt auf aktuellen Debian-Versionen, statt an Bullseye gebunden zu sein.
/opt/openwb-venverstellt, um Konflikte mit PEP 668 (System-Python) zu vermeidenruns/platform_detect.sh(Architektur, Virtualisierung, Raspberry Pi, Debian-Version)runs/upgrade_stack.sh(Python-Installation, venv, Paketmigration, Services)Apache ersetzt durch Caddy + PHP-FPM
Der Webserver-Stack wurde komplett modernisiert:
libapache2-mod-php(standardisierter PHP-Interpreter, versionsunabhängig)runs/setup_caddy.sh(inkl. MQTT-Settings)setup_apache2.sh,.htaccess, etc.)Aktualisierte Abhängigkeiten
CallbackAPIVersion.VERSION1Testabhängigkeiten (
pytest,requests-mock) wurden inrequirements-dev.txtausgelagert.Raspberry Pi Optimierungen
Speziell für Raspberry Pi 3B/3B+:
/var/log(64 MB, keine Schreibzugriffe auf SD-Karte)Alle Optimierungen werden nur auf Raspberry Pi angewendet.
Zeit & System
systemd-timesyncd(präzisere Zeitsynchronisation)CI/CD
Funktionsweise
Auf bestehenden Bookworm-Systemen
Beim Booten wird
runs/upgrade_stack.shüberatreboot.shausgeführt:bookworm-backports/opt/openwb-venv).stack-version(verhindert doppelte Ausführung)Auf frischen Trixie-Installationen
Python 3.13 ist bereits vorhanden:
Idempotenz
upgrade_stack.shläuft nur bei Versionsänderung (.stack-version)setup_caddy.shstartet Caddy nur bei Konfigurationsänderung neuGeänderte Dateien
Neue Dateien
runs/platform_detect.sh– Systemerkennungruns/upgrade_stack.sh– Upgrade-/Migrationslogikruns/setup_caddy.sh– ersetzt Apache-Setuppymodbus_compat.py– Kompatibilität für pymodbus 3.xrequirements-dev.txt– TestabhängigkeitenEntfernt
.htaccessWichtige Anpassungen
Abwärtskompatibilität
Getestet auf