contribution

Sprint media à Paris

Alexandre Mallet alias woprrr organise un sprint autour de Media la nouvelle suite de module pour gérer les médias de manière optimale dans Drupal 8 !

Vous êtes les bienvenus, que vous soyez débutant ou expert chez Degetel à Boulogne Billancourt qui nous fait l'honneur d'être notre sponsor.

Vous pouvez vous joindre également au sprint via IRC sur le channel #drupal-media (pingez @woprrr ou @slashrsm).

Voici la liste des sujets à traiter pendant le sprint :

Par benftwc

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

Sous Drupal, nous le savons, il existe une myriade de modules, tous plus intéressant que les autres. Seulement, savez-vous qui se cache derrière ? 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 leur modules à la communauté afin d’obtenir des retours, des tests, et des patchs.

Je vais vous parler un peu plus en détail des patchs.

Un « patch », kézako ?

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 apparaître 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 « + ». Simplement, les lignes avec « - » ont étés supprimées, celles avec un « + » ajoutées.

Comment créer un patch

Pour créer un patch, c’est très simple, peu de connaissances GIT sont requises.

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

 $ git diff > fichier.patch

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

Contribuer au module, de A à Z

Bien, 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 pour les tester 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 fins prêt.

Partez à la conquete de nouveaux modules à débugger ! Drupal.org vous propose également ces 2 liens :

Patch Bingo et Bug Bingo

Vous y trouverez de manière aléatoire un module / thème qui nécessite une intervention.

Vous trouverez d’autres infos sur les slides de @simongeorges et @Artusamak, disponibles ici

The post Drupal : utiliser, c’est bien, contribuer, c’est mieux ! appeared first on Benftwc.

Par Artusamak
Julien Dubois

Expérimentation : Génération de rapport de traduction

La semaine qui vient de s’écouler a été une semaine « hors du temps », plusieurs développeurs et moi-même avons eut le hasard de nous retrouver en même temps sans projet. La décision a donc été prise de profiter de cette opportunité pour en tirer quelque chose, nom de code : « Zamak experiment week ».
L’objectif ? Trouver un projet à accomplir sur la techno et le sujet de notre choix. En vrac les idées qui ont émergé ont été : du social commerce, un lecteur de musique collaboratif, un bot de générateur de rapports de traduction et un bot d’alertes (vocales ou lumineuses). Silex, Angular JS, Raspberry pi, Twitter & Facebook API et Herokuapp étaient de la partie.
De mon côté, j’ai réussi à enrôler un autre développeur pour donner vie à une idée de l’équipe de traduction française.

 

Source : http://www.flickr.com/photos/valdemarne/7465763444/

Source : http://www.flickr.com/photos/valdemarne/7465763444/

Lorsque les traducteurs doivent convertir les chaînes dans la langue de Molière, ils se retrouvent assez fréquemment à devoir traduire des chaînes très similaires car les mainteneurs n’ont pas de vision globale des chaînes utilisées dans leur module. Seuls les traducteurs se rendent compte de ce problème. Le souhait a logiquement été émis de trouver un moyen de remonter ces problèmes aux mainteneurs. La semaine serait donc réussie si nous réussissions à donner vie à ce projet.

Page d'accueil

Aperçu du projet

Une façon d’y parvenir consiste à le faire tourner régulièrement sur la liste des modules publiés extraite du FTP de d.o (attention chargement très long) pour fournir tous les mois un rapport de traduction au mainteneur de chaque module. Si l’on parse quelques modules deux scénarios s’offrent à nous, le premier (et le meilleur) aucune chaîne ne fait doublon, le mainteneur gagne des points de karma auprès des traducteurs. Le second, des chaînes font doublons, le mainteneur doit voir s’il peut s’améliorer.

Résultat de l'analyse de 5 modules

Résultat de l’analyse de 5 modules

La liste des doublons est établie selon plusieurs critères, bien entendu plus la chaîne est longue plus l’analyse est pertinente. Deux méthodes sont employées pour faire l’analyse : la première est la similarité (le nombre de caractères identiques entre deux chaînes) et la seconde est basée sur la prononciation des deux chaînes. Les chaînes de moins de 4 caractères sont en revanche ignorées. Le rapport généré ressemble à cela :

Rapport de l'analyse d'un module

Rapport de l’analyse d’un module

La dernière fonctionnalité (probablement la plus intéressante à date) est que l’on peut publier une issue dans l’issue queue du module de façon automatique, de cette façon ce script tourne sur un serveur et le mainteneur est alerté du résultat de l’analyse de son module directement à la source.

Rapports sur Drupal.org

Rapports sur Drupal.org

Quelles sont les prochaines étapes de cette expérience ? Tout d’abord les sources de ce projet son publiques, vous êtes les bienvenus pour y contribuer et pour l’améliorer, le README contient quelques suggestions d’améliorations et la liste n’est pas exhaustive. On compte à minima la discussion avec les administrateurs de l’infrastructure de d.o de la fréquence de passage du bot et d’un moyen plus simple de récupérer la liste des projets afin de rendre le projet accessible en ligne. Les mainteneurs devraient également être en mesure de dire si un doublon identifié a du sens ou non afin qu’il ne leur soit plus présenté. On pourra également lier une base de données au projet afin de stocker les rapports pour ne pas les regénérer à l’infini.
Notez que je ne prévois pas spécialement de maintenir le projet de mon côté, si vous souhaitez le voir continuer, impliquez-vous !

Ce projet a en tous cas été l’occasion de mettre en pratique sur un cycle court de l’agilité, MVP, itérations, daily scrums, refactoring ont étés un fil rouge très intéressant. Ça a été pour moi aussi l’occasion de re-goûter à la POO, j’ai expérimenté Silex, Twig et l’API de config, une belle excuse pour doucement basculer vers D8 en douceur.
Je vous recommande vivement d’essayer de mettre en place ce genre d’atelier chez vous, les gens aiment se challenger, ils manquent seulement de prétextes pour le faire.

Et un dernier mot pour dire merci à Maciej qui s’est occupé de la partie algo, parsing et publication du rapport !

Par Artusamak
Julien Dubois

Retour d’expérience : Drupal et les besoins métier

Il y a parfois certains projets qui vous marquent plus que d’autres et il y en a certains dont vous vous souviendrez toute votre carrière. Le sujet de ce billet fait référence à l’un de ces projets.

J’ai eut l’occasion de passer 18 mois en tant que lead développeur sur un projet métier pour un joailler de luxe. Ce projet était démesuré à bien des niveaux à commencer par son périmètre mais aussi sa taille d’équipe. Une vingtaine de personnes étaient potentiellement amenées à contribuer du code en même temps et la politique du projet était de tout passer à la loupe de la revue de code. Autant dire que ça n’a pas toujours été simple.

Source : http://www.sxc.hu/photo/1406895

Source : http://www.sxc.hu/photo/1406895

Parler plus longuement de ce projet et des leçons à en tirer pourra faire l’occasion d’un billet dédié, mon objectif ici est de partager avec vous le retour d’expérience que nous en avons extrait avec Laurent Chardin, directeur technique de Publicis Modem. Nous avons préparé une session présentée lors du Drupalcamp Paris 2013 au cours de laquelle nous avons montré un fragment des briques que nous avons conçu pour le projet.

Lorsque l’on est expert Drupal, travailler sur de grands projets est l’occasion de chercher à résoudre des problématiques à la mode Drupal à savoir en construisant de nouvelles briques extensibles et réutilisables. Ce projet démarré entre autre par Damien Tournoud a donné vie aux modules Entity Reference, Views Megarow, Entity Override, Migrate remote et à bien d’autres idées qui ont fait leur bout de chemin telle que les form modes qui ont été intégrés au cœur de Drupal 8 grâce à Andrei Amateescu (*dev content*).

Nous avons donc tenté de vous présenter en 45 minutes quelques uns des modules que nous avons développé et avons listé des conseils que nous vous recommandons de mettre en œuvre lorsque vous construisez un backoffice pour vos clients. Le front est toujours très important mais il ne faut pas négliger vos utilisateurs de backoffice, ils passent parfois (souvent) plus de temps à utiliser l’application que les utilisateurs finaux alors ne les délaissez pas ! Vous avez beaucoup d’outils à disposition pour cela aussi avec Drupal core (et notamment ses types d’entités) mais aussi via l’univers de la contrib : vous pouvez créer des vues, calculer des données, créer des groupes d’actions pré-déterminées, etc dans le but de faire gagner du temps à vos utilisateurs. Si en plus de cela vous invitez ces utilisateurs lors de démonstrations régulières (comme Scrum le propose, cf ma présentation de Scrum) vous pourrez intégrer leur avis et les aider à adopter votre travail encore plus vite.

N’hésitez pas à réagir à cette présentation au travers des commentaires, je me ferai un plaisir de vous répondre.

LIBEREZ DRUPAL ! Exploitez les concepts Drupal et magnifiez votre backend !

Par Artusamak
Julien Dubois

Scrum et Drupal, ça vous dit ?

Certains d’entre vous le savent peut être mais j’ai croisé la route de l’agilité il y a quelques années et continue de m’y intéresser en multipliant les lectures et en mettant en application cette philosophie.

Après avoir pris un peu de recul et multiplié les expériences avec l’agilité et Scrum en particulier j’ai décidé de soumettre une présentation au titre aguicheur (« Agilité : En quoi SCRUM et Drupal sont faits pour s’entendre ») au Drupalcamp Paris afin de présenter l’agilité (et Scrum en particulier) à mes homologues Drupaliens.
Le but de la session était plutôt de présenter Scrum que de parler de Drupal mais j’ai quand même pris le temps de montrer en quoi Drupal s’intégrait particulièrement bien avec Scrum.

Curieux d’en savoir plus ? Voici la vidéo de la présentation et les slides qui vont avec. N’hésitez pas à laisser un commentaire si vous avez aimé, détesté ou si vous pensez que des modifications mériteraient d’être apportées à la présentation.

L’ensemble des présentations ont été filmées ou enregistrée, je vous invite à consulter le super programme pour retrouver le détail des présentations.

J’en profite également pour dire un grand bravo à l’équipe d’organisation qui a beaucoup bossé pour faire de cette conférence un bel événement, avec un bravo particulier à Anne-sophie Picot (asplamagnifique) ainsi que mon cher et tendre quasi homonyme Julien Dubreuil (Julien_D).

En quoi Scrum et Drupal sont faits pour s’entendre (vidéo)

En quoi Scrum et Drupal sont faits pour s’entendre (slides) – Drupalcamp Paris 2013

Afficher "Explication ou directives pour la contribution" dans un formulaire création contenu

Bonjour,

Lors de la création d'un nouveau contenu, les indications "Explication ou directives pour la contribution" définies pour ce type de contenu (dans l'onglet "Paramètres du formulaire de contribution", dans la page page "admin/content/node-type/cours-danse") n'apparaissent pas !!!

Impossible donc de préciser des points importants aux visiteurs avant leur saisie d'informations...