david
(David Taylor)
2026 年 3 月 20 日午後 4:48
1
Discourse の最新バージョンでは、テーマやプラグインで .hbs ファイルを使用することは非推奨になりました。このファイル形式のサポートは、次の ESR リリース後に削除されます。
Handlebars テンプレートは、よりモダンな .gjs 形式に置き換える必要があります。これにより、開発体験が大幅に向上し、将来の Discourse のバージョンで大きなパフォーマンス向上が可能になります。
簡単なケースについては、コードを https://ask.discourse.com/ で共有し、.gjs 形式に書き直すように依頼してください。
より複雑なケースについては、こちらの codemod を使用して更新を自動化できます。
In the latest version of Discourse’s standard linting config, we’ve enabled the require-strict-mode ember-template-lint rule. This will raise a linting error for any .hbs files.
To resolve the warnings, you should convert all your component, route, and connector templates to .gjs files. To make this easy, we’ve built the discourse-gjs-codemod , which builds on top of Ember’s @embroider/template-tag-codemod .
To use the codemod, first ensure that your linting dependencies are up-to-date by copyin…
RGJ
(Richard - Communiteq)
2026 年 3 月 20 日午後 8:31
2
david:
次のESRリリース後
2026.7ではまだhbsファイルがサポートされ、2027.1がサポートされなくなる最初のESRリリースである、と正しく理解していますか?
david
(David Taylor)
2026 年 3 月 20 日午後 8:32
3
はい、その通りです。
おそらく、サポートは 2026.8.0-latest で終了するでしょう。ただし、実際のデータやコミュニティのフィードバックによっては、それ以降になる可能性もあります。
RGJ
(Richard - Communiteq)
2026 年 3 月 24 日午後 8:59
4
たった今これを見つけましたが、更新が必要そうですね。
david:
この方法で導入されたテンプレートは、専用の .hbs ファイルに移動するか、gjs ファイルにリファクタリングする必要があります。
HBS のままにするには、コネクタ テンプレートを以下に配置できます。
{theme}/javascripts/discourse/connectors/{outlet-name}/{connector-name}.hbs
コンポーネント テンプレートは以下に配置できます。
{theme}/javascripts/discourse/components/{component-name}.hbs
david
(David Taylor)
2026 年 3 月 25 日午前 9:36
5
ありがとうございます!ほとんどの人はすでにそれらの対応を済ませているはずですが、管理者のバナーで約1年間非推奨とされていました。念のため、この注意書きを追加しました。
gilles
2026 年 3 月 25 日午後 12:16
6
私の方では、個人用の小さなプラグインを試したところ、ask Discourseの助けを借りて、hbsファイルとjsファイルをgjsファイルに統合することに成功しました🤣
私のように開発に苦労している人は、この問題を解決するためにask Discourseを使うことを強くお勧めします。
david
(David Taylor)
2026 年 3 月 25 日午後 12:19
7
それは素晴らしいです!OPにもask.discourse.comに関する注記を追加しました。ファイルが数個しかない場合は、非常にうまく機能しますよ
.gjs ファイルが何なのか、またそれを学んで複数のプラグインを書き直す時間もないというのが私の状況です。これはありえません。
Discourse のような脆弱なプラグイン API を持つことに一体何の意味があるのでしょうか?このフォーラムソフトウェアのプラグインを維持することは、トラブルの連続でした。
全くおかしな話ではありません。
カスタマイズの管理に予算やリソースが足りない場合は、設定を簡素化することを強くお勧めします。
これは、イノベーションを続け、パフォーマンスを向上させ、頻繁なセキュリティパッチを適用し、進化する標準に対応する最先端の高速プラットフォームに留まるための(妥当な)対価だと個人的には思います。
Discourse チームは、機能の喪失に先立って十分な時間前に非推奨警告メッセージが表示されるよう、多大な努力を払っているようです。
セキュリティが脆弱で機能が少ないプラットフォームに留まることを選びますか?
無料でダウンロードできる、よくメンテナンスされたコアから得られる価値について考えてみてください。
RGJ
(Richard - Communiteq)
2026 年 3 月 31 日午前 10:56
10
gilles
2026 年 3 月 31 日午前 11:29
11
私の小さなプラグインではうまくいきませんでした。
でも、ask.discourse.com の助けを借りて、コードを読んでもらい、hbs ファイルと js ファイルを .gjs に変換してもらいました。最初の手法がうまくいかない場合は、ためらわずに試してみてください。
Canapin
(Coin-coin le Canapin)
2026 年 3 月 31 日午後 1:01
12
これについては、こちらでも回答されています:
Sorry for the frustration, we try to make these updates easy and provide months of time to get them done — but there’s always a trade-off. If we kept remappings indefinitely we’d already have multiple layers of them from V4 → V5 → V6 and this would be debt that would require its own understanding and maintenance. If we did this for every piece of code Discourse would be much larger and more difficult to understand and work with.
Yes, which is why we provide deprecation warnings and instruction…
また、
ご不満はお察しします。プラグイン、テーマ、またはコンポーネントを開発された方であれば、誰もが非推奨化や必須アップデートに直面しています。
他にも不満を表明されている方がいます:
私は Discourse プラグインの追加作業は行いません。もはやその価値がないからです。
他の人が私のプラグインの 2 つを使用していることを考えると、他の人に問題を引き起こさずにそれらを削除する手順はどのようなものでしょうか?
数ヶ月ごとに、まったく意味のない理由でプラグインが機能しなくなることにうんざりしています。また、自分のフォーラムを稼働させるために必要な時間と労力も多すぎます。
私は「最先端」にいたいわけではありません。単に、動作し、安定した Web フォーラムが欲しいだけです。
「更新しない」という選択肢もありません。セキュリティ更新が必要だからです。前回私が不満を述べた際、誰かがそのように提案したことはばかげています。
Discourse チームは、互換性をより重視し、既存のフォーラムやコードを壊さないようにするべきです。彼らはそのことについてほとんど考えていないように見えます。彼らは、自分側の整理を少し整えるために、互換性を破壊する変更を加えています。これは、他の人が利用しているプラットフォームや API を管理する方法ではありません。私はこれ以上、その一部になりたくありません。
david
(David Taylor)
2026 年 4 月 7 日午後 12:19
14
そのような状況で申し訳ございません。
もしこの方針で進めたい場合は、README およびメタトピックに注意を追加し、broken とマークしてから、GitHub リポジトリをアーカイブすることをお勧めします。そうすれば、ライセンスが十分に寛容であれば、他の人がフォークできるようになります。
私たちは確かに互換性と機能の維持を重視しています。そのため、完全に自動化されたアップグレードパスを備えた長い非推奨期間を設けています。
私たちは常にカスタマイズ性と安定性のバランスを取るよう努めています。Discourse のテーマやプラグインがこれほど強力なのは、それらが基盤となるブラウザやフレームワークの API に直接アクセスできるからです。この莫大なパワーには、基盤となる変更に対応し続けるという一定の責任が伴います。
その通りです。最新の状態を維持することは重要です。過去数ヶ月間、ESR(以前は「安定版」)ユーザーのためにリリースパイプラインに大幅な投資を行い、改善を図ってきました。詳細は こちら をご覧ください。更新は必要ですが、タイミングと緊急性についてはより柔軟性が生まれています。
今回の特定の非推奨については、解決策は完全に自動化されています。プラグイン名をお知らせいただければ、コード変換を実行し、PR を作成することも喜んでお手伝いいたします。私たちは現在管理している600以上のテーマやプラグインに対してすべてこの作業を行っており、すでに非常にスムーズなプロセスとなっています。
この投稿 で、私は unmaintained タグ、または end-of-life タグの追加を提案しました。
数ヶ月後に戻ってきた際に多くの変更があることに気づくのは簡単ではないことは理解しています。変更に対応し続けるのは大変かもしれませんが、私見では、広範な API を備えた最先端のフォーラムソフトウェアを利用する上で、払うべき代償です。
それなら、なぜ自らの側での些細な「不純物」の整理を優先し、互換性を犠牲にして変更を繰り返すのでしょうか?
そのようなレガシーな不純物は、プラットフォームや API を維持する上で必要なコストの一部です。実際には大きな問題を引き起こすことはありません。しかし、あなたはそれを無理に変更・削除し、結果として他者に追加の作業やテストを強いています。
ESR のサポート期間はわずか 9 ヶ月であり、これは「拡張サポート」とは言い難いものです。
また、ESR を使用すれば、すべての破壊的変更が一度に発生することになり、問題の原因を特定するために検索しなければならないコミットリストも膨大になります。
現状の ESR は、この問題を悪化させるだけで、改善にはなりません。
唯一の解決策は、API を真に重視し、維持することです。破壊的変更は最終手段としてのみ行い、「あったらいいな」程度の整理のために実施すべきではありません。また、自分が別のフレームワークを使いたいという理由や、その他諸々の理由で、人々が利用しているフレームワーク全体を廃止するようなことはやめてください。
RGJ
(Richard - Communiteq)
2026 年 4 月 7 日午後 1:40
17
ここで推奨されるプロセスは、本番環境を ESR で、ステージング環境を月次リリースまたはテスト通過版で運用することです。
ステージング環境を毎日・毎週・毎月更新すれば(自動化も可能です)、プラグインやテーマを反復的に更新し、常に動作する状態に保つことができます。
本番環境を ESR に維持することで、問題を修正するための最低 3 ヶ月の猶予が得られます。
公開された API が常に変化する標的であってはならないという概念が、どうやらご理解いただけないようです。
もしマイクロソフトが、Windows 開発者に 6 ヶ月ごとにコードをすべて書き換えさせるようなことをしたらどうでしょうか。考えられません。30 年前に Windows 95 向けに書かれたコードであっても、現在では全く変更を加えずに最新のマシンでコンパイルし、実行することができます。
ご自身で定めた仕様に基づいて書かれたコードが、ご自身の判断によって完全に動作しなくなる状況において、互換性を重視しているなどとは主張できません。
manuel
(Manuel Kostka)
2026 年 4 月 13 日午後 1:09
19
Windows はそのスタック全体を制御しますが、Discourse はライブエコシステム上にプラットフォームを構築しています。Ember だけでも、メジャーバージョン間で後方互換性を繰り返し破ってきました。そして、それはフロントエンドエコシステムにおいてむしろ例外ではなく、むしろ一般的なことなのです。
私には、ここで適切なモデルは Windows ではなく、他の API プラットフォームが採用しているもの、つまり明確なバージョン管理、廃止のお知らせ、そして合理的な移行期間であることが非常に明確に思われます。