Site cassé suite à la mise à niveau vers ember 5

BEAUCOUP TROP TÔT !

J’ai complètement manqué l’annonce de ce changement car il s’est mêlé aux fêtes d’hiver, et en tant que hobbyiste, je ne lis pas ce forum très régulièrement. Je ne l’ai remarqué qu’aujourd’hui, lorsque la mise à jour a cassé le site. Maintenant, je n’ai aucun moyen de revenir en arrière car EMBER_VERSION est déjà désactivé, et je n’ai aucun moyen d’avancer pour corriger ce qui doit être corrigé car je ne peux pas voir les avertissements de dépréciation (qui ne sont pas apparus la dernière fois que j’ai dû effectuer une maintenance active, avant les fêtes), d’autant plus que je ne connais pas grand-chose à Ember de toute façon.

Cela me fait sérieusement envisager d’extraire la base de données et de passer à une autre solution de forum, une où la version par défaut est réellement sûre à utiliser pour les hobbyistes qui ne peuvent pas surveiller les forums de développement comme un faucon.

Quelqu’un peut-il penser à une autre solution, étant donné que je n’ai aucune idée de ce qui casse Ember 5 ou pourquoi ? La console Javascript n’est pas utile.

2 « J'aime »

En fait, la console JavaScript est généralement très utile.

Peut-être auriez-vous préféré stable, mais il est un peu tard maintenant, j’apprécie.

Je suggère de supprimer toutes vos personnalisations, et peut-être d’utiliser une instance de staging, de les remettre une par une et de déterminer lesquelles causent les problèmes et soit de les abandonner, soit de travailler dessus.

De nombreux plugins et composants de thème populaires sont déjà conformes.

2 « J'aime »

Il dit juste « Ember introuvable », l’écran est une icône de chargement infinie.

J’ai installé la version par défaut et standard de Discourse sur Digital Ocean. À aucun moment on ne m’a demandé quelle branche je voulais, et j’ai supposé que cela me placerait sur une version LTS. Avoir une fonctionnalité majeure qui casse et qui est ensuite rendue obligatoire en moins de 2 mois N’EST PAS ce que je considère comme LTS ; sous Wordpress ou Linux, vous ne feriez même pas cela pour des versions non-LTS. Veuillez changer cela pour toutes les nouvelles instances DigitalOcean et mettre un avertissement indiquant que les amateurs devraient s’en tenir à l’écart.

Vous allez détester cette réponse, mais DO fait ce que DO veut et cela échappe aux autres. Vous devriez donc leur demander.

Et partout en dehors de DigitalOcean, il est toujours conseillé de ne pas utiliser leur installation.

3 « J'aime »

D’après l’erreur dans la console, vous pouvez généralement déterminer de quel composant de thème l’erreur a été émise. Pouvez-vous coller l’intégralité de l’erreur ici (en développant l’erreur), ou si possible, accepteriez-vous de partager l’URL de votre forum ici (ou par message privé si vous préférez) ?

3 « J'aime »

Vous devez avoir une discussion avec DO alors :slight_smile:

Cela dit, dans l’installation standard (pas la version de DO), tests-passed (par défaut) n’est pas LTS, stable l’est. Je crois que CDCK essaie d’encourager ce défaut car il permet à la communauté de tester la dernière version. Je pense que c’est une juste compensation pour obtenir un logiciel gratuit ? Mais vous avez le choix.

2 « J'aime »

Le mode sans échec pourrait aider. Peut-être pouvez-vous simplement désactiver les thèmes qui sont cassés.

Je vois que j’ai fait quelque chose pour vous il y a quelques années. J’allais voir si je pouvais trouver une solution rapide, mais je n’ai plus de compte sur votre site.

3 « J'aime »

Le mode sans échec devrait fonctionner, quoi qu’il en soit, l’avez-vous essayé, puis vous pourrez isoler le thème ou le plugin problématique.

Il est très difficile d’aider sans informations supplémentaires.

Quels thèmes utilisez-vous ? Quels plugins ? Lequel est défectueux ?

3 « J'aime »

Salut @Judith

Je suis vraiment désolé que cela vous surprenne. :cry: J’ai séparé cela dans son propre sujet dédié afin que nous puissions nous concentrer sur votre rétablissement.

Avez-vous fait des progrès ? :crossed_fingers:

3 « J'aime »

Merci à tous !

J’ai identifié les plugins défectueux comme étant ceux responsables de l’envoi des notifications push Discourse aux iPhones (où la méthode standard de Discourse ne fonctionne pas), à savoir le plugin GitHub - featheredtoast/discourse-pushover-notifications: Pushover notifications for Discourse de @featheredtoast ainsi que mon plugin GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app . Le code Ember est identique dans les deux et très simple, juste quelques champs supplémentaires dans l’administration et un champ supplémentaire dans le profil utilisateur, avec des vérifications pour savoir si les notifications push sont déjà actives ou non. Étant donné que la suppression du commutateur EMBER_VERSION signifie que je ne peux voir aucun avertissement de dépréciation ou message d’erreur qui pourrait m’aider à identifier quelle ligne parmi ces quelques lignes pose problème, j’ai demandé à Github Copilot des conseils sur ce qui aurait pu changer entre Ember 3 et Ember 5 et j’essaie ces suggestions. Si vous avez des idées, je suis tout ouïe.

Je tiens juste à réitérer que ce n’est pas ainsi qu’un changement majeur devrait être déployé et je suis profondément déçu par Discourse. Plusieurs politiques vont à l’encontre de toute logique :

  • mettre des personnes non techniques sur la version tests-passés plutôt que LTS par défaut
  • aggraver cela en ne mentionnant même pas la possibilité de se mettre sur une version plus stable dans le guide d’installation officiel ; cela n’est connu que des initiés du forum qui en ont probablement moins besoin
  • rendre impossible le retour à une version antérieure et fonctionnelle
  • aggraver cela en garantissant également que la compatibilité ascendante du projet est inférieure à deux mois, par la suppression délibérée du drapeau EMBER_VERSION. D’autres projets ont une compatibilité ascendante d’un an, et ce sont des projets où il est également possible de revenir à des versions plus anciennes.
2 « J'aime »

Pour votre propre plugin, je pense que le (seul ?) problème est que vous utilisez une globale Ember
export default Ember.Component.extend({
qui devrait être refactorisée en

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

(Il serait encore mieux de la refactoriser en syntaxe de classe, mais ce n’est pas nécessaire pour que votre site fonctionne à nouveau)

ChatGPT est capable de repérer des choses comme ça, d’ailleurs.

4 « J'aime »

Oui, je suis d’accord avec @RGJ. D’après l’erreur « Ember introuvable » mentionnée ci-dessus, le problème le plus probable est la dépréciation de « ember-global ». Plus de détails ici (lien depuis l’annonce originale). Dans ces plugins, il semble que cela soit utilisé pour Ember.Component, ainsi que pour certains appels Ember.computed.*.

Voici quelques PR rapides. Il est possible qu’il y ait d’autres problèmes qui se révéleront après cette correction, mais je ne vois rien d’évident en parcourant le code JS.

Merci pour vos commentaires sur le processus de déploiement ! Nous nous efforçons constamment de trouver le bon équilibre entre progrès et stabilité. Nous tirerons certainement parti de ce que nous avons appris de ce déploiement pour les futurs projets de mise à niveau/refactoring.

10 « J'aime »

Merci @david ! J’ai désactivé les notifications Pushover pour le moment afin de réduire l’espace d’erreur et j’ai intégré la dernière version du plugin Discourse FCM Notifications, mais une nouvelle compilation me donne toujours une erreur "Ember not defined".

Pour information, la suggestion de Copilot était :

La partie concernant set / setProperties semble être erronée - j’ai vérifié que ces fonctions existent toujours dans Ember 5. Changer this._super en super n’a pas non plus fonctionné, cela a donné un message d’erreur lors de la compilation. La syntaxe computed a également changé maintenant, elle n’est actuellement ni l’originale ni celle recommandée par Copilot. Je suis donc à court d’idées sur ce qui a pu changer dans Ember 5. Je n’utilise pas Ember dans mes autres projets.

D’autres idées ?

3 « J'aime »

Veuillez m’excuser, c’est de ma faute - j’ai manqué un endroit :facepalm:. Ceci devrait le faire : Fixup Ember.Component usage by davidtaylorhq · Pull Request #2 · Sprachprofi/discourse-fcm-notifications · GitHub

Oui, je pense que l’IA peut avoir du mal à différencier les nouveaux modèles non essentiels (comme la syntaxe de classe native, this.set/get, etc.) des corrections de dépréciation essentielles. Les suggestions de l’IA peuvent toujours être utiles, mais seulement si vous avez suffisamment de contexte pour savoir quoi faire confiance/ignorer.

Personnellement, j’irais toujours d’abord à une source faisant autorité comme https://deprecations.emberjs.com/v3.x.

7 « J'aime »

Le site est de nouveau opérationnel ! Merci beaucoup de m’avoir aidé à résoudre ce problème en temps réel !!! J’apprécie vraiment.

@featheredtoast veuillez également accepter la pull request afin que les forums utilisant les notifications Pushover puissent également être mis à jour en toute sécurité.

5 « J'aime »

Les correctifs de notification Pushover sont également fusionnés à compter d’aujourd’hui :white_check_mark:

9 « J'aime »

Ce sujet a été automatiquement fermé après 3 jours. Les nouvelles réponses ne sont plus autorisées.