Pendant le dernier WordCamp Paris, j’ai eu la chance et le plaisir de présenter une conférence, mais aussi un atelier et de participer à l’open-bar contributif. Il est ici question de l’atelier que j’ai proposé, avec un retour complet sur le sujet :
La revue de thèmes WordPress : Méthodes & outils
Cet atelier était à destination des auteur·es de thèmes voulant mettre à disposition leur thème sur le répertoire WordPress.org comme des personnes souhaitant passer en revue par elle-mêmes leur thème premium ou sur-mesure.
Malgré quelques difficultés techniques, cet atelier c’est plutôt bien passé en général et je me suis un peu mis dans le stress en réalisant – en partie – une revue de thème officiel en live. Belle expérience 🙂
Le thème que j’ai obtenu en review (c’est aléatoire donc ce fut un peu le moment incertain de la conférence) est maintenant disponible sur le répertoire officiel WordPress.org. Il s’agit du thème Porpok. Je vais me référer à cette review tout au long de cet article.
@AudrasJb hey hey super ton atelier sur dépôt/check de thème, ça donne envie de tenter l'expérience ! Ainsi que ta conf, passionnante ! D'ailleurs, tu penses publier tes slides ?!
— Tagadame (@Tagadame) March 12, 2018
Merci @Tagadame et voilà : l’article est là ! Voyons donc comment se passe un revue de thèmes sur WordPress.org 🙂
(les slides et la vidéo de l’atelier sont tout en bas de l’article)
Maintenant, entrons dans le vif du sujet.
Comment sont gérés les thèmes sur WordPress.org ?
En quelques points, on peut dire que :
- Cela ne se passe pas exactement comme pour les extensions
- Après soumission, un ticket est automatiquement ouvert sur themes.trac.wordpress.org.
- Le circuit de validation est assez long : environ 3 mois
- Le suivi des reviewers est assuré publiquement sur le ticket de chaque thème
Le processus de validation des thèmes sur l’écosystème WordPress
- Une fois le thème téléversé, un ticket est automatiquement créé
- Le ticket est placé en liste d’attente et un·e reviewer lui est attribué
- Un·e reviewer fait sa review, demande des corrections et une fois que tout est ok : approve
- Le ticket passe alors chez un·e team review lead qui demande des corrections éventuelles puis le valide
- Le thème passe live sur w.org 🎉 🙂
Que vérifie-on lors d’une revue de thème ?
Les checks réalisés sont classés suivant trois niveaux de criticité, les éléments marqués comme étant required étant des conditions obligatoires pour la validation du thème.
- Required
- Licence : tout ce qui est utilisé par le thème doit être compatible GPL
- Crédits des assets / liens /
- Respect des données privées
- Code : respect des WordPress Coding Standards
- Sécurité : toute donnée saisie doit contenir les echappements nécessaires
- Documentation : conventions de nommage des fonctions avec préfixes contenant le nom du thème
- Internationalisation : toutes les chaînes de caractères doivent être traduisibles et le thème doit être compatible avec Translate.w.org
- Tests unitaires de contenus critiques : pas de bug majeur lors du test du thème avec le jeu de données de test (voir la section dédiée aux outils, ci-après)
La liste complète des éléments requis est disponible sur le handbook de la Theme Review Team.
- Recommended
- Code / fonctionnalités / WPCS
- Styles / scripts
- Tests unitaires de contenus majeurs
- Reviewer notes
- Internationalisation (petits bugs mineurs)
- Conseils design, ergonomie et accessibilité
- Documentation correcte des fonctions utilisées
- Tests unitaires de contenus mineurs
Attention, si plus de 3 familles d’erreurs de type required sont décelées, le ticket sera directement fermé, et l’auteur devra soumettre à nouveau son thème. S’il y en a moins de 3, l’auteur devra les corriger avant que le thème ne puisse être approuvé par un reviewer.
Les outils du reviewer de thèmes
- Unit Test Data : il s’agit d’un jeu de données de test permettant de vérifier toutes les fonctionnalités natives de mis en forme des contenus sur WordPress. Ce jeu de données est régulièrement mis à jour et il est disponible à l’adresse suivante : https://codex.wordpress.org/Theme_Unit_Test
- WP_DEBUG mode : il est évident que les thèmes WordPress doivent être vérifiés en mode WP_DEBUG, afin d’afficher les erreurs et avertissements.
- Theme Check plugin : cette extension permet de donner une alerte sur les portion de code qui ne respectent pas les WordPress Coding Standards.
- Theme Sniffer plugin : une extension qui fait le même job que Theme Check mais de façon plus complète. Cette extension permet d’aller plus loin sur le respect des WPCS et en cas de doute, elle affiche des warnings importants pour le reviewer afin de lui permettre d’aller vérifier manuellement la conformité du code source du thème.
- Query Monitor plugin : permet de monitorer les requêtes faites en base de données par les différentes fonctions et boucles du thème.
- Debug Bar plugin : permet d’afficher en back-office et en front office une barre de déboguage utile pour vérifier la conformité du thème.
- Log Deprecated Notices plugin : affiche les éventuelles fonctions ou portions de code dépréciées.
- Monster Widget plugin : permet d’afficher l’ensemble des widgets disponibles dans le cœur WordPress sur une ou plusieurs zones de widgets. Indispensable pour tester la conformité du thème avec les widgets natifs.
- WordPress Beta Tester plugin : permet de disposer d’une instance WordPress à jour du dernier build de version du cœur WordPress. Nous testons les nouveau thèmes soumis avec WordPress 4.9.x et WordPress 5.0 dans sa dernière version de développement.
- Regenerate Thumbnails plugin : une extension bien connue permettant de régénérer les tailles d’images après récupération du jeu de données de tests unitaires.
Comment devient-on reviewer ?
Il suffit de se rendre sur cette page, d’être connecté avec son identifiant WordPress.org et de cliquer sur le bouton 🙂
Attention, ne le faites qu’après avoir bien lu complètement le handbook de la Theme Review Team !
Comment se déroule une revue de thème ?
Une fois le fameux bouton cliqué, un thème vous sera automatiquement attribué et vous serez redirigé vers le ticket Trac associé.
La première chose à faire est très simple : dire bonjour à l’auteur du thème et lui dire que vous aller commencer la review 🙂
Vous avez 7 jours pour effectuer votre review.
Les étapes sont grossièrement les suivantes :
- Télécharger le thème (le lien de téléchargement se trouve dans le ticket, bien prendre la dernière version s’il y en a plusieurs).
- En local, mettre en place une installation WordPress (dernière version évidement).
- Installer et activer toutes les extensions listées ci-dessus.
- Importer les données du jeu de tests unitaires avec l’importateur WordPress natif.
- Installer et activer le thème.
- Régénérer les thumbnails.
- Aller dans Apparence > Theme Check et lancer les checks automatiques. Récupérer les erreurs et les lister dans un fichier séparé pour pouvoir les réutiliser sur le compte-rendu.
- Aller dans Apparence > NS Theme Check et lancer les checks automatiques poussés. Récupérer les erreurs et les lister dans un fichier séparé pour pouvoir les réutiliser sur le compte-rendu. En cas de doute sur une erreur remontée, parcourir le code concerné dans les fichiers du thème pour vérifier si ces points sont OK ou KO.
- Aller dans le Customizer et paramétrer tous les éventuels réglages spécifiques de ce thème. Vérifier que tout roule en front.
- Aller dans les Réglages de lecture et paramétrer la page d’accueil pour afficher une page spécifique (la homepage prévue par les données de tests unitaires) puis les articles du blog. Vérifier que tout est ok dans les deux cas.
- Aller dans les Réglages des permaliens pour configurer des jolis permaliens (URL formée avec le titre du contenu) et vérifier que la navigation ne casse pas en frontal.
- Aller dans les réglages généraux et mettre en place un très long titre pour le site, et une très longue description du site. Vérifier que cela ne casse pas en front.
- Aller dans Apparence > Menus et tester les différents menus du jeu de données de tests unitaires. Ici encore, vérifier que rien ne casse avec ces menus très diversifiés : peu d’items, beaucoup d’items, beaucoup de niveaux de profondeur, etc.
- Aller en front et parcourir tous les articles du jeu de données de tests unitaires. De nombreux edge cases (cas critiques) sont testés afin de vérifier s’il n’y a jamais d’effets de bord :
- Article sans titre
- Article sans contenu
- Beaucoup de tags
- Beaucoup de catégories
- Tous les styles de formatages de texte disponibles dans l’éditeur et affichage/style de toutes les balises HTML de formatage de contenu
- Article protégé par mot de passe
- Affichage des images, leur positionnement, gestion des flottants
- Affichage des galeries d’images, sur plusieurs colonnes
- Affichage des embeds, des players son et vidéo
- Pagination des articles
- etc…
- Aller dans le code du thème et vérifier que tous les crédits nécessaires sont bien affichés dans le fichier readme.txt.
- Aller dans le code du thème et vérifier que toutes les librairies JS et styles CSS sont disponibles en version non minifiée (si une version minifiée est utilisée, la version non minifiée doit être disponible à côté). Vérifier que leur code est licencié sous licence compatible GPL et crédités dans le readme.
- Aller dans le code du thème et vérifier que tous les assets (images, vidéos, etc) sont sous licence compatible GPL et crédités dans le readme.
On pourrait ajouter d’autres étapes plus précises, mais tout cela est détaillé dans le handbook dédié et l’objectif de cet article n’est pas non plus d’être 100% exhaustif 🙂
Ensuite, on fait le compte rendu de tout cela à l’auteur, dans le ticket Trac.
Voici un exemple de compte-rendu : https://themes.trac.wordpress.org/ticket/49713#comment:14
Si le thème n’a pas plus de 3 erreurs critiques (items required), alors l’auteur du thème dispose de 7 jours pour les corriger et envoyer une nouvelle version de son thème.
Si le thème a plus de 3 erreurs critiques, on ferme le ticket à l’aide du bouton Close as not resolved. C’est dur mais c’est comme ça !
La validation du thème
Une fois que l’auteur du thème a réalisé toutes les corrections que vous lui avez demandé, vous n’avez plus qu’à cocher la case Approve du ticket Trac.
Mais ce n’est pas terminé ! Vous n’êtes qu’un reviewer « débutant » (et vous le serez encore pendant quelques dizaines de reviews), donc un reviewer expérimenté va prendre le relai et réaliser quelques checks supplémentaires. Informez-en l’auteur du thème :
Suivez bien ces mises à jour de statut du ticket, car vous y apprendrez énormément de choses que vous aurez oublié lors de votre revue. La prochaine fois, vous en tirerez parti pour essayer de minimiser le job du reviewer final. Si ce reviewer final se nomme @rabmalin soyez certain qu’il trouvera toujours un truc que vous aurez oublié ! Ce Theme Review Lead est un as pour déceler le moindre petit truc qui ne va pas sur un thème 🙂
Une fois les ultimes demandes de corrections faites, le thème sera alors set to Live, c’est à dire qu’on lui donner littéralement vie : il sera disponible sur le repo officiel WordPress.org.
Les slides de mon atelier au WordCamp Paris 2018
La captation vidéo de l’atelier sur WordPress.tv