Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Comprendre le cœur WordPress et y contribuer. O...

Comprendre le cœur WordPress et y contribuer. Objectif : devenir un professionnel WordPress accompli

Nous sommes nombreux à travailler depuis longtemps avec WordPress.

Mais il y a pour l’instant encore assez peu de français qui ont contribué au core. Peu de confrères connaissent aussi vraiment le fonctionnement des releases. Des confrères d’autres pays ont bien compris l’intérêt de contribuer à cet écosystème, et nous aurions tout à gagner à les imiter.

Lors de ce talk, je vous propose de vous présenter le fonctionnement du core, de l’équipe de développement de WordPress, des releases et surtout vous expliquer comment vous préparer techniquement (et psychologiquement ?) à rentrer dans le cœur de votre CMS favori.

L’idée est donc de vous montrer comment contribuer au core (que vous soyez développeur front, back, designer, chef de projet ou tout autre métier du web), mais aussi de vous expliquer pourquoi vous devriez vous y intéresser et y participer dès aujourd’hui.

En restant passif devant le développement des logiciels open-source sur lesquels notre activité professionnelle repose, nous sommes contraints de suivre le mouvement. En y participant, il devient possible d’anticiper son évolution et donc d’en tirer parti à long terme. À court terme, on découvre aussi toute une panoplie de technologies et de process de développement très enrichissants professionnellement : workflow, review, tests unitaires…

Jb Audras

April 28, 2018
Tweet

More Decks by Jb Audras

Other Decks in Technology

Transcript

  1. <> Comprendre le cœur et y contribuer. Objectif : devenir

    un professionnel WordPress accompli. WP Tech 27 mai 2018 — Jb Audras
  2. 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
  3. 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 ?
  4. 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
  5. 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.
  6. ◉ 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
  7. 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é)
  8. “ 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 :)
  9. 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 …
  10. 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 !
  11. 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 !
  12. “ 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
  13. “ Idée : Un Contribution Day chaque mois en agence,

    en freelance… ou collectivement sur le Slack WP-Francophone ?!
  14. “ 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é
  15. ◉ 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 ?
  16. 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
  17. 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
  18. 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
  19. Correction en local, puis réalisation d’un fichier diff entre la

    branche master et la branche du correctif : $ git diff master > 40187.diff