MasterOfGizmo hat geschrieben:
Bisher stand da "0.9" was im Klartext "benötigt mndestens Firmware 0.9" heissen sollte. Das stimmt ja auch nach wie vor für alle Apps. Jetzt wollt ihr auch eine Maximal-Version per "<" angeben können. Aber das ist m.E. in der Praxis kaum sinnvoll, denn das weiss der App-Entwickler in der Regel ja gar nicht, dass in einer späteren Firmware-Version mal Inkompatibilitäten auftreten werden. Das passiert nur im umgekehrten Fall (wie dem aktuellen), dass ein Framework geändert wird und einem bewusst wird, dass bestimmte Apps damit nicht mehr laufen werden.
Deshalb passt in so einem Fall dann auch derjenige die Manifeste an, der die Änderung in der Firmware gemacht hat.
Und nein "0.9 und später" stimmt eben genau
nicht mehr für alle Apps. Apps, die ftrobopy benutzen, laufen ohne Anpassung nur mit den Firmware-Versionen ">=0.9.0, <0.9.3". Und die angepassten Apps laufen dann entweder wieder mit allen Firmware-Versionen (wie aktuell Brickly) oder eben in der einen Version mit ">=0.9.0, <0.9.3" und in der anderen dann mit ">= 0.9.3". Manchmal lohnt sich Rückwärtskompatibilität um jeden Preis nämlich auch nicht.
Und in genau diesen Fällen haben wir mit genau diesem Mechanismus dann wenigstens die Möglichkeit, dafür zu sorgen dass trotzdem jede aktuell verbreitete Firmware-Version eine funktionierende Version der App bekommt. Die Variante für die älteren Firmware-Versionen bekommt dann halt eventuell keine Updates mehr - aber das ist ja auch kein Beinbruch. Dann aktualisiert man halt die Firmware, um die neueste Version der App laufen lassen zu können.
MasterOfGizmo hat geschrieben:Aber in dem Fall _alle_ betroffenen Apps anzufassen gibt m.E. wenig Sinn.
Was willst Du denn stattdessen tun? Die Firmware bis in alle Ewigkeit mit jeder irgendwann mal existierenden App kompatibel halten? Das läuft früher oder später (eher früher) auf ein grausliches Dickicht von zig nebeneinander her existierenden API-Varianten raus, die letztendlich alle dasselbe machen - nur halt immer ein klein wenig anders. Das Paradebeispiel für sowas sind die diversen Windows-APIs - Microsoft versucht nämlich exakt das.
Oder schlägst Du vor, beim nächsten mal auch wieder gleich alles zu löschen wo möglicherweise eine Anpassung erforderlich werden könnte?
MasterOfGizmo hat geschrieben:Ich lasse mich gerne eine besseren belehren. Konkrete Frage also: Was soll ein App-Autor in Zukunft als maximale Firmware-Version im manifest eintragen?
Gar nichts. Das macht derjenige, der vor einem neuen Firmware-Release die Apps testet. Oder - falls das tatsächlich mal zu viele werden so dass das nicht mehr skaliert - dann macht das derjenige, der auf den Bugreport "App XY tut mit Firmware Version Z nicht mehr" reagiert. Und der macht das dann auch nur, wenn er die App nicht so anpassen kann dass sie mit allen Firmware-Versionen läuft, und in der Regel dann auch nur für eine Übergangszeit, in der eben mehr als eine Version der App parallel gebraucht werden kann/soll.
MasterOfGizmo hat geschrieben:Meines Erachtens gibt es keine sinnvolle Antwort auf diese Frage. Er könnte bestenfalls von jedem verwendeten Framework angeben, welche Version er erwartet. Dann kann man bei inkompatiblen Framework-Updates auf Framework-Seite testen, ob es nicht geht oder nicht. Aber das weiss nur jedes Framework für sich, ob die aktuelle Version zur Version xyz, die eine App erwartet, kompatibel ist oder nicht. Aber das endet schnell in einer kompletten Verwaltung aller Abhängigkeiten.
Das "Framework" für Apps ist die Community-Firmware. Und die Möglichkeit, "an[zu]geben, welche Version er erwartet" habe ich da gerade eben eingebaut...
Den Versions- und Abhängigkeitsverhau halbwegs kleinzuhalten ist übrigens einer der Gründe, warum die CFW "im Stück" aktualisiert wird und nicht (wie bei den "grossen" Linux-Distribution üblich) häppchenweise über eine Paketverwaltung. Damit haben wir nämlich effektiv nur genau die eine Abhängigkeit der Apps von der Firmware-Version, und nicht zig individuelle Abhängigkeiten von allen verwendeten Frameworks.
Und in der Praxis werden wir in den Apps maximal zwei oder drei Versionen der Firmware parallel unterstützen müssen - zumindest solange wir den Leuten ausreichend Grund dafür geben, die CFW auf ihren TXTs halbwegs aktuell zu halten.