.discourse-compatibility の紹介:古い Discourse バージョン向けに固定されたプラグイン・テーマのバージョン

なるほど、説明ありがとうございます。

それで、自分自身で :wine_glass: を注いで、Custom Wizard Plugin で試してみました。

各タグを v2.6.0.beta1 から逆順に一つずつ確認しました。以下の git コマンドが役に立ちました:

git tag --list \\ 例えば git tag --list 'v2.5.0*'
git checkout tags/tag \\ 例えば git checkout tags/v2.5.0.beta7

現在のプラグインのバージョンと互換性がないタグを見つけるのにそれほど時間はかかりませんでした:v2.5.0.beta7 には、カスタムウィザードがインポートしようとする discourse/app/components/d-textarea が含まれていませんでした。

そこで、そのインポートを追加した コミット を特定し、前のコミット の sha1 を取得してチェックアウトし、テストしました(正常に動作しました)。その後、.discourse-compatibility に以下を追加しました:

v2.5.0.beta7: 802d74bab2ebe19a106f75275342dc2e9cc6066a

次に、その内容を 最新のプラグインコードを含むブランチ(通常は必須ではないテスト用ブランチ)にプッシュし、そのプラグインブランチと versionv2.5.0.beta7 に設定して Docker 化されたテストサーバーを再構築しました。

しかし、それは動作しませんでした。そこでふと気づきました。もちろん、rake タスク plugin:pull_compatible_allv2.5.0.beta7 には存在しないのですから、これは遡って機能するはずがありません( :wine_glass: のせいかもしれません)。実際、ランチャーのログには以下が表示されていました:

Don't know how to build task 'plugin:pull_compatible_all' (See the list of available tasks with `rake --tasks`)

ただし、あなたが想定している使い方の要点はこれで合っていますか?

required_version については、テストサーバーに discourse-legal-tools プラグインがインストールされていたため、ここで遭遇しました。このプラグインは required_versionv2.5.0 に設定しているため、当初 v2.5.0.beta7 で失敗しました。このプラグインを新しいシステムに移行しようと考えています。あなたが仰る通り、絶対的なベースラインを設定するために required_version は依然として有用だと考えています。

「いいね!」 11