ember 5 アップグレードでサイト不具合

早すぎます!

冬休みと重なってこの変更の告知を見逃してしまい、趣味で利用しているため、このフォーラムをあまり定期的に読んでいませんでした。今日のアップデートでサイトが壊れたことに今日になって気づきました。EMBER_VERSION はすでに無効になっているため、元に戻す方法がなく、Ember についてあまり知らないということもあり、デバッグ警告(ホリデー前に最後にメンテナンスを行った際には表示されなかった)も表示されないため、修正すべき点が何なのかを知る方法もありません。

これは真剣にデータベースを抽出し、ホビイストが開発フォーラムを常に監視できないような状況でも、デフォルトバージョンが実際に安全に使用できる別のフォーラムソリューションに移行することを検討させるほどです。

Ember 5 が何で壊れているのか、なぜ壊れているのか全く分からないのですが、他に解決策を考えられる人はいますか? JavaScript コンソールは役に立ちません。

「いいね!」 2

実際、JavaScriptコンソールは非常に役立ちます。

おそらくstableを好んだかもしれませんが、もう手遅れです。感謝します。

すべてのカスタマイズを削除し、おそらくステージングインスタンスを使用して、それらを1つずつ元に戻し、問題を引き起こしているものを特定し、それらを削除するか、それらに取り組むことをお勧めします。

多くの人気のあるプラグインとテーマコンポーネントはすでに準拠しています。

「いいね!」 2

「Emberが見つかりません」と表示されるだけで、画面は無限のローディングアイコンです。

DigitalOceanのデフォルトの標準バージョンであるDiscourseをインストールしました。どのブランチを選択したいか尋ねられたことは一度もなく、LTSバージョンが適用されると想定していました。2ヶ月以内に機能が壊れるような機能がプッシュされ、必須とされることは、LTSとは見なせません。WordPressやLinuxでは、非LTSリリースであってもそのようなことはしません。DigitalOceanのすべての新しいドロップレットでこれを変更し、ホビイストは避けるべきであるという警告を表示してください。

この回答は気に入らないかもしれませんが、DOはDOが望むことをするので、他の人の手に負えません。ですから、彼らに尋ねるべきです。

そして、DigitalOcean以外のすべての場所では、彼らのインストールを使用しないように常に警告されています。

「いいね!」 3

コンソール内のエラーから、どのテーマコンポーネントでエラーが発生しているか通常は判別できます。エラー全体(エラーを展開して)をここに貼り付けていただけますか?または、可能であれば、フォーラムのURLをここに共有していただけますか(PMでも構いません)?

「いいね!」 3

DOと話す必要がありますね :slight_smile:

とはいえ、標準インストール(DOのバージョンではない)では、tests-passed(デフォルト)はLTSではなく、stableがLTSです。CDCKは、最新バージョンのテストにコミュニティを活用できるため、これをデフォルトにすることを奨励していると思います。無料のソフトウェアを入手することへの当然の対価だと思いますか?しかし、選択肢はあります。

「いいね!」 2

セーフモードが役立つかもしれません。おそらく、破損しているテーマを無効にするだけでよいでしょう。

数年前に何かお手伝いしたことがあったようですね。簡単な修正方法を探そうと思ったのですが、もうあなたのサイトのアカウントを持っていません。

「いいね!」 3

セーフモードは機能するはずですが、試しましたか。そうすれば、問題のテーマやプラグインを特定できます。

追加情報なしでは、お手伝いするのは非常に困難です。

どのテーマを使用していますか? プラグインは? どれが壊れていますか?

「いいね!」 3

Judith様

ご迷惑をおかけして申し訳ありません。:cry: 復旧に集中できるよう、この件は専用のトピックに分けさせていただきました。

何か進捗はありましたでしょうか?:crossed_fingers:

「いいね!」 3

皆さん、ありがとうございます!

問題のあるプラグインは、iPhone への Discourse プッシュ通知を送信するプラグイン(標準の Discourse の方法では機能しない)であることが判明しました。具体的には、@featheredtoastGitHub - featheredtoast/discourse-pushover-notifications: Pushover notifications for Discourse と、私の GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app です。両方の Ember コードは同一で非常にシンプルです。管理画面に数個の追加フィールドがあり、ユーザープロファイルにも1個の追加フィールドがあり、プッシュ通知が既に有効になっているかどうかを確認するチェックがあります。EMBER_VERSION スイッチの廃止により、どの数行が問題であるかを特定するのに役立つ非推奨警告やエラーメッセージが表示されないため、GitHub Copilot に Ember 3 と Ember 5 の間に何が変更されたかについてアドバイスを求め、それらの提案を試しています。何かアイデアがあれば、ぜひお聞かせください。

これは破壊的な変更のプッシュ方法ではないことを改めて強調させていただきます。Discourse には深く失望しています。あらゆる知恵に反するいくつかのポリシー:

  • 非技術者をデフォルトで LTS バージョンではなく tests-passed バージョンに配置すること
  • 公式インストールガイドでより安定したバージョンに切り替える可能性に言及しないことで、これをさらに悪化させている。これは、おそらくそれほど必要としていないフォーラムのインサイダーだけが知っていることである
  • 以前の動作していたバージョンへのロールバックを不可能にすること
  • EMBER_VERSION フラグの意図的な削除により、プロジェクトの後方互換性が2ヶ月未満であることを保証することで、さらにこれを悪化させている。他のプロジェクトでは後方互換性が1年あり、それらのプロジェクトでも古いバージョンにロールバックすることが可能です。
「いいね!」 2

ご自身のプラグインについては、Ember グローバルを使用していることが(唯一の?)問題だと思います。

export default Ember.Component.extend({

これは以下のようにリファクタリングする必要があります。

import Component from "@ember/component";
export default Component.extend({

(クラス構文にリファクタリングする方がさらに良いですが、サイトを復旧させるためには必須ではありません)

ちなみに、ChatGPT はこのようなことを見つけることができます。

「いいね!」 4

Yup、@RGJさんに同意します。「Emberが見つかりません」というエラーに基づくと、最も可能性の高い問題は「ember-global」の非推奨です。詳細については、こちら元の発表からリンクされています)を参照してください。これらのプラグインでは、それがEmber.Componentや一部のEmber.computed.*の呼び出しに使用されているようです。

以下に、簡単なプルリクエストを2つ示します。この修正が行われた後に他の問題が明らかになる可能性もありますが、JavaScriptコードをざっと見たところ、明白な問題は見つかりませんでした。

ロールアウトプロセスに関するフィードバックをありがとうございます!私たちは常に進歩と安定性のバランスを取るよう努めています。今回のロールアウトから得た教訓を、将来のアップグレード/リファクタリングプロジェクトに必ず活かしていきます。

「いいね!」 10

@david さん、ありがとうございます!エラー範囲を狭めるために、現時点では Pushover 通知を無効にし、Discourse FCM Notifications プラグインの最新バージョンを取り込みましたが、新しいビルドでも「Ember not defined」エラーが発生します。

参考までに、Copilot の提案は次のとおりでした。

set / setProperties に関する部分は間違っているようです。これらの関数は Ember 5 でもまだ存在することを確認しました。this._super を super に変更しても機能せず、コンパイル中にエラーメッセージが表示されました。computed の構文も変更されており、現在は元の構文でも Copilot が推奨した構文でもありません。そのため、Ember 5 で他に何が変更された可能性があるのか、他にアイデアがありません。他のプロジェクトでは Ember を使用していません。

他に何かアイデアはありますか?

「いいね!」 3

申し訳ありません、私のミスです。修正しました: Fixup Ember.Component usage by davidtaylorhq · Pull Request #2 · Sprachprofi/discourse-fcm-notifications · GitHub

はい、AIは非本質的な新しいパターン(ネイティブクラス構文、this.set/getなど)と本質的な非推奨の修正を区別するのが難しい場合があると思います。AIの提案は、信頼できるものと無視できるものを判断できる十分なコンテキストがあれば役立ちます。

個人的には、まずhttps://deprecations.emberjs.com/v3.xのような権威あるソースを確認します。

「いいね!」 7

サイトは復旧しました!リアルタイムで修正していただき、本当にありがとうございました!!! とても感謝しています。

@featheredtoast プルリクエストも承認してください。そうすれば、Pushover通知を使用しているフォーラムも安全にアップデートできるようになります。

「いいね!」 5

Pushover通知パッチも本日マージされました :white_check_mark:

「いいね!」 9

このトピックは3日後に自動的に閉じられました。新しい返信はもう許可されていません。