Drupal Sprint Soleil 2015

Fort d'une première petite expérience de mentor lors du HappyDay de juin et en réponse à une demande récurrente du groupe local de Montpellier j'ai organisé mon second sprint le samedi 22 août.

Grâce au soutien de l'association Drupal France et Francophonie et au généreux accueil de Christophe, j'ai pu organiser cette journée incluant des viennoiseries et le repas du midi sans demander aucune participation aux personnes ayant pris sur leur temps libre pour venir contribuer.

FLogo Drupal FRort d'une première petite expérience de mentor lors du HappyDay de juin et en réponse à une demande récurrente du groupe local de Montpellier j'ai organisé mon second sprint le samedi 22 août.

Grâce au soutien de l'association Drupal France et Francophonie et au généreux accueil de Christophe, j'ai pu organiser cette journée incluant des viennoiseries et le repas du midi sans demander aucune participation aux personnes ayant pris sur leur temps libre pour venir contribuer.

Préparation

Organiser un sprint n'est pas très différent de l'organisation d'un autre événement du point de vue logistique si ce n'est qu'il faut faire attention aux problématiques liées à la connexion Internet. Ayant pour cette fois envie de nous retrouver dans un espace moins formel et plus bucolique, nous avons accepté avec plaisir l'invitation de Christophe au milieu des vignes, près de sa piscine et de son barbecue, tous les ingrédients d'une journée réussie.

D'un point de vue animation c'est une autre histoire. Heureusement, la communauté Drupal a déjà produit pas mal de documentation à ce sujet et j'ai pu m'appuyer sur l'expérience de mentors expérimentés comme xjm ou YesCT.

L'objet du sprint n'étant pas fixé, un rapide sondage des intentions de chacun des participants une dizaine de jours en amont a donné les résultats suivants :

  • Reproduire/Confirmer des issues : 9 oui
  • Créer un patch pour résoudre une issue : 6 oui + 1 peut-être
  • Faire des tests d'accessibilité : 5 oui + 2 peut-être
  • Créer un patch pour améliorer les tests : 4 oui + 0 peut-être
  • Traduire des chaînes du cœur : 3 oui + 4 peut-être
  • Nettoyer/Trier/Améliorer des issues : 3 oui + 2 peut-être

Participants

Photo des participants décrite ci-après

Malgré la taille réduite de notre groupe local 8 participants ont répondu à l'appel de la piscine contribution. Dans le sens des aiguilles d'une montre nous avons :

Programme de la journée

Après avoir résolu les traditionnels problèmes de connectivité, avoir brossé rapidement le programme de la journée et avoir fait un tour de table des présentations, nous avons pu rentrer dans le vif du sujet.

Conformément aux résultats du sondage préliminaire et aux bonnes pratiques de la communauté, nous avons donc souhaité commencer par une phase de vérification (review) des correctifs en attente de validation dans le cœur de Drupal 8. Les participants devaient se regrouper en 3 groupes, choisir un rapport de bug en attente de vérification, tenter de reproduire le problème sur la dernière version et vérifier que le patch proposé résolve le problème en respectant les standards de code. Outre le fait de faire connaître à tous le processus d'évolution des rapports de bug dans le cœur, l'objectif était de s'assurer que tout le monde disposait d'un environnement lui permettant d'installer Drupal 8.

Malgré le fait que deux des trois groupes aient eu des problèmes d'environnement à résoudre, tous ont au moins réussi à vérifier un rapport.

aria-expanded="true" added twice

Participants : Celou, Nicolas, Romain
Lien : https://www.drupal.org/node/2548309

Ce rapport concernait un attribut HTML aria en double sur certains onglets repliables dans des conditions obscures. Les échanges sur ce ticket semblant indiquer la nécessité d'utiliser des modules contribués pour reproduire le bug ils ont d'abord essayé de voir s'il était possible de reproduire le bug sans le module en question. N'y parvenant pas ils ont fait l'essai avec les modules, sans plus de succès. Ils ont donc laissé un commentaire pour indiquer l'état de leur vérification et ont choisi de chercher un deuxième rapport sur lequel travailler.

À cette heure, les auteurs originaux n'ont toujours pas répondu et le problème est toujours impossible à reprodruire..

Telephone Link fied formatter breaks Drupal with 5 digits or less in the number

Participants : Alexandre, Felip, Patrick
Lien : https://www.drupal.org/node/2484693

Ce rapport a donné beaucoup de fil à retordre à ce groupe car il s'est avéré beaucoup plus technique que prévu et car la solution proposée semblait illogique. Le problème est que lorsqu'on utilise un champ de type "Numéro de téléphone" sur une entité et qu'on saisit un numéro de téléphone à 5 chiffres ou moins, une erreur fatale est levée à l'affichage. Au lieu de comprendre et corriger le problème à la source, la solution proposée par le patch en attente de validation était de ne pas autoriser les numéros de téléphones ayant moins de 5 chiffres. Le problème est que cela exclut donc de ce champ tous les numéros courts, les numéros liés aux services d'urgences ou encore les numéros de postes internes en entreprise. Après investigation, le groupe a découvert que le problème était lié à un fonctionnement étrange de la fonction parse_url() de PHP qui considère qu'une URL de type "tel:1234" est en fait une URL utilisant le protocole "http" pointant vers le domaine "tel" et le port "1234" au lieu du protocole "tel" pointant vers le numéro "1234".

Ce rapport a énormément évolué durant la DrupalCon de Barcelone et a donné lieu à l'ouverture d'autres rapports complémentaires. Cependant, ce bug est toujours en attente d'être résolu.

Default row classes are not added when using the table style plugin

Participants : Michel-Ange, Christophe
Lien : https://www.drupal.org/node/2474491

Il s'agit ici d'un problème lié au fait que Views dispose d'une option pour ajouter des classes CSS à ses éléments de liste afin d'en faciliter la mise en forme. Or, dans certains cas, même lorsque l'option est activée les classes ne sont pas ajoutées. Une décision ayant été prise de ne plus ajouter ces classes CSS au niveau du cœur, la question s'est posée de savoir s'il ne vallait mieux pas que Views suive le mouvement en retirant totalement cette possibilité. Lors de leur vérification, Michel-Ange et Christophe ont découvert que le problème était plus large qu'annoncé dans le rapport. Ils ont donc procédé à des tests en profondeur afin de donner à leurs successeurs une vision la plus complète possible de la situation.

À ce jour, ce rapport n'a pas évolué. Il sera donc probablement reporté à la prochaine version du cœur.

Update ProjectInfo class to not use 'disabled'

Participants : Edouard
Lien : https://www.drupal.org/node/2553909

Simple en apparence, ce rapport demande le remplacement du mot "disabled" par le mot "uninstalled" dans tout le cœur puisqu'il n'est plus désormais possible de désactiver un module sans le désinstaller. Le patch proposé ne s'appliquant plus en premier lieu, il a fallu demander à son auteur de le mettre à jour. Une fois le nouveau patch envoyé, certaines phrases qu'il contenait n'étaient toujours pas correctes car elles dépassaient la limite de 80 caractères de long ou contenaient des petites erreurs de copier-coller.

Le rapport n'a pas beaucoup bougé depuis le sprint. Il contient toujours un petit reste à faire pour éliminer totalement le mot "disabled" du cœur.

Log message in Drupal\rest\Plugin\rest\resource\EntityResource::patch() missing Entity ID

Participants : Romain, Celou, Nicolas
Lien : https://www.drupal.org/node/2554873

Sous des apparences vraiment simplistes car le patch proposé ne change qu'une seule ligne de code, ce rapport s'est avéré complexe à vérifier. En effet, du fait que le problème rencontré n'apparaisse que lors d'une requête PATCH, il a fallu que nos vérificateurs comprennent comment envoyer ce type de requête et où, le rapport n'étant pas très explicite à ce sujet. Après plusieurs dizaines de minutes à essayer de comprendre comment envoyer la requête et sous quelle forme ils devaient le faire, ils ont finalement réussi à obtenir l'erreur indiquée et à vérifier que le patch corrigeait bien le problème.

Quelques jours plus tard, le correctif a été appliqué au cœur par alexpott. Malheureusement, Romain, Celou et Nicolas n'ont pas reçu d'attribution car leur message ne reflétait pas la complexité du test qu'ils ont eu à effectuer. Une façon de faire, que j'aurais dû leur expliquer, aurait été de mettre à jour le rapport afin d'indiquer les étapes pour reproduire le problème.

Une pause bien méritée

Une fois encore, merci à Christophe et l'association Drupal France et Francophonie pour nous avoir permis de profiter du cadre et des grillades afin de relâcher un peu la pression entre deux rapports de bugs.

Photos de la pause. Barbecue, repas et piscine.

Conclusion

À l'issue de cette journée, malgré les retours positifs des participants, je me sentais un peu frustré de ne pas avoir réussi à transmettre plus d'informations. J'avais en effet le sentiment que j'aurais pu expliquer certaines choses différemment ou plus en profondeur. Quelques jours plus tard, lorsque le patch vérifié par Romain, Celou et Nicolas a été commité, ce sentiment s'est renforcé car je n'avais pas su leur donner les clefs d'une bonne vérification afin d'obtenir une attribution dans le cœur.

Quelques semaines plus tard, de retour de la DrupalCon où j'ai pu en apprendre un peu plus sur le rôle du mentor et sur quelques unes des ficelles qui font la différence auprès des mentorés, mon sentiment de déception s'est effacé pour laisser place à de la motivation. Maintenant j'ai suffisament d'éléments en ma possession pour que le prochain sprint que j'organise soit plus satisfaisant pour tout le monde.

Commentaires

Cellou Mercredi 30 septembre 2015 - 13:26
Très bon compte-rendu Édouard. Je me permet d'indiquer le lien du second patch sur lequel on avait travailler : https://www.drupal.org/node/2554873. Oui c'est vrai qu'on aurait pu commiter nous même après la confirmation d'un mentor, et avoir une attribution dans le cœur. Mais c'est pas bien grave. Cependant, personnellement cela m'a permis de comprendre beaucoup plus les fonctionnalités du module REST et les interactions des entités dans Drupal8. Donc une action à renouveler très souvent. En prenant des dispositions bien avant, de configurer les environnements de travail afin d'avoir assez de temps pour faire du développement.

Votre commentaire

Le contenu de ce champ sera maintenu privé et ne sera pas affiché publiquement.
Votre adresse servira à afficher un Gravatar et à vous notifier des réponses. Votre commentaire sera anonymisé si ce billet est dépublié pendant plus de 3 mois.

À propos de Edouard

Expert technique

Après un premier contact douloureux avec Drupal en 2009 en autodidacte, j'ai suivi une formation qui m'a convaincu de mon choix technologique et m'a vraiment mis en selle. Durant plusieurs années suite à cela j'ai accompagné des entreprises locales dans le développement de leurs projets de toutes sortes, de la simple vitrine à l'intranet social en passant par le projet e-commerce.