Wie man die neueste Version von Discourse zuverlässig und programmatisch erhält

Wie ich es für viele Open-Source-Projekte tun könnte, habe ich nach GitHub-Releases gesucht. Jemand hatte die gleiche Idee wie ich und stellte ebenfalls fest, dass Discourse keine GitHub-Releases (mehr) hat.

Mein nächster Versuch war, Git-Tags auf GitHub zu verwenden, was das nächstbeste wäre. Bis heute ist der neueste Tag auf GitHub v3.6.0.beta2. Wenn ich mir die Admin-Seite meiner eigenen Discourse-Instanz ansehe, läuft bei mir v3.6.0.beta3. Das bedeutet, dass nicht nur die neueste Discourse-Version nicht auf GitHub getaggt ist, sondern Discourse selbst (die Software) verwendet offenbar nicht die GitHub-Tags, um zu wissen, wann es eine neue Version gibt.

Ich erinnerte mich, dass meine Installation auf Docker läuft, also beschloss ich, diesem Kaninchenbau zu folgen und nachzusehen, wo die Discourse-Images auf Docker Hub gehostet werden. Dort werden ein paar Namenskonventionen als Tags verwendet (wie z. B. 2.0.20251113-0018-web-only-stable), aber keine, die dem v.X.Y.Z-Format, das Discourse öffentlich verwendet, zu korrelieren scheint.


Hat also jemand eine Empfehlung, wie man das machen kann?

Die angezeigte Version wird durch Discourse::VERSION::String definiert, eine fest codierte Konstante:

1 „Gefällt mir“

Ich vermute, du verwendest beta3-latest, was einer Version während der Entwicklung von beta3 entspricht. Die endgültige Version von beta3 wurde noch nicht veröffentlicht.

Hast du das Thema zur neuen Versionierungsstrategie gelesen?

2 „Gefällt mir“

Ich habe nichts verwendet. Discourse sagt mir, wenn es Updates gibt, und ich klicke auf die Schaltfläche, um sie in der Benutzeroberfläche zu installieren. Ich versuche herauszufinden, woher Discourse diese Informationen bezieht.

Danke. Das ist mir auch aufgefallen, aber das würde erfordern, dass ich regelmäßig git clone ausführe und diese Datei inspiziere, was nicht gerade leichtgewichtig ist.

Der erste Link hilft mir nicht, die neueste(n) Version(en) zu bekommen (tatsächlich scheint es jetzt noch mehr zu geben), aber dieser zweite Link ist gut zu wissen. Es sieht so aus, als ob das Versionierungsschema komplett geändert wird. Danke für den Link.

Ich dachte, die Erklärung, dass Benachrichtigungen gesendet werden, sobald eine neue Betaversion veröffentlicht wird, könnte Ihnen hilfreich sein. Wenn Sie nach der Benachrichtigung für die Veröffentlichung von 3.6.0.beta3 ein Update durchführen, während Ihr Forum auf „latest“ basiert, erhalten Sie 3.6.0.beta4-latest.

Ich benötige eine URL, über die ich mit einer Programmiersprache (oder z. B. curl) die neueste(n) Version(en) abfragen kann. Typischerweise handelt es sich dabei um einen Feed mit einer strukturierten Antwort wie JSON, XML, YAML usw.

Sie können die Versionsprüfung verwenden, die im Discourse-Code enthalten ist.

https://api.discourse.org/api/version_check?installed_version=

wobei X eine bekannte Version in dem Branch ist, über den Sie Informationen erhalten möchten.

Wenn Sie nur die neuesten 5 Beta-Versionsnummern erhalten möchten, verwenden Sie einfach eine alte Version wie
https://api.discourse.org/api/version_check?installed_version=3.1.0.beta1

Wenn Sie die neueste stabile Version wünschen, lassen Sie den Parameter installed_version weg
https://api.discourse.org/api/version_check

4 „Gefällt mir“

Das. Das ist genau das, wonach ich gesucht habe, aber mein Google-Fu hat mich im Stich gelassen. Danke!

Diese API zeigt v3.6.0 beta 2 als die neueste (wie GitHub-Tags) und nicht beta 3, was mein Forum ausführt. Ich verstehe nicht, wie das passieren konnte, aber das ist ein anderes Problem. :laughing:

Danke für die Hilfe.

2 „Gefällt mir“

Die von api.discourse.org bereitgestellten Daten stammen von den GitHub-Tags, sodass Sie beides verwenden können. Sie liefern immer das gleiche Ergebnis.

Das liegt daran, dass Sie die Vorabversion von beta3 ausführen:

Der Suffix -latest ist der Indikator dafür, dass es sich um eine Vorabversion handelt und nicht um einen bestimmten Commit von Discourse.

2 „Gefällt mir“