Ich war mir der Kompatibilität von Discourse nicht bewusst, daher werde ich mich damit beschäftigen müssen.
Ich möchte dies ansprechen, da es so klingt, als gäbe es eine große Diskrepanz zwischen der Art und Weise, wie das Discourse-Team “stabil” versteht, und der Art und Weise, wie der Rest der Discourse-Community/größeren Forum-Administratoren-Community Discourse’s stabiles Angebot versteht.
Hauptgründe, warum stabil nicht der Definition von LTS entspricht.
1) Stabil wird von Mitarbeitern aktiv abgeraten, wann immer es angesprochen wird
Ich möchte nicht unbedingt einzelne Poster hervorheben, aber hier ist eine Auswahl von Beiträgen von Mitarbeitern, um das Thema zu verdeutlichen:
Beachten Sie, dass
tests-passedin gewisser Weise stabiler ist alsstable, da es das ist, was discourse.org verwendet, also ist es am besten getestet.
Discourse befindet sich also in einem permanenten Beta-Zustand, was bedeutet, dass wir immer an neuen Funktionen und Verfeinerungen arbeiten. In unserem Fall bedeutet Beta nicht instabil; wir hosten Websites mit Millionen von Seitenaufrufen pro Monat auf unseren Tests-bestanden und Beta-Versionen.
Der stabile Kanal ist nicht unbedingt “stabiler” als tests-passed. Es geht mehr um die Idee, dass die Fehler bekannt sind und er als Kontrollpunkt für eine bestimmte Reihe von Funktionen und Verbesserungen dient. Mit tests-passed können neue Fehler eingeführt und dann einige Commits später behoben werden.
Die Botschaft war ziemlich konstant, dass Discourse sich in einer “permanenten Beta” befindet, was nicht die Erfahrung ist, die Produktions- / Nicht-Entwickler-Benutzer wünschen.
Bei einer schnellen Suche auf DuckDuckGo der Top-Ten-Links für Discourse-Stable scheint keiner davon wirklich für die Verwendung von Stable zu plädieren. Unabhängig von seiner tatsächlichen Qualität, wenn Mitarbeiter die Leute universell von Stable abraten, hat es einen negativen Eindruck in den Köpfen der Menschen, als ob es nicht zweckmäßig wäre.
Stable mag großartig sein, aber wenn uns immer wieder gesagt wird, dass es am besten ist, es nicht zu verwenden, werden wir es nicht für ernsthafte Bereitstellungen in Betracht ziehen.
2. Ein LTS erhält Fehlerbehebungen, die über reine Sicherheitsfehlerbehebungen hinausgehen
Ein LTS ist etwas, das keine Funktions-Upgrades erhält, aber Fehlerbehebungen erhält. Laut den Kommentaren der Mitarbeiter scheint es in Discourse keine Anstrengungen zu geben, Fehlerbehebungen für Nicht-Sicherheitsfehler zurückzuportieren. Vielleicht stimmt das nicht, aber das wurde uns gesagt.
3. Ein LTS hat unkomplizierte Installationsschritte
Die Installationsanleitung erwähnt nicht einmal die Existenz von Stable.
4. Ein LTS wird weithin genutzt
Vor Ihrem Beitrag hatte ich noch nichts von einer weit verbreiteten Nutzung des stabilen Zweigs gehört. Wird er auch im Feld weit verbreitet genutzt? Angesichts der Tatsache, wie versteckt er ist, bezweifle ich es, aber ich habe keine Metriken, um das zu sagen. Dies ist ein wichtiger Faktor, da er den Leuten Vertrauen gibt, Stable für ihre Produktionsbereitstellungen zu nutzen.
5. Ein LTS hat einen klaren Veröffentlichungszyklus und Upgrade-Hinweise
Ich sehe keine zentrale Stelle, an der Stable klar dokumentiert ist. (Vielleicht übersehe ich es ja nur!)
Meine Erwartungen an ein LTS sind eine Seite, die Folgendes beschreibt:
- Aktuelle aktive Release-Version
- Release Notes einschließlich:
- Wichtige Änderungen/Funktionen zwischen LTS-Versionen
- Migrationsschritte von der letzten LTS-Version (insbesondere zu beachtende Breaking Changes)
- Geplante aktive Support-Dauer für jede Version
z.B. mediawiki, aber wirklich jedes wichtige Open-Source-LTS hat ähnliche Seiten.
Diese Dokumentation hilft mir, wenn es eine Breaking Change gibt, die Ausfallzeiten und/oder manuelle Eingriffe erfordert.
6. Ein LTS hat keine größeren Breaking Changes innerhalb eines Release-Zyklus
Dies mag für Stable zutreffen, aber ich bin zu sehr daran gewöhnt, auf den Upgrade-Button zu klicken und das Forum geht offline, um es sicher zu wissen. Ich suche hier wahrscheinlich nach klareren Warnungen, wenn man zwischen Versionen wechselt, die etwas kaputt machen.
7. Ein LTS bietet API-Deprecations-Warnungen für mindestens einen vollständigen LTS-Release-Zyklus
Diese sollten in der Größenordnung eines Jahres oder mehr gemessen werden, im Gegensatz zu einem Monat oder mehr.
8. Ein LTS ist gestaffelt / hat überlappende Support-Zeiträume
Jedes große LTS hat eine überlappende Support-Periode zwischen zwei LTS-Versionen. Stable scheint einfach einen binären Wechsel zur nächsten Version zu machen. (Meine Einschätzung kann auch falsch sein, da es keine zentrale Dokumentationsseite gibt)
9. Es ist unkompliziert, von Non-LTS auf LTS zu aktualisieren
Es gibt keine Notwendigkeit, Rückwärtskompatibilität zu unterstützen, aber wenn ein LTS verfügbar ist, ist es nicht klar, wie man sauber auf LTS wechselt. Es sieht so aus, als gäbe es einige Beiträge im Forum dazu, aber wieder keine zentralisierte Dokumentation, die ich finden konnte.
Ich bin ein Fan von Discourse, aber dies ist ein häufiger Schmerzpunkt, sowohl für mich als auch für viele andere. Was Stable im Moment ist, ist nur ein Zweig, kein LTS.