Semaine 5 – Entre améliorations du codemod et chemins de migration
#web #emberjs #backwardCompatibility #embercssmodules #emberscopedcss #vite #vitest #snapshotTesting
Cette semaine a été très productive. Nous avons le support de Vite pour Ember 3.28, le chemin de migration de ember-css-modules vers ember-scoped-css est désormais clair, et nous avons corrigé quelques problèmes dans ember-vite-codemod.
L’Ember Initiative a commencé il y a un mois, et nous avons déjà atteint quelques objectifs critiques. Si vous souhaitez nous voir continuer, merci de soutenir l’initiative. Celle-ci vise à sécuriser l’écosystème Ember sur le long terme avec un développement et des améliorations continus. Contactez Mainmatter pour nous soutenir et peser dans les priorités de notre équipe.
Documenter : une bonne façon de soulever des problèmes #
Ce qui est intéressant dans la documentation d’une procédure avec un exemple minimaliste, c’est qu’il faut être capable de construire cet exemple soi-même. Si on veut dire aux développeur·ses d’arrêter d’utiliser ember-css-modules parce qu’il est incompatible avec Vite, on doit aussi leur expliquer comment migrer vers une autre solution et, par conséquent, effectuer cette migration soi-même pour s’assurer que le chemin est valide.
Chris Manson a suggéré que notre recommandation devrait être de remplacer ember-css-modules par ember-scoped-css. Il l’a suggéré parce qu’il sait avec certitude que cette solution permet une migration fichier par fichier, ce qui est une exigence absolue pour migrer une grande base de code en parallèle du développement en production. Il le sait parce qu’il a déjà expérimenté cette solution dans un projet passé auquel Mainmatter a contribué. Mais, et c’est intéressant, les couches de complexité de ce projet passé n’ont pas révélé les problèmes que mon exemple bien plus simple a soulevés.
Lorsque j’ai implémenté un « dépôt guide » pour expliquer aux gens comment migrer d’un addon à un autre, j’ai réalisé que les deux addons avaient leurs propres bizarreries, et déterminer qui faisait quoi de travers a été un exercice délicat. Finalement, une session en binôme avec Chris a conduit à une nouvelle option dans ember-scoped-css pour améliorer la façon dont il interagit avec d’autres addons comme ember-css-modules. Ce n’est qu’alors que j’ai pu finaliser le guide de migration.
Les tests de snapshot dans Vitest : une nouvelle définition de « facile » #
Je n’ai pas utilisé les tests de snapshot très souvent dans ma carrière, donc je n’ai pas une vue d’ensemble précise des outils disponibles. Ce que je peux dire avec certitude, c’est que la simplicité de Vitest est tout simplement hors compétition.
La bibliothèque inclut une API de snapshot prête à l’emploi. Cette API offre une fonctionnalité très intéressante, les snapshots en ligne, qui génère le résultat du snapshot directement dans le test sous forme de chaîne de caractères. C’est une solution très lisible pour les petits objets, et ça fonctionne exactement comme les snapshots classiques générés dans un fichier séparé.
De plus, la CLI permet de mettre à jour le snapshot en appuyant sur u pendant la surveillance des tests — car Vitest surveille vos tests — ce qui est incroyablement pratique et facile à utiliser.
Au moment où j’écris ces lignes, la dernière version d’Ember est la 6.x. Ember 3.28 a trois versions majeures d’écart, elle a été publiée il y a plusieurs années, et elle supporte désormais Vite. C’est ça, que la communauté Ember entend par « support ». C’est une étape très importante de franchie, et j’espère qu’elle encouragera les développeur·ses travaillant avec d’anciennes versions à tracer leur chemin vers Vite et à adopter toutes les pratiques modernes étape par étape.