Discourse va bientôt mettre à jour sa version du framework Javascript Ember de la version 3 à la version 5. La grande majorité du travail de préparation est terminée, et de nombreux sites fonctionnent déjà sous Ember 5 (y compris Meta !). ![]()
Cette mise à niveau est disponible dès maintenant derrière un indicateur de fonctionnalité ! C’est le réglage par défaut pour les installations Discourse auto-hébergées à partir du 10 janvier. Initialement, le support d’Ember 3 restera disponible via un indicateur, mais sera supprimé au cours du premier trimestre 2024.
Sur notre hébergement géré discourse.org, nous procéderons à un déploiement progressif de l’indicateur au cours des deux prochains mois :
| Date de mise à niveau | |
|---|---|
| Basic | 2023-12-07 |
| Free | 2023-12-12 |
| Pro | 2024-01-15 |
| Business | 2024-01-22 |
| Enterprise | (au cas par cas) |
Qu’est-ce que cela signifie pour moi et mon site ?
Si vous utilisez Discourse sans thèmes, plugins ou composants de thème supplémentaires… vous êtes prêt ! Pas besoin de lever le petit doigt, ni de vous en soucier.
De même, si vous utilisez uniquement des thèmes/plugins officiels, nous avons ce qu’il vous faut ! Nous nous assurerons que tous nos thèmes, composants de thème et plugins officiels sont préparés et prêts pour la mise à niveau.
Pour ceux qui utilisent des personnalisations tierces, leurs développeurs devraient apporter les modifications nécessaires pour que vous puissiez continuer à les utiliser de manière transparente tout au long de cette transition.
Cependant, si vous avez des thèmes, des composants de thème ou des plugins personnalisés que vous avez créés ou commandés pour vos sites, alors ce message est pour vous ! Nous vous expliquerons comment identifier et résoudre les problèmes avant la mise à niveau.
Identification des problèmes
Tous les problèmes de mise à niveau liés à Ember 5 peuvent être identifiés avant la mise à niveau en vérifiant l’utilisation des API obsolètes. Dans les versions récentes de Discourse (à partir de Discourse 3.2.0.beta4-dev), ces dépréciations critiques déclencheront une bannière d’avertissement pour les administrateurs :
Vous pouvez trouver plus d’informations sur les dépréciations déclenchées dans la console du développeur du navigateur. Il est généralement conseillé de résoudre toutes les dépréciations que vous voyez. Mais pour cette mise à niveau de version Ember, les points clés à résoudre sont :
-
discourse.modal-controllers(voir ce sujet pour plus d’informations) -
toutes les dépréciations Ember (c’est-à-dire celles dont les identifiants ne sont pas
-discourse.)
Lors de l’impression des dépréciations dans la console, Discourse tente d’identifier le thème/plugin pertinent.
Pour les développeurs et les fournisseurs d’hébergement, nous avons mis à disposition quelques outils pour identifier les dépréciations en masse :
-
Lors de l’exécution des tests QUnit, un rapport est imprimé à la fin avec une liste de toutes les dépréciations non résolues. Dans GitHub actions, une version markdown de ceci est ajoutée au résumé du workflow.
-
Pour les fournisseurs d’hébergement, nous avons le plugin discourse-deprecation-collector qui incrémente les compteurs prometheus chaque fois que des dépréciations sont rencontrées en production.
Résolution des dépréciations
En général, le message de la console inclura une description du problème et les étapes nécessaires pour le résoudre. Dans certains cas, ils renverront vers des ressources externes comme le site dépréciations Ember ou Discourse Meta.
Si quelque chose n’est pas clair, n’hésitez pas à poster ci-dessous ou dans un sujet Dev dédié et nous ferons de notre mieux pour vous aider.
Tests sur Ember 5
Pour tester sur Ember 5 dans un environnement de développement local, vous pouvez démarrer notre helper ember-cli avec la variable d’environnement EMBER_VERSION. Par exemple :
EMBER_VERSION=5 bin/ember-cli -u
Pour confirmer que tout fonctionne comme prévu, vérifiez la version Ember que Discourse affiche dans la console du navigateur.
En production, vous pouvez obtenir le même résultat en ajoutant EMBER_VERSION: 5 à la section env: de votre fichier app.yml.




