Mes projets de contribution

Page mise à jour le 21 mai 2022


Mes focus, ce sont principalement les systèmes de documentation, l’accessibilité et la performance web.

Je m’occupe donc de coordonner la création, la maintenance et l’amélioration des systèmes de documentation de WordPress, de Gutenberg et des différents autres projets du CMS.

Je consacre aussi une grande partie de mon temps à améliorer l’accessibilité de Gutenberg (l’un des aspects de l’éditeur qui demande le plus d’efforts de la communauté actuellement).

Depuis quelques mois, je me suis découvert un gros intérêt pour les concepts de qualité logicielle, et de tests logiciels. Je travaille alors également sur les tests automatisés sur WordPress Core et sur Gutenberg.

Du côté de la performance web, j’ai pendant quelques mois aidé à lancer puis coordonné le travail de l’équipe en charge de la performance pour WordPress Core. Il faut dire que cela n’était pas vraiment à mon agenda pour l’année 2022. Mon ancienne team lead à Yoast, Francesca m’a énormément motivé à occuper plus de rôles de responsabilité « visibles » dans la communauté WordPress ; ce qui a été une superbe expérience jusque-là.


Projets de contribution en cours

Implémenter les tests E2E sur WordPress Core

Les tests E2E (End To End) sont des tests automatisés qui s’exécutent dans le contexte d’un utilisateur utilisant une application ou un système. Ils ont pour but de tester divers scénarios d’utilisation de bout en bout afin de s’assurer que le système fonctionne comme prévu, et d’identifier d’éventuels dysfonctionnements.

Alors qu’ils sont bien implémentés sur Gutenberg, ils ne le sont pas encore dans le cœur de WordPress.

L’un des arguments de taille pour les avoir sur WordPress, c’est qu’ils permettront de détecter en amont de nombreux bugs qui surviennent après des mises à jour, et d’anticiper les préoccupations des utilisateurs.

Pour les prochains mois, je vais donc travailler, ensemble avec d’autres contributeurs, sur leur implémentation sur WordPress Core. Les technologies qu’on utilise sont plutôt intéressantes (Jest + Puppeteer); ça s’annonce de ce fait très passionnant.

Update: nous avons récemment décidé de migrer la suite de test de Gutenberg de la stack Jest+Puppeteer à Playwright, projet de migration que je coordonne depuis quelques semaines déjà.


La maintenance de la documentation interne de Gutenberg

Gutenberg, c’est le nom donné au nouveau paradigme qui vise à redéfinir l’expérience de création de contenus et de construction de sites avec WordPress.

Concrètement, c’est un dépôt sur GitHub avec en février 2021 plus de cent mille (108.947 pour être exact) lignes de code. Et de nombreuses parties de cette base de code sont conçues pour être réutilisées ailleurs sur WordPress, ou intégrées dans d’autres technologies.

Il est donc primordial que la documentation interne de Gutenberg soit :

  • existante
  • bien fournie
  • à jour
  • accessible

Je maintiens donc une partie de cette documentation et m’assure qu’elle reste bien à jour avec les évolutions de Gutenberg.


Projets planifiés

À côté des projets ci-dessus sur lesquels je travaille actuellement, il y en a plusieurs autres qui m’intéressent énormément, et que j’aimerais mener à terme ou participer à la concrétisation.

Améliorer l’expérience des nouveaux contributeurs à WordPress

Quand je débutais il y a quelques années avec la contribution à l’Open Source et à WordPress, j’ai été très frustré de ne pas savoir par où commencer, à qui poser des questions. En gros, j’étais perdu.

J’aimerais vivement améliorer cette première expérience pour les futurs contributeurs afin qu’ils disposent d’un cadre de contribution adéquat et encourageant.


Projets terminés

La restructuration de la documentation développeur de l’éditeur de bloc

L’éditeur de bloc est le nouvel éditeur par défaut de WordPress. Il a remplacé l’ancien TinyMCE avec la version 5.0 en décembre 2018.

Bien qu’il soit largement utilisé depuis, sa documentation développeur est restée non intuitive et manquait réellement d’une structure cohérente.

La restructuration de cette documentation a donc été l’un des premiers grands projets que j’ai commencés quand j’ai rejoint Yoast.

La nouvelle documentation a été beaucoup inspirée par celles de technologies Open Source majeures comme Gatsby, Ruby on Rails ; et aussi par le concept de « système de documentation » de Divio.


Misc

Il y a quelques jours, ma collègue à Yoast, Carolina et moi avons discuté de comment automatiser les tests d’accessibilité pour Gutenberg. Plus spécifiquement, nous voulions trouver un moyen de générer automatiquement et périodiquement les blocs de WordPress Core sur des pages ; puis rendre ces pages disponibles publiquement.

Vu que j’ai une expérience plutôt solide avec l’automatisation avec Playwright, je me suis lancé dans la création d’un outil pour résoudre ce problème : JustinyAhin/generated-blocks. Ç’a été un projet très intéressant à créer et je compte bien l’améliorer régulièrement.

Note : Le projet est actuellement hébergé sur mon compte GitHub personnel, mais je compte le déplacer plus tard sur celui de Yoast ou de WordPress.