Seite 1 von 1

Stable, Unstable, Testing

Verfasst: 01.12.2024, 08:52
von Zoltan
Langsam wird es wie bei Debian: die "stable" Version muss bleiben (never touch a running system) and a "testing" (beta) kommt, und wenn das auch stabil rennt, schreitet es einen Schritt vor zu "stable" - aber bitte in der Datenbank des Flashers die "oldstable" noch erreichbar lassen :).

Das Framework wird langsam sehr komplex, man muss sehr aufpassen, dass neue Sachen altes nicht zerschiessen.... Auswirkungen von Neuerungen können sehr tückisch sein. Nicht dass ich zu Sven beim Programmieren und Ändern kein Vertrauen hätte, aber je komplexer es wird, um so schwieriger wird das Testen aller neuen Features zusammen mit all dem alten System zusammen.

Re: Stable, Unstable, Testing

Verfasst: 01.12.2024, 10:15
von little.yoda
Ich habe deinen Betrag mal in einen neuen Thread verschoben.

Testing ist bei so einem kleinen Projekt immer ein Problem.

Aus diesem Grund verfolge ich so hartnäckig die Pipe und Filter-Struktur. Änderung bleiben in den jeweiligen Filtern(=Module). Wenn man neue Module hinzufügt, gefährden diese nicht die Stabilität der anderen Module.

Aber ja. Das (angemessene) Testen ist eine Herausforderung, die ich schon jetzt nicht mehr leisten kann.
Der Sourcecode hat knapp 17.000 Zeilen und ich habe 4 Architekturen (ESP8266, ESP8285, ESP32 und jetzt den ESP32C3).
Unmöglich alle Architekturen für mich zu testen. Und wenn ich dann an die ganzen Module [*] denke,vergiss es.
Bei den ganzen hardwarenahen Entwicklung kannst du auch unit-Tests oder ähnliches vergessen.

Und ich werde meiner Release-Strategie treu bleiben. Aktuelle Versionen sind als Alpha/Beta markiert. Wenn sie sich stabilisieren und wenn schwere Bugs gefunden werden, werden sie zu Release-Versionen.

Wenn jemand eine ältere Version will, kann er sie ja über die jeweilige Release-Seite bei Github herunterladen und mit dem Flasher nutzen.

[*]
5 Klassen, die Befehle empfangen (DCC, Rocnet, Z21-Zentrale, Z21-Empfänger, Espnow)
14 Klassen, die Befehle verarbeitet (PWM-Ansteuerung, Led, ....)
7 Klassen, die auf Befehle reagieren
3 Klassen, die Displays ansteuern.

Re: Stable, Unstable, Testing

Verfasst: 01.12.2024, 12:11
von Zoltan
Klar, und danke für die Verschiebung.

Deine Architektur ist sauber und scheint auch sicher zu sein.

Und Testen ist etwas sehr schwieriges, ich weiß es aus eigener >40 Jahre IT-Erfahrung.

Solange so ziemlich alles ältere über die jeweilige Release-Seite bei Github herunterladbar ist, ist auch alles in Butter - und es ist so :)

(Ich habe es leider im Flasher übersehen, dass ich nicht nur online, sondern auch meine offline heruntergeladene Binaries jederzeit flashen kann - und ich habe die ältere ja auch heruntergeladen gehabt. Sorry - alles klar jetzt!)