Ungültige Versionsliste in Discourse-Themen

Ich habe diese beim Upgrade gefunden. Nun, das ist schon eine Weile her, aber dieses Mal habe ich ein Protokoll erstellt.

[db:default] 'Messages section for sidebar' -  checking...
Invalid version list in /tmp/discourse_theme_c64ff70a4cc7d614d9e88b106805c78f

[db:default] 'Unhide composer fullscreen toggle for tablets' -  checking...
Invalid version list in /tmp/discourse_theme_4f18f6036fb93a7e2c8eca368c66ad09


[db:default] 'Discourse Highlight to Search' -  checking...
Invalid version list in /tmp/discourse_theme_f7e393183be5f0189adb336c4602f071

[db:default] 'Discourse Wikipedia Lookup' -  checking...
Invalid version list in /tmp/discourse_theme_8cf76b5d4fe5eac70cd636ee2487be35

[db:default] 'Accent' -  checking...
Invalid version list in /tmp/discourse_theme_9796e5491667b1c43c7b9c680fc68ff3

Sollte ich mir Sorgen machen?

Nicht wirklich, aber vielleicht doch.

Es gibt viele Gründe, warum du diesen Fehler erhalten könntest. Der häufigste Grund ist wahrscheinlich, dass die .discourse-compatibility-Datei leer ist [1], [2], [3]. (Die führenden # sind Kommentarzeilen)

Im Wesentlichen bedeutet die Warnung, dass Discourse nicht feststellen kann, ob die aktuelle „neueste“ Version des Plugins/Themas mit der aktuellen Discourse-Version kompatibel ist. Oder ob eine ältere Version des Plugins/Themas ausgecheckt werden muss.

Die .discourse-compatibility-Datei des Plugins/Themas kann eine Zuordnung eines Discourse-Versionsbereichs zu einer bestimmten Revision des Plugins/Themas enthalten. Wenn Discourse eine Zuordnung findet, wird es diese Revision anstelle der neuesten verwenden. Dies erfordert, dass der Entwickler die Datei aktualisiert, sobald er Änderungen vornimmt, die mit einer früheren Discourse-Version in Konflikt stehen. Solange du keine brechenden Änderungen vorgenommen hast, bleibt die Datei leer und erzeugt somit diese Warnmeldung.

Ob das Plugin/das Theme mit der neuesten Version von Discourse funktioniert, ist immer nur eine Schätzung.

Ich habe mit der Entwicklung eines Plugins für 2026.1 begonnen, das wäre also die Mindestversion von Discourse. Es wird weiterhin gegen diese Version entwickelt und getestet (und gegen die aktuelle neueste Version getestet). Da es keine ältere unterstützte Discourse-Version gibt, ist die .discourse-compatibility-Datei leer; und erzeugt somit diese Warnmeldung. Sobald 2026.1 das Ende des Supports erreicht, werde ich zur neuen ESR wechseln. Zu diesem Zeitpunkt werde ich nicht mehr gegen 2026.1 testen und somit die .discourse-compatibility-Datei aktualisieren, wodurch sie schließlich nicht mehr leer ist. Erst dann wird diese Warnung für mein Plugin verschwinden.

Weitere Informationen zu dieser .discourse-compatibility-Datei: Introducing .discourse-compatibility: pinned plugin/theme versions for older Discourse versions

Ich habe das ausprobiert. Ich habe einen Fork der Komponente Discourse Wikipedia Lookup erstellt und dort die Datei .discourse-compatibility hinzugefügt. Ich habe den Inhalt aus einer anderen Komponente kopiert. Die Warnung verschwand. Also lag es wirklich daran.

Danke.

Aber ich habe mir ein paar andere TCs angesehen, und bei denen fehlte die .discourse-compatibility entweder ganz oder war komplett leer. Sie haben jedoch keine Warnung ausgegeben.

Das Problem ist jedoch geklärt, und wir können unser Leben weiterleben.

Das Kopieren von Inhalten aus der Kompatibilitätsdatei einer anderen Komponente kann zu Fehlern führen, da der für eine bestimmte Discourse-Version referenzierte Commit im Repository, in das du ihn kopiert hast, nicht existiert.

Ich weiß, dass der Workflow für die Kompatibilitätszweige in meinen Repositories fehlgeschlagen ist, weil ich die von Arkshine im Theme-Skeleton hinzugefügte Korrektur noch nicht eingebaut habe. Ich glaube, beide meine Repositories auf deiner Liste sind derzeit davon betroffen.

Dies wird verhindern, dass Warnungen für Dateien protokolliert werden, die nur Kommentare enthalten:

.discourse-compatibility wird weiterhin unterstützt, obwohl wir nun empfehlen, die branchbasierte Strategie d-compat/* für die Kompatibilität von Themes/Plugins zu verwenden. Weitere Details hier:

Wenn deine Datei also keine echten Einträge enthält, würde ich empfehlen, sie zu löschen.

Klar. Ich habe keine Pläne, diesen Fork tatsächlich zu verwenden. Es war nur ein Test, um sicherzustellen, dass der Grund die Verwendung der Vorlage/Boilerplate-Datei war. Ich wollte nur sichergehen, dass ich tatsächliche Commits und die richtige Syntax verwende.