プラグインによって設定されたカテゴリ設定を保存できません

Custom Wizard Plugin :mage:の議論を続けます:

私も同様の問題が発生しており、Locations や Private Topics などの他のプラグインでも同じ現象が起きているようです。「保存されていない変更があります」というメッセージと保存オプションが表示されません。他の設定を変更しても、設定が保存されません。

これは Development に属するかもしれませんが、公式プラグインではこの問題は発生していないようです。一方、これは Discourse のアップデートで発生しました。 この問題は、2 つの公式プラグイン(calendar と restricted replies)にも影響しています。

「いいね!」 5

はい、これは enable_simplified_category_creation が有効になっている場合に FormKit 固有の問題です。プラグインは FormKit と新しいデータ構造を使用するように移行する必要があります。

移行の動作例は、コアプラグインのいずれかに含まれており、以下の場所で確認できます。

{{#if this.siteSettings.enable_simplified_category_creation}} でフォーム構造が分岐する方法や、@outletArgs.form のデータを使用して FormKit でフォームが構成されている方法をご覧いただけます。旧来のサポートのため、{{else}} の後には従来のフォーム構造も残っています。

「いいね!」 2

その説明をありがとう、Kris。

コアの変更に伴うプラグインの更新については、普段はかなりリラックスしており、開発者へのガイドのあり方には満足していますが、Discourse チームは今回は本当に失敗しました。

  • 発表がありませんでした(少なくとも、私は見つけられませんでしたし、@moin もまだ指摘していません :wink:
  • コア内で包括的なコードを導入してこれを緩和しようとする試みもありませんでした
  • ブラウザの開発者コンソールからの警告さえありませんでした

単に機能しなくなっただけです。

簡易的なスキャン(おそらく完全ではありませんが)によると、少なくとも以下のプラグインが破損していることがわかります:

  • Discourse
    • calendar :white_check_mark: ← 公式 Discourse プラグイン
    • restricted replies :white_check_mark: ← 公式 Discourse プラグイン
  • (Pavilion のメンバー)
    • category lockdown
    • custom wizard
    • locations
    • chatbot
  • Communiteq
    • private replies
    • private topics
    • category restrictor
    • always anonymous
    • 少なくとも 10 の非公開プラグイン
「いいね!」 5

その通りです!今後の変更機能を通じてこの変更が進行するにつれて、警告を出すべきでした。これは私たちにとって新しいプロセスであり、今後対応して解決します。当面は、/admin/config/upcoming-changes から enabled_simplified_category_creation を無効化することで、既存のすべてのプラグイン機能を復元できます。

「いいね!」 4

Simplified category setup と、管理 UI で予定されている変更(おそらく「新着情報」項目も)の両方がありました:

この変更について、サイトに表示された際と、安定版ステータスに移行されて自動的に有効化された際(おそらく今週のみ)の両方で通知を受け取っていたはずです。

Kris が言ったように、緩和策はコアで予定されている変更であり、これにより移行の猶予が得られます:

この場合、他にどのような支援が必要だったでしょうか?開発者が準備するために何をする必要があるかについての詳細を、関連するトピックの今後の変更で追加することも可能です。

開発者向けの警告については、dev-xp チームに相談して、次回より良い対策ができるか確認します。


本日中にこれらを修正します。DEV: Move enable_simplified_category_creation to stable by martin-brennan · Pull Request #39212 · discourse/discourse · GitHub を実行した際に、これらのプラグインのいずれも失敗しなかったため、ここでのテストカバレッジが不十分だったはずです。ただし、他のプラグインは失敗しました:

「いいね!」 2

@awesomerobot により、両方のプルリクエストがマージされ、追加の仕様カバレッジも含まれています。

「いいね!」 3

はい、2月3日に受け取りました。

しかし、その時点では、浮動保存ボタンの変更はまだ実装されていませんでした(2月の終わり頃だったと思います)。そのトピックや他の場所で、それらの変更を反映する追加の更新はありませんでした。

以下のいずれかが役立ったでしょう:

  • プラグイン開発者向けにタイムリーな技術アナウンス
  • トピックリストで行われたように、レガシーなプラグインコードがある場合に自動的に旧ロジックにフォールバックする一時的な自動フォールバック機能
  • レガシー機能を保つ一時的なフォールバックコード(フォーム外の入力を検知し、保存が必要な設定に含める)。これにより、 {{#if this.siteSettings.enable_simplified_category_creation}} のような分岐の労力を節約できたはずです。
  • レガシーコードが検知された際のブラウザ開発者コンソール警告
  • 上記のように既知のプラグインの静的スキャン(10分で完了し、見落とされていた公式プラグインさえ見つけました ;))

それは大変感謝されます!

「いいね!」 2