Slide 1

Slide 1 text

<> Comprendre le cœur et y contribuer. Objectif : devenir un professionnel WordPress accompli. WP Tech 27 mai 2018 — Jb Audras

Slide 2

Slide 2 text

Moi c’est Jb Audras Amoureux de WordPress, co-lead de la mineure 4.9.5 Directeur technique à l’agence Whodunit @audrasjb Je suis aussi co-orga du meetup WP Drôme-Ardèche (pas loin de lyon) @WordPress0726

Slide 3

Slide 3 text

<> Le cœur WordPress, comment ça marche ?

Slide 4

Slide 4 text

Le leadership dans WordPress ◉ Lead Developers 6 personnes garantes de la cohérence d’ensemble du projet à long terme ◉ Core Committers Une bonne trentaine de personnes disposant d’un accès commit permanent ◉ Mission Control & Security Team 4-5 personnes qui gèrent le build, les MAJ de sécurité et l’autoupdate ◉ Components Maintainers Une vingtaine de personnes réparties sur 40 composants clés ◉ Core Contributors Quelques centaines de personnes dont toi, moi… nous tous ?

Slide 5

Slide 5 text

Quelques grands principes ◉ Design for the majority ◉ Decisions not options ◉ The Bill of Rights → majorité ≠ développeur·ses → KISS → un réglage = une prise de décision → Les libertés fondamentales du logiciel libre : exécuter, étudier, modifier, redistribuer

Slide 6

Slide 6 text

Les composants WordPress ◉ Bootstrap/load ◉ Build/test tools ◉ Bundled themes ◉ Cache API ◉ Comments ◉ Cron API ◉ Customize ◉ Database ◉ Date/time ◉ Editor ◉ Export ◉ External libraries ◉ Feeds ◉ Filesystem API ◉ Formatting ◉ General ◉ Help/about ◉ HTTP API ◉ I18n ◉ Import ◉ Mail ◉ Media ◉ Networks/sites ◉ Option/metaAPI ◉ Permalinks ◉ Plugins ◉ Posts/Post types ◉ Query ◉ Rest API ◉ Scripts loader ◉ Taxonomy ◉ Toolbar ◉ Theme > Menus ◉ Theme > Widget ◉ Upgrade/install ◉ Users > Login ◉ Users > Roles/Caps ◉ XML RPC Pour chaque composant, plusieurs maintainers sont désigné·es. Cela se fait sur la base du volontariat, de la compétence et de l’intérêt, et les leads changent au fil des années.

Slide 7

Slide 7 text

◉ Major releases : ○ WP 4.9 et 5.0 = majeures de même niveau ○ Nouvelles fonctionnalités / nouveaux fichiers ○ En moyenne 3 fois par an ◉ Minor releases : ○ 3.7.2, 4.9.5, 4.9.6 ou 5.0.2 sont des versions mineures ○ Maintenance : corrections et petites améliorations, pas de nouveau fichier ○ Sécurité : à tout moment, confidentialité via HackerOne + Security Team Les releases WordPress

Slide 8

Slide 8 text

1. Décision sur les fonctionnalités à implémenter : Merge proposal des features as plugins → Gutenberg, GDPR, Toolbar… et avant : API Rest, API Fields, Reactions… 2. Désignation des lead(s) & deputy 3. Triage & Bug scrubs 4. Dev chats hebdomadaires, point d’avancement et retours des component maintainers 5. Commit des patchs par les core-committers + tests unitaires 6. Communication : planning + contenu de la release sur Make/Core 7. Beta releases : tests fonctionnels 8. Release candidates : tests finaux 9. Release : intégration des patchs de sécurité puis lancement des autoupdates et de la communication Le processus de release (résumé)

Slide 9

Slide 9 text

“ To lead a WordPress release, you don’t need the core committer status. You need to deeply care about the WordPress project. Le leadership est ouvert ● Connaître les tickets de la release précédente, actuelle et future majeure ● Avoir suivi les 2-3 derniers mois de dev chat ● ±10h par semaine pendant un mois, horaires : de 21h à 03h (heure Paris) ● Connaître le processus de release ● Lire et écrire l’anglais :)

Slide 10

Slide 10 text

<> Pourquoi contribuer au cœur WordPress ?

Slide 11

Slide 11 text

Un cheminement logique 2006-2014 : ◉ Profite de WordPress et de son écosystème 2015 : ◉ Meetup WordPress Drôme-Ardèche 2016 : ◉ Premier WordCamp Paris en tant que speaker ◉ Changement d’horizon avec Whodunit ◉ Premières extensions sur le repo ◉ Contribution à la traduction 2017 : ◉ WordPress Translation Day : apprentissage du travail collaboratif international ◉ GTE France ◉ 4.9 : entrée dans le core 2018 : ◉ Contrib Gutenberg ◉ WordPress 4.9.5 co-lead …

Slide 12

Slide 12 text

Principe du Give Back : ◉ C’est le principe de l’open-source : ○ On prend ce que d’autres ont donné ○ On donne un peu aux autres en échange ◉ C’est ce qu’on fait en achetant des extensions premium, ou en payant une bière à un·e développeur·se → Mais pourquoi ne pas directement contribuer au cœur ?! WordPress a besoin de toi, et plus que tu ne le pense !

Slide 13

Slide 13 text

Ce que ça apporte : ◉ Skills : qq heures de contrib au core chaque semaine = des années de taf en agence ◉ La reconnaissance des pairs, au niveau international ◉ Copaings : un réseau qui se développe à vitesse grand V ◉ Veille technique WP : savoir comment fonctionne le cœur ◉ Anticipation du changement : dév, maintenance… ◉ Outils et méthodologie : des process intéressants à décliner ◉ Participer : être acteur plutôt que suiveur ! → Des avantages concurrentiels non négligeables !

Slide 14

Slide 14 text

<> Quand contribuer au cœur WordPress ?

Slide 15

Slide 15 text

“ Organizations that want to grow the WordPress pie should dedicate 5% of their time to working on something to do with core. Le principe des 5% de contrib’ Matt au WCEU, avec un coup dans le pif a priori <3

Slide 16

Slide 16 text

“ Idée : Un Contribution Day chaque mois en agence, en freelance… ou collectivement sur le Slack WP-Francophone ?!

Slide 17

Slide 17 text

<> Mais qui peut contribuer au cœur?

Slide 18

Slide 18 text

“ To contribute to WordPress core, you don’t need to be an excellent developer, nor a developer at all. You just have to feel involved. Se sentir impliqué

Slide 19

Slide 19 text

◉ Développeur·ses : → Patchs : PHP, JS, HTML, CSS… sur le core et les bundled themes/plugins → S’impliquer sur les plugins as feature : Gutenberg (5 contributeurs FR) ; GDPR (aucun contributeur FR) ◉ Designers : → Proposer du design sur les bundled themes, l’admin… ◉ Spécialistes : → Accessibilité, UI/UX, SEO, Perfs… : l’écosystème a besoin de vous ! → Sécurité : rendez-vous sur HackerOne ◉ Utilisateur·ices & Chefs de projets WordPress… et en fait tout le monde : → Issues sur core.trac.wordpress.org → Participer aux décisions sur le chan Slack #core Quels profils ?

Slide 20

Slide 20 text

<> Comment contribuer au cœur?

Slide 21

Slide 21 text

Le Trac WordPress ◉ Toute nouvelle fonctionnalité/correction doit ○ soit passer par un ticket ○ soit par un plugin as feature (puis… un ticket pour le commit ^^) ◉ Old school mais pratique : historique, suivi, transparence

Slide 22

Slide 22 text

Contribuer avec Trac : quelques tips/liens ◉ Pour commencer : les good-first-bug réservés aux débutants → https://core.trac.wordpress.org/tickets/good-first-bugs ◉ Les tickets sans patch → https://core.trac.wordpress.org/tickets/no-patch ◉ Les tickets ayant besoin d’une expertise en accessibilité → https://core.trac.wordpress.org/focus/accessibility ◉ Les tickets qui vont atterrir dans la prochaine majeure → https://core.trac.wordpress.org/tickets/major/workflow ◉ Les tickets qui vont atterrir dans la prochaine mineure → https://core.trac.wordpress.org/tickets/minor/workflow

Slide 23

Slide 23 text

Comment proposer un patch ◉ Trouver un ticket ou en ouvrir un ◉ Cloner le dépôt GIT ou SVN du cœur WordPress et installer une instance en local à partir de ce répertoire ◉ Créer une branche, par exemple : 43623-hello-dolly-musical-note ◉ Faire les modifs ◉ La tester en local (responsive, RTL, PHP 5.2 à 7.2…) ◉ Soumettre le patch accompagné d’explications et de screenshots si nécessaire

Slide 24

Slide 24 text

Un ticket avec le focus accessibility : #40187

Slide 25

Slide 25 text

Correction en local, puis réalisation d’un fichier diff entre la branche master et la branche du correctif : $ git diff master > 40187.diff

Slide 26

Slide 26 text

Après une relance sur le Slack, quelques échanges et corrections, le props tant espéré \o/

Slide 27

Slide 27 text

On se retrouve dans les crédits de WP 5.0 ? WP 4.9

Slide 28

Slide 28 text

Des questions ? @AudrasJb https://jeanbaptisteaudras.com — @agence_whodunit https://www.whodunit.fr Merci !