Website defekt wegen Ember 5 Upgrade

VIEL ZU FRÜH!

Ich habe die Ankündigung dieser Änderung völlig verpasst, da sie mit den Weihnachtsfeiertagen zusammenfiel, und als Hobbyist lese ich dieses Forum nicht sehr regelmäßig. Ich habe es erst heute bemerkt, als das heutige Update die Seite kaputt gemacht hat. Jetzt habe ich keine Möglichkeit mehr zurückzukehren, da EMBER_VERSION bereits deaktiviert ist, und ich habe keine Möglichkeit, nach vorne zu schauen, um zu beheben, was auch immer behoben werden muss, da ich die Deprecation Warnings nicht sehen kann (die beim letzten Mal, als ich aktive Wartung durchführen musste, vor den Feiertagen, nicht angezeigt wurden), geschweige denn, dass ich sowieso viel über Ember weiß.

Das bringt mich ernsthaft dazu, darüber nachzudenken, die Datenbank zu extrahieren und zu einer anderen Forenlösung zu wechseln, bei der die Standardversion für Hobbyisten, die die Entwicklerforen nicht wie einen Falken beobachten können, sicher zu verwenden ist.

Kann jemand eine andere Lösung finden, da ich keine Ahnung habe, was Ember 5 kaputt macht oder warum? Die Javascript-Konsole ist nicht hilfreich.

2 „Gefällt mir“

Tatsächlich ist die JavaScript-Konsole normalerweise sehr hilfreich.

Vielleicht hättest du lieber stable bevorzugt, aber jetzt ist es etwas spät, ich schätze es.

Ich schlage vor, alle deine Anpassungen zu entfernen und vielleicht eine Staging-Instanz zu verwenden, sie alle nacheinander wieder einzufügen und herauszufinden, welche die Probleme verursachen, und entweder diese zu verwerfen oder daran zu arbeiten.

Viele beliebte Plugins und Theme Components sind bereits konform.

2 „Gefällt mir“

Es steht nur „Ember not found“, der Bildschirm ist ein endloses Ladesymbol.

Ich habe die Standardversion von Discourse von Digital Ocean installiert. Zu keinem Zeitpunkt wurde ich gefragt, welchen Branch ich möchte, und ich ging davon aus, dass dies mich auf eine LTS-Version bringen würde. Eine Funktion, die alles kaputt macht, wird innerhalb von 2 Monaten veröffentlicht und dann zur Pflicht gemacht, ist NICHT das, was ich als LTS bezeichne; bei WordPress oder Linux würdest du das nicht einmal für Nicht-LTS-Releases tun. Bitte ändern Sie dies für alle neuen DigitalOcean-Droplets und fügen Sie eine Warnung hinzu, dass Hobbyisten sich fernhalten sollten.

Sie werden diese Antwort hassen, aber DO macht, was DO will, und es liegt nicht in der Hand anderer. Sie sollten das also von ihnen verlangen.

Und überall außerhalb von DigitalOcean wird immer davor gewarnt, deren Installation zu verwenden.

3 „Gefällt mir“

Aus dem Fehler in der Konsole können Sie normalerweise erkennen, aus welcher Theme-Komponente der Fehler ausgegeben wurde. Können Sie den gesamten Fehler hier einfügen (den Fehler erweitern) oder, falls möglich, Ihre Forum-URL hier (oder per PM, wenn Sie möchten) mitteilen?

3 „Gefällt mir“

Sie müssen dann ein Wort mit DO wechseln :slight_smile:

Das gesagt, in der Standardinstallation (nicht die DO-Version) ist tests-passed (der Standard) nicht LTS, stable ist es. Ich glaube, CDCK versucht, diesen Standard zu fördern, da er die Community nutzt, um die neueste Version zu testen. Ich denke, das ist eine angemessene Gegenleistung dafür, kostenlose Software zu erhalten? Aber Sie haben die Wahl.

2 „Gefällt mir“

Der abgesicherte Modus könnte helfen. Vielleicht können Sie einfach die Themes deaktivieren, die fehlerhaft sind.

Ich sehe, dass ich vor einigen Jahren etwas für Sie getan habe. Ich wollte sehen, ob ich eine schnelle Lösung finden kann, aber ich habe kein Konto mehr auf Ihrer Website.

3 „Gefällt mir“

Der abgesicherte Modus sollte funktionieren, haben Sie das trotzdem versucht? Dann können Sie das Problem auf das Theme oder das Plugin eingrenzen.

Es ist sehr schwierig, ohne zusätzliche Informationen zu helfen.

Welche Themes verwenden Sie? Welche Plugins? Welches ist defekt?

3 „Gefällt mir“

Hallo @Judith

Es tut mir wirklich leid, dass das für dich überraschend kam. :cry: Ich habe dies in ein eigenes Thema ausgelagert, damit wir uns darauf konzentrieren können, dich wieder zum Laufen zu bringen.

Hast du schon Fortschritte gemacht? :crossed_fingers:

3 „Gefällt mir“

Vielen Dank an alle!

Ich habe die fehlerhaften Plugins als die identifiziert, die für den Versand von Discourse-Push-Benachrichtigungen an iPhones verantwortlich sind (wo der Standardweg von Discourse nicht funktioniert), nämlich @featheredtoast’s GitHub - featheredtoast/discourse-pushover-notifications: Pushover notifications for Discourse sowie meine GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app. Der Ember-Code ist in beiden identisch und sehr einfach, nur ein paar zusätzliche Felder im Admin-Bereich und ein zusätzliches Feld im Benutzerprofil, mit Prüfungen, ob Push-Benachrichtigungen bereits aktiv sind oder nicht. Da der Wegfall des EMBER_VERSION-Schalters bedeutet, dass ich keine Deprecation-Warnungen oder Fehlermeldungen sehen kann, die mir helfen könnten, einzugrenzen, welche dieser wenigen Zeilen ein Problem darstellt, habe ich Github Copilot um Rat gefragt, was sich zwischen Ember 3 und Ember 5 geändert haben könnte, und ich probiere diese Vorschläge aus. Wenn Sie Ideen haben, bin ich ganz Ohr.

Ich möchte nur noch einmal betonen, dass dies nicht die Art und Weise ist, wie eine Breaking Change durchgedrückt werden sollte, und ich bin zutiefst enttäuscht von Discourse. Mehrere Richtlinien, die gegen jede Vernunft verstoßen:

  • Nicht-technische Leute standardmäßig auf die Tests-Bestanden-Version statt auf die LTS-Version setzen
  • Dies noch dadurch verschlimmern, dass in der offiziellen Installationsanleitung nicht einmal die Möglichkeit erwähnt wird, sich auf eine stabilere Version zu setzen; dies wissen nur Insider des Forums, die es vermutlich weniger brauchen
  • Die Rückkehr zu einer früheren, funktionierenden Version unmöglich machen
  • Dies noch dadurch verschlimmern, dass die Abwärtskompatibilität des Projekts durch die bewusste Entfernung des EMBER_VERSION-Flags auf weniger als zwei Monate garantiert wird. Andere Projekte haben eine Abwärtskompatibilität von einem Jahr, und das sind Projekte, bei denen es auch möglich ist, zu älteren Versionen zurückzukehren.
2 „Gefällt mir“

Für Ihr eigenes Plugin ist meiner Meinung nach das (einzige?) Problem, dass Sie ein Ember-Global verwenden

export default Ember.Component.extend({

was umgestaltet werden sollte zu

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

(Es wäre sogar besser, es in Klassensyntax umzugestalten, aber das ist nicht notwendig, um Ihre Website wieder zum Laufen zu bringen)

ChatGPT kann übrigens solche Dinge erkennen.

4 „Gefällt mir“

Ja, ich stimme @RGJ zu. Basierend auf dem oben erwähnten Fehler „Ember not found“ ist das wahrscheinlichste Problem die Deprecation von „ember-global“. Weitere Details dazu finden Sie hier (verlinkt von der ursprünglichen Ankündigung). In diesen Plugins scheint dies für Ember.Component und auch für einige Ember.computed.*-Aufrufe verwendet zu werden.

Hier sind ein paar schnelle PRs. Es ist möglich, dass nach Behebung dieses Problems weitere Probleme auftreten, aber beim Überfliegen des JS-Codes sehe ich nichts Offensichtliches.

Vielen Dank für das Feedback zum Rollout-Prozess! Wir arbeiten ständig daran, die richtige Balance zwischen Fortschritt und Stabilität zu finden. Wir werden auf jeden Fall aus diesem Rollout lernen und das Gelernte auf zukünftige Upgrade-/Refactoring-Projekte anwenden.

10 „Gefällt mir“

Danke @david! Ich habe Pushover-Benachrichtigungen vorerst deaktiviert, um den Fehlerbereich zu reduzieren, und die neueste Version des Discourse FCM Notifications-Plugins eingezogen, aber ein neuer Build gibt mir immer noch den Fehler „Ember not defined“.

Fwiw, der Copilot-Vorschlag war:

Der Teil über set / setProperties scheint falsch zu sein – ich habe überprüft, ob diese Funktionen in Ember 5 noch existieren. Auch das Ändern von this._super zu super hat nicht funktioniert und gab eine Fehlermeldung während der Kompilierung. Die Computed-Syntax hat sich ebenfalls geändert, sie ist derzeit weder die ursprüngliche noch die von Copilot empfohlene. Daher gehen mir die Ideen aus, was sich in Ember 5 sonst noch geändert haben könnte. Ich verwende Ember in keinem meiner anderen Projekte.

Noch weitere Ideen?

3 „Gefällt mir“

Tut mir leid, das war mein Fehler – ich habe eine Stelle übersehen :facepalm:. Das hier sollte es tun: Fixup Ember.Component usage by davidtaylorhq · Pull Request #2 · Sprachprofi/discourse-fcm-notifications · GitHub

Ja, ich denke, KI kann Schwierigkeiten haben, zwischen nicht wesentlichen neuen Mustern (Dinge wie native Klassensyntax, this.set/get usw.) und wesentlichen Deprecations-Korrekturen zu unterscheiden. Die KI-Vorschläge können immer noch nützlich sein, aber nur, wenn Sie genügend Kontext haben, um zu wissen, was Sie vertrauen/ignorieren können.

Persönlich würde ich immer zuerst eine maßgebliche Quelle wie https://deprecations.emberjs.com/v3.x aufsuchen.

7 „Gefällt mir“

Die Seite ist jetzt wieder online! Vielen Dank, dass Sie mir geholfen haben, das in Echtzeit zu beheben!!! Ich weiß das wirklich zu schätzen.

@featheredtoast bitte akzeptiere auch den Pull-Request, damit Foren, die Pushover-Benachrichtigungen verwenden, ebenfalls sicher aktualisiert werden können.

5 „Gefällt mir“

Pushover-Benachrichtigungs-Patches werden ebenfalls ab heute zusammengeführt :white_check_mark:

9 „Gefällt mir“

Dieses Thema wurde nach 3 Tagen automatisch geschlossen. Neue Antworten sind nicht mehr möglich.