Discourseテーマの無効なバージョンリスト

アップデート時にこれらを見つけました。まあ、これはもうしばらく前のことですが、今回はログを取得しました。

[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

心配すべきでしょうか?

正確にはそうではありませんが、もしかしたらそうかもしれません。

そのエラーが発生する理由は多数あります。最も一般的な理由は、おそらく .discourse-compatibility ファイルが空であることです [1][2][3]。(先頭の # はコメント行です)

この警告は実質的に、Discourse が現在のコンポーネント/プラグインの「最新」バージョンが現在の Discourse バージョンと互換性があるかどうか、あるいは古いバージョンのコンポーネント/プラグインをチェックアウトする必要があるかどうかを判断できないことを意味します。

コンポーネント/プラグインの .discourse-compatibility ファイルには、Discourse のバージョン範囲と特定のコンポーネント/プラグインのリビジョンとのマッピングを含めることができます。Discourse がマッピングを見つけると、最新バージョンではなくそのリビジョンを使用します。これには、開発者が以前の Discourse バージョンと互換性を損なう変更を加えた際に、ファイルを更新する必要があります。破壊的変更を行わなければ、ファイルは空のままになり、その結果、この警告メッセージが表示されます。

コンポーネント/プラグインが最新の Discourse バージョンで動作するかどうかは常に推測にすぎません。

私は 2026.1 向けにプラグインの開発を開始しました。したがって、Discourse の最低バージョンは 2026.1 となります。現在もそのバージョン(および現在の最新バージョン)に対して開発とテストを行っています。サポート対象となる以前の Discourse バージョンが存在しないため、.discourse-compatibility ファイルは空であり、その結果、この警告メッセージが表示されます。2026.1 のサポートが終了したら、新しい ESR(Extended Support Release)に移行する予定です。その時点で 2026.1 に対するテストは行わなくなり、.discourse-compatibility ファイルを更新して、ついに空ではなくなります。それによって初めて、私のプラグインに関するこの警告が消えます。

.discourse-compatibility ファイルに関する詳細情報: Introducing .discourse-compatibility: pinned plugin/theme versions for older Discourse versions

それを試してみました。Discourse Wikipedia Lookup コンポーネントをフォークし、そこに .discourse-compatibility ファイルを追加しました。内容は別のコンポーネントからコピーしました。その警告は消えました。つまり、それが原因だったようです。

ありがとうございます。

しかし、他のテーマコンポーネントもいくつか確認しましたが、.discourse-compatibility が完全に欠けていたり、完全に空だったりするものもありました。それらは警告を表示していませんでした。

まあ、問題は解決したので、生活は続きます。

他のコンポーネントの互換性ファイルからコンテンツをコピーすると、特定の Discourse バージョンで参照されているコミットが、コピー先のリポジトリに存在しないため、エラーが発生する可能性があります。

互換性ブランチのワークフローが私のリポジトリで失敗したのは、まだ Arkshine がテーマスケルトンに追加した修正を取り入れていないからです。リストにある私の2つのリポジトリは、現在どちらもこの問題の影響を受けていると思います。

これにより、コメントのみを含むファイルの警告ログが停止されます:

.discourse-compatibility は引き続きサポートされていますが、現在ではテーマ/プラグインの互換性に対して d-compat/* ブランチベースの戦略に従うことを推奨しています。詳細はこちら:

したがって、ファイルに実質的なエントリがない場合は、削除することをお勧めします。

もちろんです。そのフォークを実際に使用する予定はありません。テンプレート/ボイラープレートファイルの使用が原因であることを確認するためのテストに過ぎませんでした。実際のコミットと正しい構文を使用していることを確認したかっただけです。