Semaine 19 â Le chemin vers v2 pour ember-scroll-modifiers
#web #emberjs #open_source #ember_scroll_modifiers #addon_v2 #migration_steps #guides
Cette semaine, jâai eu deux jours de travail allouĂ©s Ă lâInitiative. Je suis ravie de dire quâils ont Ă©tĂ© bien utilisĂ©s, mais jâaurais aimĂ© avoir plus de temps pour aborder un pĂ©rimĂštre plus large. Heureusement, il existe un type de tĂąche qui sâadapte parfaitement Ă ~2 ou ~3 jours, et câest la conversion dâun addon communautaire au format v2.
Conseils et apprentissages tirĂ©s dâember-scroll-modifiers #
Lâordre le « plus facile » #
Tout dâabord, lorsque vous souhaitez migrer un addon classique vers v2, je vous encourage fortement Ă gĂ©rer la migration avec plusieurs PR. Vous pourriez avoir lâimpression de perdre du temps, mais je suis convaincue que la confiance que vous et vos reviewers aurez dans la migration en vaut la peine. Puisque ember-scroll-modifiers a une structure assez standard et fournit des modifiers, la rĂ©partition des PR que jâai faite est ma recommandation personnelle (â ïž les commits sont importants) :
- https://github.com/elwayman02/ember-scroll-modifiers/pull/1268 â Utiliser le gestionnaire de paquets pnpm
- https://github.com/elwayman02/ember-scroll-modifiers/pull/1273 â Sâassurer que la CI est dans un Ă©tat dĂ©cent
- https://github.com/elwayman02/ember-scroll-modifiers/pull/1274 â SĂ©parer lâaddon et la dĂ©mo-app en deux packages distincts
- https://github.com/elwayman02/ember-scroll-modifiers/pull/1275 â (Optionnel) DĂ©mĂȘler la dĂ©mo (docs) et les tests
- https://github.com/elwayman02/ember-scroll-modifiers/pull/1276 â Convertir le package de lâaddon Ă v2
đĄ Notez que « DĂ©mĂȘler la dĂ©mo et les tests » nâest pas nĂ©cessairement critique si vos tests sont verts dĂšs le dĂ©part. Dans ember-scroll-modifiers, cette Ă©tape Ă©tait importante car les rĂ©sultats des tests Ă©taient trompeurs : ils Ă©chouaient Ă cause de lâoutil de documentation et non Ă cause de lâaddon lui-mĂȘme.
Attention au guide de portage #
Si vous souhaitez convertir un addon à v2, vous pourriez naturellement consulter « Guide: Porting an Addon to V2 ».
Jâai peut-ĂȘtre dĂ©jĂ mentionnĂ© dans un prĂ©cĂ©dent compte rendu hebdomadaire que la mĂ©thode quâil prĂ©sente est lĂ©gĂšrement diffĂ©rente de la mienne : il propose une façon de sĂ©parer lâaddon et lâapplication de test en une seule Ă©tape, et je pense quâil est bien plus clair de dĂ©placer toute la structure dans un package dâabord, comme je lâai fait dans ce commit, puis de dĂ©placer lâapplication de test ensuite, dans un commit sĂ©parĂ©. Mais câest une prĂ©fĂ©rence personnelle, et ce nâest pas ce que je souhaite vous signaler ici.
Ce qui est important de noter, c’est que, au moment oĂč j’Ă©cris ces lignes, ce guide de portage nâest pas Ă jour avec le dernier blueprint qui gĂ©nĂšre un addon v2 tout frais. Certaines dĂ©pendances ont changĂ©, et la structure de monorepo a Ă©tĂ© abandonnĂ©e. Alors, devez-vous suivre le guide de portage ? Ou devez-vous crĂ©er un nouvel addon quelque part sur votre ordinateur pour Ă©tudier sa structure et faire de mĂȘme ?
pnpm dlx ember-cli@latest addon my-addon -b @ember/addon-blueprint --pnpm
Pour ember-scroll-modifiers… jâai fait un mĂ©lange des deux approches đ (Oui, vous pouvez faire ça aussi đŹ)
Jâai suggĂ©rĂ© Ă Jordan Hawker (lâauteur) de conserver lâapproche monorepo pour une raison : la dĂ©mo-app est basĂ©e sur empress/field-guide, qui est incompatible avec Vite pour le moment. Par consĂ©quent, la dĂ©mo-app ne peut pas ĂȘtre facilement migrĂ©e vers Vite (et ni mettre Ă jour field-guide ni réécrire les docs avec une solution diffĂ©rente ne sont des options simples Ă mettre en oeuvre, en tout cas certainement pas avec mon budget de 2 jours). Et la derniĂšre structure de blueprint dâaddon supprime le monorepo en faveur dâune configuration Vite globale, donc aller dans cette direction Ă©tait potentiellement problĂ©matique.
Jâai suivi lâapproche monorepo dĂ©crite dans le guide de portage, tout en rapprochant le package de lâaddon de ce que fournit le nouveau blueprint dâaddon (par exemple, il utilise les configurations Babel du blueprint au lieu de celles hĂ©ritĂ©es des guides de portage, etc.). LâidĂ©e principale est que chaque fois que le guide de portage disait : installez ceci, ou utilisez ce fichier comme exemple, jâai plutĂŽt regardĂ© ce que fait le blueprint maintenant.
Je crains que ce soit, une fois de plus, mon dernier compte rendu hebdomadaire pour un moment. HĂ©las, je nâaurai aucun jour allouĂ© Ă lâEmber Initiative avant la fin du mois prochain, et ce ne sera encore que quelques jours, donc je ne rĂ©digerai peut-ĂȘtre pas de compte rendu. Je suis assez satisfaite de ce que jâai pu faire, cependant. Quand on mâa notifiĂ©e que je nâavais plus que 2 jours, jâai pu choisir quelque chose qui, je pensais, conviendrait, et je dirais que jâai gagnĂ© mon pari : les PR ne sont pas toutes mergĂ©es pour lâinstant, mais elles sont vertes, documentĂ©es, et toutes prĂȘtes.