Cette semaine, j'ai franchi une étape importante grâce à l'aide de Jean-Baptiste Audras et le soutien touchant de la communauté WordPress française.

C'est toujours un plaisir d'échanger avec l'équipe de Whodunit qui est top (merci à Eddy pour le montage et la mise en ligne de la vidéo issue de la visioconférence) !

Prérequis :

Personnellement, j'étais sur ma machine perso sur laquelle je n'ai pas d'environnement de travail habituellement. Installer Git + un container avec un WordPress fonctionnel prend ~15 minutes. Évidemment, c'est variable en fonction de votre machine mais pour ce ticket en particulier pas besoin d'une installation complexe.

Récapitulatif de la vidéo :

  • Premier "du coup" de JB : 0:12
    Qui aime bien, charrie bien ! :)
  • Première utilisation du mot "WordPress" : 0:16
  • Ma première apparition (✌) : 0:28
  • Partage écran JB et présentation du ticket que l'on va patcher : 2:07
  • Explication du good-first-bug : 3:18
    Si vous souhaitez contribuer à WordPress mais que vous ne savez pas par quel ticket commencer, vous pouvez chercher ces tickets qui sont laissés pour les nouveaux contributeurs au cœur de WP.
  • Présentation du premier patch proposé sur le ticket pour expliquer la notion de fichier différentiel (.diff) : 3:40
  • Reproduction du bug : 5:00
    Pour info, utilisez ctrl+shift+i pour ouvrir rapidement l'inspecteur de votre navigateur et ctrl+shift+m pour basculer sur la vue qui vous permet de changer d'appareil.
  • JB nous explique comment la résolution de bugs sur le cœur peut permettre de conseiller les développeurs tiers en rédigeant des devnotes à partir d'exemples de bonnes pratiques issues de tickets résolus : 07:37
  • J'ai la parole, rappel à propos de mon profil et de mes compétences (spoiler : je ne suis pas dev et on peut tous contribuer) : 8:30
  • Partage de mon écran (💪) : 8:43
    Pour ceux que ça intéresse, j'utilise https://cmder.net/ comme terminal sur windows qui est très sympa.
  • On reproduit le bug sur mon installation : 9:57
  • On va tester le patch sur mon install : 10:24
    Pour ça, on va chercher les deux fichiers qui concernent nos widgets situés dans \wp-includes\widgets\ et qui se nomment class-wp-widget-archives et class-wp-widget-categorie.
  • On modifie le code des deux fichiers, on commence par celui du widget categorie pour tester le patch : 10:58
    Au passage, ne faites pas comme moi : configurez votre éditeur pour qu'il gère les tabulations correctement lorsqu'il y a des retours à la ligne...
  • On vérifie que le patch fonctionne correctement sur le widget categorie : 11:22
  • On fait pareil pour le widget archives : 13:39
  • On vérifie que le patch fonctionne également pour le widget archives : 13:36
  • On passe sur git : 16:08

Pour info : à ce moment là j'avais déjà fait la manip suivante :

git clone https://github.com/WordPress/wordpress-develop.git

Qui permet de cloner la branche master de WordPress et de récupérer cette branche dans un dossier local.

  • On créé une nouvelle branche (49228-fix-checkbox) à partir de master dans laquelle on va ajouter notre patch : 17:22
  • On change de branche : 18:54
  • JB explique la différence entre la branche wordpress-develop et une installation standard de WordPress, notamment la présence de fichiers qui permettent de créer le paquet lors de la sortie d'une nouvelle version : 19:40
    Est-ce que la traduction des termes anglais utilisés par JB dans la vidéo comptent comme une contribution ? 😁
  • On ajoute notre patch sur notre nouvelle branche : 21:13
    À ce moment, je me dis que ça aurait été une bonne idée de prendre wordress-develop comme base pour mon installation de contrôle afin de ne pas avoir à comparer les fichiers manuellement comme on a fait dans la vidéo. Pour quelques lignes de code en html ça va, mais y'a surement moyen de faire plus efficient pour des patchs plus importants et d'ajouter des contrôles.
  • On vérifie que les changements sont prêts : 23:22
  • On ajoute les fichiers modifiés : 23:38
  • On créé notre commit : 23:58
    JB expliquera plus loin dans la vidéo que le message du commit d'un patch n'est pas pris en compte par les core développeurs qui commits dans le coeur. Ce sont eux qui ajouteront un message final sur les changements effectués. Donc n'êtes pas obligé de vous prendre la tête pour le message de votre commit (même si c'est toujours une bonne pratique évidemment).
  • On repasse sur le ticket : 25:44
    Au passage, je vous conseille fortement d'adhérer à l'association WPFR (j'ai enfin pu le faire la semaine dernière) et de rejoindre le Slack communautaire qui est une mine d'or et un lieu d'échange super intéressant.
  • JB nous explique comment nommer nos fichiers .diff lorsqu'un patch a déjà été publié avant le notre : 26:12
  • On créé notre fichier différentiel : 27:00
  • On publie notre fichier 49228.1.diff sur le ticket : 28:46
  • On oublie pas d'ajouter un commentaire pour expliquer notre patch afin de suivre les contributions plus facilement : 30:34

    ET VOILÀ !
  • Ouverture des questions/réponses : 31:25

Petite liste de liens pratiques :