Drupal
02/05/2012

Drupal : pourquoi participer à la communauté et contribuer ?

image
Depuis maintenant plusieurs années, l'agence déploie quasi uniquement ses sites avec le CMS Open Source Drupal. Notre choix d'une solution unique Open Source s'explique notamment par le souhait de s'appuyer sur la vitalité d’une communauté de développeurs qui non seulement fait vivre et évoluer le logiciel...

Depuis maintenant plusieurs années, l'agence déploie quasi uniquement ses sites avec le CMS Open Source Drupal. Notre choix d'une solution unique Open Source s'explique notamment par le souhait de s'appuyer sur la vitalité d’une communauté de développeurs qui non seulement fait vivre et évoluer le logiciel, mais en assure également la maintenance, à la condition d’utiliser des modules contribués (reversés et utilisés par la communauté).

Bluedrop a fait le choix de n'utiliser que des modules contribués – ou le cas échéant de reverser dans la communauté sous forme de patchs les modifications que nous effectuons sur les modules communautaires.
Cela permet d'assurer pour nos clients leur indépendance et surtout un maximum de sécurité pour leur site grâce aux mises à jour de la communauté.

image développements drupal

Un des points délicats donc, dans un projet déployé avec un outil Open Source, est de trouver le bon module. Il faut aussi pour le client savoir adapter son cahier de charges lorsqu'un module correspond à 95% à ses besoins. Sauf si les 5% sont le coeur du projet – ce qui est rarement le cas – il est souvent beaucoup plus efficace pour tous les acteurs et sous tous les angles (financier et en terme de temps notamment) d'utiliser le module en question.

Ce fut ainsi le cas pour l'un de nos clients pour lequel Ubercart – module d'e-commerce - remplissait fonctionnellement une très grande partie du projet, mais qui en particulier intégrait le choix du mode et du tarif de livraison en fin de commande ; alors que le donneur d'ordre souhaitait voir apparaître ce choix dès la liste des produits. Dans ce cas précis, l'ensemble des fonctionnalités était bien présent mais l'ergonomie finale du bon de commande – puisque c'est de cela qu'il s'agissait – posait problème. Il a fallu transiger sur le « hacking » du module, ce qui posait de gros problèmes en terme d'indépendance, de maintien et de sécurité de la fonctionnalité, le développement sur mesure, avec les mêmes problèmes ou la modification du cahier des charges initial. Le dernier choix étant bien entendu préférable.

Nos patch drupal 7 contribués

Dans certains cas il est cependant obligatoire de mettre la main à la pâte, notamment lorsqu'il n'existe pas encore de version Drupal 7 du module correspondant au besoin. Ainsi, voici un échantillon de nos contributions à travers la mise en ligne de patchs pour les modules :

  • Édition d'un patch pour l'adaptation du module Mediawiki à Drupal 7. Le module permet une unique connexion sur Drupal et sur un wiki Médiawiki. 
    Ce module a été réalisé pour le site Datalift.org - projet de recherche expérimentale financé par l'agence nationale de la recherche et porté par la FING pour développer une plateforme pour publier et interconnecter des jeux de données sur le web de données.
  • Édition d'un patch pour l'adaptation du module Anonymous Contact Form à Drupal 7. Le module permet à des utilisateurs non connectés de remplir un formulaire de contact.
  • Édition d'un patch pour le module realname userreference afin d'afficher l'image d'utilisateur dans les champs de saisie semi-automatique du module.
    http://drupal.org/node/1450510

Nos patchs ou modules en cours de développement

Dans le cadre des projets pour nos clients, nous sommes souvent amenés à créer des patchs ou des modules et nous faisons le maximum pour reverser dans la communauté nos développements. Si nous avons laissé de côté notre stock de modules Drupal 6, nous sommes particulièrement attentifs à reverser les patchs D7 et les nouveaux modules. Ainsi plusieurs sont en cours de reversement, notamment :

  • Développement d'un module Drupal 7 pour la liaison avec le répertoire de données Ckan
  • Portage d'un module « génération de newsletter » sous Drupal 7
  • Module d'intégration de produits en masse selon des données croisées sou DrupalCommerce

Même si au sein de l'agence, le principal frein aux contributions reste le manque de temps.

Comment et Pourquoi contribuer

Contribuer au développement, à la traduction ou à la mise à jour de modules, c'est donc contribuer au bien être général de la communauté. Car s'il est bien de pouvoir compter sur des modules correctement maintenus par d'autres, il est souhaitable de participer soi même aux besoins des autres pour que l'on continu à parler de « communauté ».

Et pour vous aider, Vous pourrez trouver une liste complète de conseils pratiques sur la page dédiée du site drupal.org http://drupal.org/coding-standards . Notamment cette liste comprend des bonnes pratiques de coding sur l'usage des espaces, des opérateurs binaires, la structure des fonctions php, l'usage des array, les includes, etc. Et, enfin, l'utilisation du module Coder pour valider le respect des standards dans votre code.

Aussi, n'oubliez pas que si vous n'êtes pas développeur, vous pouvez également participer aux efforts de traduction de Drupal et de ses modules par la communauté !