Le framework de test JavaScript de Meta rejoint OpenJS – The New Stack

Après avoir publié une mise à jour de son framework de test JavaScript, Jest, Meta a annoncé qu’il effectuerait la transition de la technologie vers la fondation OpenJS.

j’ai parlé avec Rick Hanlon, ingénieur frontend chez Meta et membre de l’équipe principale de React, à propos de la croissance de Jest dans le projet que nous voyons aujourd’hui et de son passage à OpenJS. Hanlon était un contributeur principal de Jest avant de travailler pour Meta, ce qui lui a permis de voir que le projet s’est développé à la fois de l’intérieur et de l’extérieur.

“En 2014, Jest est officiellement devenu open source”, a-t-il déclaré. « De là à 2016 environ, les ingénieurs ont travaillé à temps partiel jusqu’à ce qu’ils décident de constituer une équipe autour de lui. Christophe Nakazawa, qui travaillait pour Meta à l’époque et est toujours un contributeur principal de Jest, l’a complètement remanié. Lui et son équipe ont créé la plupart des fonctionnalités pour lesquelles les gens connaissent vraiment Jest aujourd’hui, telles que le mode montre, la messagerie d’erreur, le rapport d’erreur et la très grande expérience de test.

Hanlon a poursuivi: «Ce travail a duré jusqu’en 2018, date à laquelle je me suis impliqué dans le projet. Dès le début, non seulement avec Jest mais avec les langages précédents que nous avons construits, il y avait une philosophie interne selon laquelle si vous créez quelque chose qui peut être précieux pour la communauté, alors cela devrait être open source.

Comment .jst a évolué vers Jest

Jest est la dernière version d’un framework développé depuis plus de dix ans. Autrefois, lorsque Meta était encore Facebook et était occupé à peaufiner son service de messagerie, .jst était utilisé en interne. Hanlon a expliqué comment Jest est passé d’un langage interne à un projet open source.

“Bien que .jst ait été conçu pour notre plateforme de messagerie en 2011”, a-t-il expliqué, “il s’est rapidement transformé en autre chose au fil des ans. Nous avions vraiment besoin de tests de haute performance, entre autres, et c’est parti de là. Comme il n’était pas directement lié à Facebook, c’était un excellent candidat pour l’open source. De plus, c’était super utile pour tester les applications React et Facebook venait juste d’ouvrir React à cette époque.

Trois ans plus tard, Jest a fait ses débuts en open source et a rapidement gagné des contributeurs et une communauté bouillonnante. En 2018, le Jest Open Collective a été formé et a commencé à collecter des fonds pour que les développeurs extérieurs à Meta contribuent au projet. À ce jour, près de 80 000 $ ont été amassés pour la communauté Jest.

“Cristoph et Meta ont mis en place le collectif ouvert comme moyen de parrainer des employés non-Meta”, a déclaré Hanlon. «Meta eux-mêmes ont contribué au fil des ans au moins 22 000 $ directement au fonds. Ils ont soutenu les responsables de l’open source et nous ont permis de financer des rencontres où les contributeurs peuvent se réunir et se rencontrer, ce qui était formidable.

J’ai demandé à Hanlon pourquoi Jest est devenu tellement plus dynamique après le lancement du collectif ouvert, et sa réponse a été simple. Plus de développeurs et plus de fonds équivalaient à une amélioration significative des fonctionnalités du déjà populaire Jest, y compris les instantanés en ligne et la prise en charge ESM.

Test simplifié

Le slogan de Jest promet des tests “délicieux”. Au cours de notre entretien, j’ai demandé à Hanlon de nous donner un aperçu approfondi de ce que propose Jest qui en fait un tel plaisir pour les développeurs.

“Je pense qu’il y a beaucoup de choses qui le rendent délicieux”, a-t-il répondu. «Je peux parler de ce qui m’a époustouflé quand j’ai vu Jest pour la première fois – et d’abord, c’était la performance. Il a juste fonctionné bien mieux que n’importe quoi d’autre là-bas. Deuxièmement, le mode montre. Il suffit de pouvoir exécuter automatiquement votre test lorsque vous modifiez votre code sans avoir à basculer et à les réexécuter. Il surveille en permanence les modifications de fichiers et exécute automatiquement les tests qui ne concernent que les fichiers modifiés. C’est incroyable pour l’amélioration de la vitesse des développeurs. Enfin, les rapports — il est clair quand les choses échouent et quand les choses réussissent, quels tests sont en cours. Nous mettons beaucoup d’efforts dans des messages d’erreur vraiment clairs afin que les développeurs ne passent pas un temps inutile à les décoder juste pour résoudre un problème.

Hanlon a poursuivi en disant: «La configuration zéro est également un excellent point. Il peut être difficile de tout configurer, de démarrer, de déterminer quels fichiers de test sont lesquels, etc. L’expérience “prête à l’emploi” fonctionne très bien. L’autre chose est [that] Jest est cohérent d’un projet à l’autre. Vous pouvez faire beaucoup de personnalisation, mais cela force en quelque sorte la standardisation à travers le projet. Donc, si vous vous lancez dans deux projets différents qui utilisent Jest, vous comprenez généralement ce qui se passe et vous pouvez commencer à contribuer très rapidement. »

La Fondation OpenJS

Le passage de Jest à la Fondation OpenJS est un pas dans la bonne direction pour la communauté open source, déclare Hanlon. «Ce déménagement sera principalement un déménagement organisationnel. Et avec cela, ce qu’il va pouvoir nous permettre de faire, c’est de grandir en dehors de Meta et de pouvoir augmenter ces chiffres. Ce qui nous permettra à son tour de créer plus de fonctionnalités. De plus, cela nous permettra d’amener des gens qui n’ont jamais contribué à l’open source auparavant à contribuer.

La Fondation OpenJS abrite une multitude d’agrafes JavaScript, notamment Node.js et jQuery. Comme tous les projets lorsqu’ils sont absorbés pour la première fois par OpenJS, Jest est en phase d’incubation et subit une liste de contrôle d’intégration. Une fois le processus d’intégration OpenJS terminé, Jest se retrouvera dans le projet Impact ou At-Large Stage. Le président du Conseil des projets croisés de la Fondation OpenJS, Joe Sepi, a déclaré: «La Fondation OpenJS est le foyer neutre de nombreux projets dans la communauté, et je m’attends à ce que Jest s’épanouisse en tant que nouveau membre de la famille des projets ici. Je crois que le fait de l’avoir sous gouvernance ouverte revigorera sa base de contributeurs, et nous verrons cette base se développer. J’espère également que ses dirigeants s’engageront auprès de notre fondation et du Cross Project Council pour continuer à améliorer la manière dont nous soutenons nos projets et leurs communautés, ainsi que l’écosystème JavaScript dans son ensemble.

Selon Hanlon, la transition permettra à la communauté Jest d’améliorer ses compétences et d’augmenter son nombre. Les projets open source sont faits par la communauté, pour la communauté, et il dit que Jest n’est pas différent.

“Je pense que l’une des choses les plus satisfaisantes pour moi lorsque je travaille sur certains de ces grands projets open source est simplement de pouvoir rencontrer des personnes qui découvrent l’open source et les aider à soumettre leurs premiers changements, ou répondre à des questions et être capable de les soutenir et de les inviter dans la communauté et de les aider dans leur carrière », a-t-il déclaré. “Vous rencontrerez des personnes qui débutent dans la programmation ou qui programment depuis longtemps, et c’est juste une très bonne opportunité de pouvoir rencontrer beaucoup de personnes partageant les mêmes idées.”

Enfin, il a noté que l’équipe open source de Meta a été très utile pour le processus de transition vers OpenJS.

« C’est génial parce que nous avons une équipe complète qui nous soutient, ce qui nous permet de contribuer facilement à l’open source », a-t-il déclaré, « mais nous avons également des communautés spécialisées très différentes au sein de chaque projet. Ce qui a été génial avec Jest, c’est que nous avons pu construire cette communauté autour de Jest, et finalement ils [the community] en quelque sorte juste décollé tout seul.

Image principale via Shutterstock.

Leave a Comment