Discourse の最新バージョン番号を確実にプログラムで取得する方法

多くのオープンソースプロジェクトと同様に、GitHubのリリースを探していました。私と同じ考えの人がいて、Discourseには(もう)GitHubリリースがないことを発見しました。

次の試みはGitHubのgitタグを使用することでしたが、それは次善の策でしょう。本日現在、GitHubの最新タグは v3.6.0.beta2 です。自分のDiscourseインスタンスの管理ページを見ると、v3.6.0.beta3 を実行しています。これは、最新のDiscourseリリースがGitHubでタグ付けされていないだけでなく、Discourse自体(ソフトウェア)が新しいリリースがあるかどうかを知る方法としてGitHubタグを使用していないことを意味します。

私のインストールがDockerで実行されていることを思い出し、DiscourseイメージがDocker Hubでホストされている場所までその穴をたどることにしました。そこには、いくつかの命名規則がタグとして使用されています(例: 2.0.20251113-0018-web-only-stable)。Discourseが公開で使用しているv.X.Y.Z形式と相関しているように見えるものはありません。


それで、これを行う方法について何か推奨はありますか?

表示に使用されるバージョンは、ハードコードされた定数である Discourse::VERSION::String で定義されています。

「いいね!」 1

おそらく、beta3 の開発中にリリースされた beta3-latest を実行しているのでしょう。beta3 の最終バージョンはまだリリースされていません。

新しいバージョン管理戦略に関するトピックは読みましたか?

「いいね!」 2

何も使用していません。Discourse がアップデートを通知し、UI のボタンをクリックしてインストールします。Discourse がその情報をどこから取得するのかを調べています。

ありがとうございます。それを見つけましたが、定期的に git clone してそのファイルを調べる必要があり、それは軽量ではありません。

最初のリンクは最新バージョン(複数可)を取得するのに役立ちませんが、2番目のリンクは知っておくと良い情報です。バージョン管理スキームが完全に変更されるようです。リンクをありがとうございます。

新しいベータ版がリリースされると通知が送信されるという説明がお役に立つかと思いました。3.6.0.beta3 リリースに関する通知の後に更新すると、フォーラムが「latest」に基づいている場合、3.6.0.beta4-latest が取得されます。

プログラミング言語(またはcurlなど)で最新バージョンを確認できるURLが必要です。通常、これは何らかのフィードであり、JSON、XML、YAMLなどの構造化された言語で応答します。

Discourse コードにあるバージョンチェックを使用できます。

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

ここで X は、情報を取得したいブランチ上の既知のバージョンです。

最新のベータ版 5 つのバージョン番号のみを取得したい場合は、古いバージョンを使用するだけです。
https://api.discourse.org/api/version_check?installed_version=3.1.0.beta1

最新の安定版を取得したい場合は、installed_version パラメータを省略します。
https://api.discourse.org/api/version_check

「いいね!」 4

これです。まさに私が探していたものです。Google検索では見つけられませんでした。ありがとうございます!

このAPIでは、最新バージョンとしてv3.6.0 beta 2(GitHubのタグと同じ)が表示され、私のフォーラムが実行しているbeta 3ではありません。なぜそうなったのかは分かりませんが、それは別の問題です。:laughing:

助けてくれてありがとう。

「いいね!」 2

api.discourse.org によって提供されるデータは GitHub のタグから取得されるため、どちらを使用しても同じ結果が得られます。

それは、ベータ3 のリリース前のバージョンを実行しているためです。

-latest サフィックスはリリース前のバージョンであることを示すものであり、Discourse の特定のコミットに対応するものではありません。

「いいね!」 2