Semaine 4 – Le début de l’audit des addons
#web #emberjs #emberobserver #publicapi #embercssmodules #emberscopedcss
Cette semaine a été difficile, dans le sens où je vois beaucoup de travail arriver ! Comme d’habitude, je vais garder ce compte rendu hebdomadaire court et me concentrer uniquement sur quelques points notables.
Le début de l’audit des addons #
Nous avons publié ember-vite-codemod pour permettre aux applications Ember classiques de fonctionner avec Vite, et j’ai écrit un article de blog à ce sujet sur le site de Mainmatter. Jusque là, tout va bien. Mais le codemod sera-t-il utilisable sans problème ? Une partie de la réponse dépend des addons présents dans l’applicaiton à transformer. Si un addon v1 (addon Ember classique) est incompatible avec les exigences d’Embroider+Vite, au moins une partie des fonctionnalités casseront.
Comment évaluer le risque qu’une application soit bloquée par un addon ? Nous ne pouvons certainement pas contrôler tous les addons existants, mais il existe un outil précieux : Ember Observer. Ember Observer est un site web qui permet de consulter et de rechercher tous les addons Ember existants et de les trier par score.
Ce qui m’intéresse, c’est le top 100. Comment cette liste est-elle affichée ? Si je vais dans l’onglet réseau de mon navigateur, je peux voir la requête exacte vers l’API publique : https://emberobserver.com/api/v2/addons?filter[top]=true&include=categories&page[limit]=100&sort=ranking.
J’ai créé un simple script Node qui effectue la même requête avec await fetch, puis j’ai utilisé le résultat avec npm view (comme c’est fait dans le codemod) pour séparer la réponse entre les addons v1 et les addons v2.
Le résultat est une liste de 46 addons v1 dans le top 100. Avec l’aide de Chris, je les ai classés en 3 catégories :
- L’addon v1 devrait être compatible avec Embroider+Vite
- Les fonctionnalités de l’addon sont trop liées au monde classique et cet addon n’a pas d’avenir dans Embroider+Vite
- Nous ne sommes pas sûr·es de la compatibilité, la communauté devrait nous aider à tester cet addon et éventuellement le convertir en v2.
Voici le tableau en cours d’élaboration.
Un chemin de migration pour ember-css-modules #
Parmi nos 3 catégories d’addons v1, il y en a une qui nous intéresse particulièrement dans le cadre de l’amélioration d’ember-vite-codemod : « 2. Les fonctionnalités de l’addon sont trop liées au monde classique et cet addon n’a pas d’avenir dans Embroider+Vite ». Si l’un de ces addons est détecté dans le package, nous devons prévenir l’utilisateur·rice. Nous le faisons déjà pour quelques addons comme ember-fetch et ember-cli-mirage, mais nous avons maintenant de nouveaux candidats.
Le problème, c’est qu’avant de dire aux gens de supprimer un addon de leurs dépendances, nous devons leur proposer une alternative. Comment réimplémenter ce que faisait l’addon d’une manière compatible avec le monde de Vite ? Pour l’instant, ce chemin de migration n’existe pas pour ember-css-modules, qui est l’un de nos addons « à supprimer ». Avant de permettre au codemod de le détecter, nous devons tracer ce chemin de migration.
C’est la prochaine étape de mon travail sur l’Ember Initiative. J’ai commencé un dépôt pour présenter une migration possible vers ember-scoped-css.
La vue diff une fois de plus #
Dans le compte rendu hebdomadaire sur le codemod, j’ai expliqué comment nous avons utilisé Beyond Compare pour avoir une vue des différences entre l’application classique et l’application Vite.
J’ai décidé d’adopter la même approche de « vue diff » ici : montrer aux développeur·ses un avant/après en utilisant l’interface GitHub. Voici comment j’ai structuré le dépôt :
- J’ai une branche
ember-css-modulequi contient une application Ember classique simple utilisant ember-css-module. - À partir de cette branche, j’ai créé une deuxième branche où je migre cette application vers ember-scoped-css.
- Dans la branche
main, je n’ai qu’un README qui contient l’URL vers le diff. Sur GitHub, vous pouvez voir le diff entre deux branches avec l’URL :baseURL/Owner/Repository/compare/branch1..branch2.
Maintenant, l’autre grande partie du travail consiste à comprendre et expliquer les différences entre les deux addons. Je ne vais pas entrer dans les détails dans ce compte rendu hebdomadaire, car vous pourrez tout lire lorsque je communiquerai sur le dépôt.
C’est agréable de voir à quel point la communauté est enthousiaste à propos de l’Ember Initiative. Nous avons commencé à communiquer sur le codemod, et nous avons déjà des PR et des issues ouvertes. La partie difficile sur le plan organisationnel sera de prioriser ces nouvelles issues par rapport au travail que nous avons déjà prévu. Supporter Vite dans les anciennes versions d’Ember et fournir des chemins de migration pour tous les addons qui ne sont pas pertinents dans le monde de Vite sont les priorités sur lesquelles nous devons rester concentré·es.