DiscourseプラグインにおけるGemバージョン競合の管理

こんにちは。外部gemを使用してDiscourseのプラグインを構築しています。他の投稿で提案されている外部gemの使用に関する提案(Requiring external gemsPlugin using own gem - #3 by kgish など)はすでに組み込んでおり、これには外部パッケージに必要な追加パッケージの追加が含まれます。これはDiscourseプラグインの開発にはうまく機能します。しかし、Discourseのアップデートごとに、プラグインとDiscourseの最新バージョンでDiscourseを再構築する際に、gemのバージョンの競合に関連するエラーが発生することがあります。

以下にエラーの例を示します。

rake aborted!
Gem::LoadError: can't activate addressable-2.8.4, already activated addressable-2.8.5

他のプラグインでも同様の状況が見られ、次のフォーラム投稿でいくつかの例が見られます:Install discourse failed due to Custom Wizard plugin および https://meta.discourse.org/t/failed-to-bootstrap-after-upgrade/280283。

現在、私が試している解決策は、パッケージを最新バージョンに更新し、Discourse Coreで使用されているバージョンと一致させることです。

しかし、毎回Discourse Coreの最新バージョンと一致するようにパッケージを更新する必要のない解決策があるかどうか、お尋ねしたいと思います。

依存する各プラグインをCoreに基づいてバージョンを合わせるために更新(またはPR)する必要があります。バージョンを混在させることはできません。

この場合、使用しているプラグインがaddressable-x.x.xを使用している場合は、addressable-2.8.5に更新されていることを確認する必要があります。

「いいね!」 2

返信ありがとうございます、@merefield 。はい、パッケージのバージョンに競合が発生するたびに、私はいつもこうしています。おそらく、プラグインのバージョン管理を改善して、Discourse の古いバージョンを引き続き使用したいユーザーがプラグインを引き続き使用できるようにする必要があるでしょう。