Drupal : utiliser, c’est bien, contribuer, c’est mieux !

Sous Drupal, il existe une myriade de modules, tous plus intéressants les uns que les autres. Or, savez-vous qui se cache derrière ces derniers? Toute une communauté !

 

Un module, avant d’être utilisé par des milliers de sites, doit passer par quelques étapes, à commencer par la Sandbox. Cette Sandbox permet aux développeurs d’envoyer leurs modules à la communauté afin d’obtenir des retours, des tests et des patchs.

 

Mais qu’est-ce qu’un « patch »?

Un patch est tout « simplement » un fichier texte, contenant un différentiel produit par GIT. Pour avoir une idée, vous pouvez exécuter cette ligne :

            $ git diff

Vous devriez voir apparaitre toutes les modifications apportées sur tout les fichiers de la branche courante sous cette forme :

            diff --git a/currency_converter.admin.inc 
            b/currency_converter.admin.inc

            index e644435..487862f 100644

            --- a/currency_converter.admin.inc

            +++ b/currency_converter.admin.inc

            @@ -11,7 +11,7 @@

              */

             function currency_converter_admin_settings() {

            -  $default_weight = array('BYR' => 0, 'RUB' => 1, 'EUR' => 2, 
               'USD' => 3, 'CAD' => 4,'PLN' => 5, 'UAH' => 6, 'CNY' => 7, 
               'LTL' => 8, 'LVL' => 9);

            +  $default_weight = array('BYR' => 0, 'RUB' => 1, 'EUR' => 2,
               'USD' => 3, 'CAD' => 4, 'PLN' => 5, 'UAH' => 6, 'CNY' => 7,
               'LTL' => 8, 'LVL' => 9, 'JPY' => 10, 'GBP' => 11, 
               'CHF' => 12, 'AUD' => 13, 'HKD' => 14, 'INR' => 15);

               $weight = variable_get('currency_converter_weight', 
               $default_weight);

               asort($weight);

Comme vous pouvez le remarquer, certaines lignes débutent par un « – », d’autres par un « + ». C’est tout simple, les lignes avec « – » sont supprimées et celles avec un « + » ajoutées.

 

Et comment créer ce patch ?

Pour créer un patch, peu de connaissances GIT sont requises.

Une fois vos modifications effectuées, testées puis validées, vous n’avez qu’une commande à rentrer pour générer le patch :

         $ git diff > fichier.patch

Et c’est tout ! Il ne restera plus qu’à suivre les règles de nommage, puis d’envoyer votre patch sur Drupal.

 

Contribuer au module, de A à Z

Voici donc les étapes détaillées à suivre afin de maintenir un module

## Première étape : On récupère notre projet, sous la bonne version

         $ git clone --branch X.x-X.x 
           http://git.drupal.org/project/projectname.git projectname

         $ cd projectname

## Nous sommes donc dans le répertoire crée par GIT, contenant les sources du module

A présent que le projet est copié, nous pouvons travailler dedans et effectuer nos modifications

## A présent que toutes nos modifications sont faites, nous pouvons passer à la création du patch

         $ git diff > [description de ce que vous avez modifié]
                      [numéro du ticket][numéro du commentaire].patch

A présent, vous savez créer vos patch et les envoyer. Regardons comment en utiliser un.

 

Appliquer un patch

Une autre façon de contribuer est d’appliquer les patchs et faire un retour au développeur.

Encore une fois, très peu de connaissances GIT sont requises

            $ git apply -v fichier.patch

Vous êtes enfin prêt.

 

Partez à la conquête de nouveaux modules à débugger ! Drupal.org vous propose également le Patch Bingo et le Bug Bingo.Vous y trouverez de manière aléatoire un module / thème qui nécessite une intervention.

Benjamin

 

Sources:
Twitter Drupalsecurity : https://twitter.com/drupalsecurity
Sandbox drupal : https://simplytest.me/
Bug bounty : https://www.drupal.org/drupalorg/docs/build/drupalorg-bug-bounty-program
Drupal 8 Security Bug Bounty program: https://www.drupal.org/forum/general/news-and-announcements/2015-06-02/drupal-8-security-bug-bounty-program-get-paid-to