-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC]: publier une config jest #48
Comments
Est-ce qu'on peut imaginer quelque chose plus dans l'esprit de warehouse où on téléchargerait la dernière version de la config, git diff et merge (avec résolution de conflits potentiels) ? Tout ça automatisé dans une commande de CLI. Je pense à la "lib" shadcn/ui qui a une approche copier-coller plutôt que package npm : https://ui.shadcn.com/docs/changelog#diff-experimental. Si toute la config est bien documentée ligne par ligne, tu peux ensuite choisir de garder les lignes qui t'intéressent pas. Sur les enablers, si tous les packages utilisent la même config, on pourrait lancer cette commande sur tous les packages dès qu'on fait une modif de la config jest (même directement dans la CI ?) Sinon un compromis ça serait de télécharger la config telle quelle dans un fichier |
Hmm c'est une approche intéressante en effet. Le problème c'est que pour le moment la CLI est pas très développée, il y a pas mal de taf à faire dessus. |
J'aime bien l'idée de partager la config en lib car on peut avoir pas mal de chose dedans :
|
Je voudrais récolter vos opinions sur la pertinence de rajouter sur ce repo des configs jest et rntl et de les publier sur npm.
Concrètement, on aurait une config expo et une config bare RN exportée et on les utiliserait comme ça
Avantages
Partage des best practices
On partage beaucoup de choses dans les config de jest sur les différents projets. Actuellement on fait des copier coller depuis la bootstrap doc ou alors depuis d’anciens projets (le pire cas potentiellement parce que les configs sont pas forcément bonnes)
En plus de rendre la maintenance plus compliquée, on peut passer à côté de choses très sympas qu’on a implémentées sur les enablers comme sucrase, le clear des mocks, le matcher custom pour les snapshots pour n'en nommer que quelques uns.
Setup et facilité de maintenance
Les projets auraient juste à installer le package et si tout va bien ça devrait rouler. Ensuite s'il y a des nouveautés ils auraient juste à bump le package
Open sourcé
Un autre avantage c’est que ça pourrait être open sourcé, je sais pas trop si ça serait utilisé en dehors de bam mais ça mange pas de pain
Maintenance des enablers
C'est peut-être un des points les plus importants. Aujourd'hui on a une config jest au niveau de chaque module (joconde, doc, cli, warehouse) et c'est un copié collé, du coup si on fait une modif à un endroit il faut la faire partout. Si on avait un package on aurait une seule source de vérité. Cependant on pourrait aussi résoudre ce problème de manière différente, par exemple en mettant la config à la racine et en référençant cette config dans la doc (ce qui serait sans doute une bonne idée, même si on avait le package publié on aurait pas à bump la version partout)
Inconvénients
Malheureusement tout n'est pas rose quand on utilise une lib pour sa config jest (j'en ai fait l'expérience sur un ancien projet):
Ces inconvénients sont modérés par le fait qu’on pourrait toujours cp le code du package publié pour garder les avantages qu’on avait avant en terme de flexibilité et de lisibilité (même si on pourrait galérer pendant des mois avant de prendre l'action de faire un cp plutôt qu'utiliser la lib)
Je ne suis pas moi-même convaincu que ça soit une bonne idée mais je ne suis pas non plus convaincu que ça soit une mauvaise idée donc chaud pour vos retours
The text was updated successfully, but these errors were encountered: