Devenez un contributeur de WordPress !

Passionné du Web et du mouvement Libre, vous cherchez à apporter votre pierre à l’édifice WordPress ? Ce tutoriel est pour vous ! Les équipes de Savoir-faire Linux ont contribué au cœur de l’application et souhaite à son tour vous initier au développement de la plateforme de publication en ligne la plus populaire au monde.

Avant de commencer, sachez que la plupart des documents liés à cet article ne sont disponibles qu’en anglais malheureusement.

S’abonner
Première étape : Abonnez-vous  aux différentes plateformes utilisées par les contributeurs.

WordPress
Bien sûr, une incontournable, WordPress.org qui sert, entre autres, à documenter les procédures et à publier les informations liées au développement. Ce sera votre référence principale. Abonnez-vous et connectez-vous.

Une fois connecté, nous vous invitons à consulter la section dédiée au développement et à prendre connaissance des différentes équipes et de leur mission. C’est aussi l’occasion de vous abonner aux différents bulletins d’informations si vous souhaitez suivre de près un développement en particulier (marketing, modules, thèmes, documentations, etc.)

Slack
Les contributeurs discutent via la plateforme de communication collaborative Slack. Ils y tiennent leurs réunions, y diffusent les informations en primeur et vous aident à atteindre vos objectifs de contribution. Sur Slack, vous trouverez tous les développeurs influents de la communauté WordPress, c’est l’ endroit idéal pour leur poser vos questions !

Prenez soin de bien lire la documentation d’abonnement. La procédure peut parfois semer la confusion. Si vous rencontrez des difficultés, connectez-vous à votre compte WordPress.org, visitez la page d’abonnement et de nouvelles instructions apparaîtront.

Vous pourrez ensuite vous connecter à https://wordpress.slack.com/.

Trac
Dernière étape avant de contribuer ! Découvrez le gestionnaire de billet Trac. Chaque modification à WordPress y est documentée. Les développeurs principaux l’utilisent pour approuver et intégrer les modifications au cœur. Afin de garantir un développement efficace, précis et coordonné, son utilisation est obligatoire.

Développer: Les bonnes pratiques
C’est ici que le plaisir débute ! Avant de rédiger du code, vous devrez intégrer les bonnes pratiques et les standards de développement. Certains documents vous seront plus utiles que d’autres. Nous vous suggérons de vous concentrer sur ces sections : Core Contributor Handbook, Best Practices et Writing Patches.

Pour les développeurs PHP, ces documents sont les plus pertinents : PHP Coding Standards et Core APIs.

L’environnement
La majorité des développeurs utilisent Varying Vagrant Vagrants (VVV), qui fonctionne sous tous les systèmes d’exploitation. L’outil est spécifiquement paramétré pour le développement de l’application, incluant la création de thèmes et de modules.

L’installation peut être complexe, surtout si vous installez les modules optionnels de Vagrant. Sous Linux, assurez-vous d’avoir les librairies « build-essential » et « libc6-dev » avant de débuter.

Bien sûr, vous pouvez travailler avec d’autres outils que VVV. Si c’est le cas, n’oubliez pas de rapporter vos développements sur le dépôt de code du cœur de WordPress pour suivre les tests et les avancements de vos contributions !

Voici un exemple d'installation d'un environnement de développement utilisant VagrantPress et Git déployé avec Ubuntu.

git clone https://github.com/vagrantpress/vagrantpress.git
cd vagrantpress
vagrant up
rm -fr tests
git clone git://develop.git.wordpress.org/ tests
vagrant provision

SVN et Git
Vous avez sûrement remarqué que le dépôt de code utilise SVN. Si vous désirez contribuer au cœur, nous vous recommandons vivement son usage. Mais pas d’obligation, il est aussi possible de passer par Git.

Vous trouverez les documents dont vous aurez besoin pour utiliser ces deux systèmes de gestion de versions dans les librairies suivantes : How to Use Subversion for developers, plugin, codex  pour SVN et Using Git pour le second.

CSS et Javascript
WordPress compresse certaines ressources. Pour vous permettre de travailler, vous devrez désactiver cette fonction dans le   » wp-config.php « . Ajoutez-y  » define(‘SCRIPT_DEBUG’, true); « .

Validateur de code
Les standards de code WordPress sont fort probablement différents de ceux auxquels vous êtes habitué. Un vérificateur de format de code peut apporter une grande aide. Utilisez PHP_CodeSniffer avec le fichier de paramétrage de normes WordPress.

Vous pouvez aussi lire les guides de style WordPress pour connaître les instructions d’installation détaillées.

Contribuer en effectuant des tests
Saviez-vous que vous n’êtes pas obligé d’être développeur aguerri pour contribuer à WordPress ?

Par exemple, effectuer des tests est une bonne manière de participer au développement tout en apprenant. Trac liste les corrections à tester. Si vous débutez, travaillez d’abord sur des corrections non urgentes.

Réaliser de grands rêves avec de petits pas de bébé

Oui, contribuer demande un premier grand investissement : Lire, paramétrer, configurer, télécharger…  Mais une fois cette étape passée et quelques premières interventions, vous serez officiellement un contributeur de logiciel libre ! Maintenant, profitez de cette opportunité pour faire vos premiers pas de bébé, et de réaliser votre grand rêve… de devenir un développeur de logiciel libre!

Drupal 8 : de Barcelone à Dublin, une année à fond de train

drupal-8-logo-rgb-72

Lors du DrupalCon de Barcelone en septembre 2015, la communauté Drupal était très déçue de pas avoir réussi à finaliser Drupal 8, pourtant en développement depuis bientôt quatre ans.
Au moment du DrupalCon de Dublin en septembre 2016, Drupal 8 était non seulement disponible depuis plusieurs mois, mais deux nouvelles versions mineures (8.1.0 et 8.2.0) avaient déjà vu le jour.
Cette version est sans aucun doute la plus importante de l’histoire du projet, tant par les nouveautés apportées au logiciel que par les changements appliqués au processus de développement.
De ce fait, on peut se poser la question suivante : comment la communauté Drupal est-elle passée d’un délai de quatre ans entre les versions 7 et 8, à des itérations courtes et des nouveautés fréquentes ?

La mise en place des versions planifiées
Le graphique ci-dessous montre à quel point le temps entre chaque version de Drupal a augmenté de façon considérable.
crop_drupal

Ce délai entre Drupal 7 et 8 a aussi révélé un certain nombre de problèmes.
Puisque cette version était en mode de développement durant quatre ans, les contributeurs avaient l’impression de travailler dans une sorte de bulle, ajoutant de nouvelles fonctionnalités sans jamais savoir si elles répondaient à des besoins réels chez l’utilisateur hypothétique.
La mise en place de versions planifiées est venue remédier à ce dysfonctionnement en prévoyant une nouvelle version tous les six mois.

Cela permet aux développeurs d’ajouter des nouveautés beaucoup plus souvent, de recevoir des commentaires d’utilisateurs réels et d’être ainsi mieux à même de suivre le marché.
La sortie d’une nouvelle version marque aussi la fin du support de la précédente pour inciter les utilisateurs à tenir leur site à jour et pour éviter d’avoir à supporter plusieurs versions.
La gestion sémantique de version
Le passage d’un système de version à deux chiffres (7.x) à un système de version à trois chiffres (8.0.x), appelé gestion sémantique de version, a favorisé la mise en place des versions planifiées et permis de limiter les changements de versions majeures.
Le premier chiffre, la version majeure, n’augmente que lorsque des changements rétro-incompatibles sont nécessaires. Le troisième, la version de correctif, est augmenté chaque fois qu’une mise à jour de sécurité ou qu’un correctif de bogue est appliqué. Finalement, la version mineure représentée par le chiffre du centre, est augmentée toutes les fois que de nouvelles fonctionnalités rétro-compatibles sont ajoutées.
Dans le cas de Drupal 8, c’est cette version mineure qui est incrémentée tous les six mois.

Les modules expérimentaux
En plus des sorties planifiées et des versions sémantiques, Drupal 8 introduit aussi le concept de module expérimental.
Un module expérimental est un module qui aspire à être inclus dans le cœur de Drupal, mais qui n’a pas encore atteint une stabilité acceptable.
Comparativement à un module communautaire, un module expérimental reçoit davantage de visibilité de la part des utilisateurs et des core commiters puisqu’il est inclus dans le cœur de Drupal.
Toutes les modifications apportées à son code sont revues par une personne responsable du projet, garantissant ainsi qu’il ne contient aucune faille de sécurité connue ni aucun risque de perte de données.
Notons aussi que leur utilisation dans un environnement de production est déconseillé et que leur avenir dans le cœur de Drupal n’est pas garanti, car s’ils ne se stabilisent pas dans un délai d’un an, ils seront retirés.

Les nouveautés dans Drupal 8.2.

1) De nouveaux modules expérimentaux
– «Content moderation» qui introduit les états de modération du contenu.
– «DateTime range» qui permet d’ajouter des dates de fin.
– «Place block» qui permet de placer des blocs directement sur une page sans avoir à passer par les pages d’administration, facilitant ainsi la visualisation du rendu.
– «Settings tray» qui introduit un panneau latéral pour éditer la configuration de certaines parties des pages comme, par exemple, les menus.

2) Des améliorations à des fonctionnalités déjà présentes
– Des URL relatives converties en URL absolues lorsque présentées dans un flux RSS.
– Des révisions activées par défaut pour les nouveaux types de contenus.
– Un progrès considérable du côté du support REST, qui permet un plus grand contrôle sur un site Drupal depuis une application externe.

Que peut-on espérer pour Drupal 9 ?

Avec ce nouveau modèle de développement, certains se demandent si Drupal 9 sera vraiment nécessaire dans un futur proche.
Il est vrai que les nouveautés de Drupal 8 vues ici nous permettent d’ajouter des fonctionnalités beaucoup plus facilement et rapidement qu’auparavant, alors pourquoi ne pas continuer ainsi pendant plusieurs années ?
Nous sommes portés à croire que ce sera probablement le cas. Tant qu’il n’y aura pas un excès de couches de rétro-compatibilité qui gagneraient à être retirées ou qu’il n’y a pas de besoin urgent de faire des changements rétro-incompatibles, Drupal 8 continuera d’évoluer au rythme de ses versions mineures.
De plus, étant donné que la sortie d’une nouvelle version mineure implique la fin du support de la précédente, nous pouvons espérer que lorsque Drupal 9 sortira, la transition se fera beaucoup plus efficacement que celle entre Drupal 7 et 8. Et ce pour deux raisons.
Premièrement, puisque le plus important changement sera probablement le retrait des couches de rétro-compatibilité, et que leur dépréciation aura été annoncée progressivement au fil des versions mineures, les modules communautaires auront eu amplement le temps de s’adapter.
Deuxièmement, si des changements rétro-incompatibles sont ajoutés tels que des modifications aux API ou aux structures de données, ils seront certainement moins colossaux que ceux que nous avons vus entre les versions 7 et 8, ce qui présage une mise à jour beaucoup plus aisée.

Sources
Dries Buytaert, Driesnote, DrupalCon Dublin 2016
Gábor Hojtsy, Checking on Drupal 8’s rapid innovation promises, DrupalCon Dublin 2016