manuel
(Manuel Kostka)
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.1 は 2026.8.0 リリースラインの -latest ビルドであるため、2026.8.0 という最低要件を満たすべきです。Latest ビルドは、対応するリリースバージョンよりも新しいうえに、古いものではありません。
Moin
2
しかし、-latest バージョンは、そのバージョンのリリース前のバージョンです。これが互換性エントリの基礎となってきました。
<2026.7.999 で処理した方法は直感的ではないように思えますが、なぜ <2026.8.0-latest を指定しなかったのですか?
2026.8 の開発中に追加された特定のコミットが必要であれば、2026.8 リリースを使用している人々がそれを所有していることは確信できますが、2026.8-latest を使用している人々がそれを所有しているとは確信できません。彼らの最後の更新が、その特定のコミットが追加される前に行われた可能性があるからです。したがって、2026.8 がデフォルトで 2026.8-latest を含む場合、問題が発生する可能性があります。テーマを使用/更新できるようになるまで数週間待つ必要があることは、必要なコミットが欠けているために問題が発生するリスクがあるよりも、管理者にとってより良いことだと思います。
「いいね!」 4
david
(David Taylor)
3
はい、その通りです。2026.8.0-latest は 2026.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 は非常に多くの異なるコミットを指すため、リスクがあります。理想的には、テーマ/プラグインから新しいコア機能に依存する前に、次のリリースを待つべきです。
「いいね!」 2
manuel
(Manuel Kostka)
4
正直、少し理解しにくいと感じています。互換性ファイルでも x.999 というアプローチを使う必要があるようです。例えば、私のコンポーネントでは現在このようになっています:
2026.7.999: 93b5b22
2026.4.999: 0321b6d
どうやら 2026.5.0 にある機能が対象のようなんですが、それに合わせるために 2026.4.999 を指定する必要があるのでしょうか?
「いいね!」 1
Moin
5
最近その方法を使っていませんが、Discourseチームの例では、.999を使った以前のリリースではなく、現在のバージョンと -latest サフィックスが使われていました。
「いいね!」 1
david
(David Taylor)
6
過去にはそうでした。そのため、まだそのようにしている古いテーマやプラグインが存在します(人間やロボットがレガシーパターンをコピーし続けていると推測されます)。
ただし、現在では互換性ファイルの左側に < または > 指標を使用できます。したがって、以下のように記述できます。
<2026.7.0-latest: 93b5b22
また、現在では互換性ファイルの使用を避けるよう努めています。代わりに、過去バージョンとの互換性を d-compat/* ブランチが自動的に管理する仕組みに依存しています。
旧パターンと新パターンの両方に関するドキュメントはここにあります:
「いいね!」 2
david
(David Taylor)
クローズされました:
8
このトピックは44時間後に自動的にクローズされました。これ以上新しい返信はできません。