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

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

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

    View Slide

  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

    View Slide

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

    View Slide

  4. 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 ?

    View Slide

  5. 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

    View Slide

  6. 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.

    View Slide

  7. ◉ 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

    View Slide

  8. 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é)

    View Slide


  9. 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 :)

    View Slide

  10. <> Pourquoi contribuer au
    cœur WordPress ?

    View Slide

  11. 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

    View Slide

  12. 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 !

    View Slide

  13. 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 !

    View Slide

  14. <> Quand contribuer au
    cœur WordPress ?

    View Slide


  15. 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

    View Slide


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

    View Slide

  17. <>
    Mais qui peut
    contribuer au cœur?

    View Slide


  18. 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é

    View Slide

  19. ◉ 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 ?

    View Slide

  20. <>
    Comment contribuer
    au cœur?

    View Slide

  21. 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

    View Slide

  22. 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

    View Slide

  23. 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

    View Slide

  24. Un ticket avec le focus accessibility : #40187

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. Des questions ?
    @AudrasJb
    https://jeanbaptisteaudras.com

    @agence_whodunit
    https://www.whodunit.fr
    Merci !

    View Slide