mit unserem nächsten Release haben wir mit einigen Apps im CFW-Store ein Problem. Genauer: Alle Apps, die ftrobopy benutzen, sind in der aktuell im Store vorhandenen Version nicht mit dem nächsten Release kompatibel, und die Änderungen, die sie kompatibel zum nächsten Release machen würden, sind wiederum nicht mit 0.9.2 kompatibel.
Hintergrund: Version 0.9.2 (und alle ftrobopy-Apps im Release) benutzen noch eine Version von ftrobopy, die die TXT-Hardware über TxtControlMain (d.h. die Original-Applikation von Fischertechnik) steuert. Das nächste Release bringt eine neue Version von ftrobopy mit, die die TXT-Hardware direkt ansteuern kann, und lässt als Konsequenz TxtControlMain nicht mehr immer im Hintergrund mitlaufen. Das bedeutet aber, dass die aktuellen Versionen der Apps (die sich mit TxtControlMain verbinden wollen) nicht mehr tun.
Der Fix ist eigentlich recht simpel: FTRobopy muss statt wie bisher mit "ftrobopy.ftrobopy(txt_ip, 65000)" mit "ftrobopy.ftrobopy('auto')" initialisiert werden (dann findet es selbst heraus, ob es die TXT-Hardware direkt oder per Netz ansprechen soll). Das Problem dabei: Die Version von ftrobopy in Version 0.9.2 kennt diese Initialisierungs-Art noch nicht, d.h. die umgestellten Apps sind dann mit Version 0.9.2 inkompatibel.
Mein Vorschlag, um den Versionswechsel trotzdem vernünftig hinzubekommen:
- Wir definieren die Bedeutung des (bisher nicht wirklich genutzten) Felds "firmware" im App-Manifest um in "Eine Spezifikation der Firmware-Versionen, die mit der App kompatibel sind"
- Die Store-App wird erweitert, so dass sie nur noch die Apps auflistet, die mit der aktuell laufenden Firmware-Version kompatibel sind
- Ausserdem schaut der erweiterte Store nicht nur im "master"-Branch nach Apps, sondern auch in einem Branch "v${version}", wobei "${version}" die (Haupt-)Version der Firmware ist (also z.B. "v0.9.2"). Falls beide Branches kompatible Versionen derselben App enthalten, dann gewinnt die neuere App-Version
- Alle problematischen Apps im "master"-Branch bekommen einen passenden Firmware-String, der die nächste Version aussschließt. Das ist dem "alten" Store aus 0.9.2 egal (der wertet "firmware" nicht aus), und der "neue" Store aus der nächsten Version zeigt die inkompatiblen Versionen nicht an.
- Anpassungen für die nächste Firmware-Version finden im passenden Branch statt, und der "firmware"-String in den angepassten Apps schliesst dann die alten Firmware-Version (0.9.2 und kleiner) aus.
- Eine Weile nach dem Release (wenn alle genug Zeit hatten ihren TXT auf die neueste CFW-Version upzudaten) können wir den "v${version}"-Branch wieder nach "master" mergen und löschen.
Liebe Grüße,
Richard