Minimum_discourse_version が -latest ビルド(例: 2026.8.0-latest.1)でチェックに失敗します

デフォルトの latest チャンネル上のテーマ/コンポーネントは自動的に無効化され、テーマ作成者は直感的でない回避策を使用する必要があります。

こちらで問題が発生しました: Featured Topics - #76 by cogdog 実際に対応すべきバージョンより低いバージョンに対して、xxx.x.999 のような形式の最小バージョンを指定する必要があることは、かなり直感的ではありません。

プラットフォーム

  • latest ブランチのセルフホスト型 Discourse
  • Discourse バージョン: 2026.8.0-latest.1
  • 影響範囲: テーマ/テーマコンポーネントの作成(about.json メタデータ)およびテーマの互換性チェック

説明

実際の結果:
about.json"minimum_discourse_version": "2026.8.0" を設定したテーマは、サイトが 2026.8.0-latest.1-latest ビルドを動作させている場合、非互換と判定され自動的に無効化されます。テーマを有効なままにする唯一の方法は、"minimum_discourse_version": "2026.7.999" のように低いバージョンを設定することです。

同様の問題が、minimum_discourse_version-latest スタイルの値(例: 2025.12.0-latest)を設定したテーマをインポートする際にも発生し、無効な値として拒否されます — 既存の報告: 主题配置文件中minimum_discourse_version不支持日期化版本格式

期待される結果:
2026.8.0-latest.12026.8.0 リリースラインの -latest ビルドであるため、2026.8.0 という最低要件を満たすべきです。Latest ビルドは、対応するリリースバージョンよりも新しいうえに、古いものではありません。

しかし、-latest バージョンは、そのバージョンのリリース前のバージョンです。これが互換性エントリの基礎となってきました。

<2026.7.999 で処理した方法は直感的ではないように思えますが、なぜ <2026.8.0-latest を指定しなかったのですか?

2026.8 の開発中に追加された特定のコミットが必要であれば、2026.8 リリースを使用している人々がそれを所有していることは確信できますが、2026.8-latest を使用している人々がそれを所有しているとは確信できません。彼らの最後の更新が、その特定のコミットが追加される前に行われた可能性があるからです。したがって、2026.8 がデフォルトで 2026.8-latest を含む場合、問題が発生する可能性があります。テーマを使用/更新できるようになるまで数週間待つ必要があることは、必要なコミットが欠けているために問題が発生するリスクがあるよりも、管理者にとってより良いことだと思います。

「いいね!」 1

はい、その通りです。2026.8.0-latest2026.8.0 よりも低いバージョンです。Semver パーサーで確認できます。例えば Ruby では:

irb(main):001> Gem::Version.new("2026.8.0-latest") < Gem::Version.new("2026.8.0")
=> true

これは修正すべきです。テーマの作成者は以下のようにすべきです:

minimumDiscourseVersion: "2026.8.0-latest"

ただし、@moin が指摘したように、-latest は非常に多くの異なるコミットを指すため、リスクがあります。理想的には、テーマ/プラグインから新しいコア機能に依存する前に、次のリリースを待つべきです。