SlideShare une entreprise Scribd logo
1  sur  37
© Groupe CGI inc. CONFIDENTIEL
Quelques conseils sur la migration des modules
à Drupal 8. Étude de cas: Node Revision Delete
Adrian Cid Almaguer
DrupalCamp Montreal 2017
Adrian Cid Almaguer (adriancid)
2
https://www.drupal.org/u/adriancid
https://github.com/adrian-cid/
@adriancid
Avant de commencer
3
Vous allez souffrir 45 minutes de quelqu'un qui ne parle pas bien le français ni l'anglais.
Pero seguramente en español todos entenderían esta presentación. No es cierto?
Quelques concepts ...
Migration
Voyages que font certaines espèces d’animaux, soit périodiquement, soit à des
époques irrégulières.
4
(Informatique) Passage d'un état existant d'un système d'information ou d'une
application vers une cible définie dans un projet ou un programme. Autrement
dit, c'est changer de logiciel ou de machine, ce qui peut impliquer des traitements
complexes des données déjà existantes.
On parlera de:
• Quelques conseils qui vont nous aide pendant la migration
• Comment convertir quelques éléments de Drupal 7 à Drupal 8
• Nos résultats jusqu'a aujourd'hui
• Où sommes-nous dans la migration?
5
Il existe un guide pour convertir un module de Drupal 7 a Drupal 8?
https://www.drupal.org/docs/8/converting-drupal-7-modules-to-drupal-8
6
Je crois qu'il existe des
conseils en général, mais,
une recette pour tout les
modules, c'est difficile de
trouver.
Mais il y a des éléments qui
sont commun pour tous les
modules.
Pourquoi cette présentation?
Je vais essayer de vous montrer qu’est-ce qu’on a fait; notre parcours
dans la migration de:
Node Revision Delete
https://www.drupal.org/project/node_revision_delete
7
Eureka!!!
Alors je vais pouvoir migrer mon module
avec les conseils que vous allez donner ici?
8
Je ne crois pas, mais on va te donner
des idees pour faire le travail plus facile!
Avant de commencer:
Notre but avant de commencer la migration a été vraiment d'avoir une module pour
nettoyer les revisions de nodes dans Drupal 8. Et nous connaissions le module Node
Revision Delete, mais on savait aussi qu'il n'existe pas pour Drupal 8.
9
Bon, c'est facile:
drush migrate node_revision_detele -from 7 -to 8
Notre première tâche: Rechercher les modules existants.
Voici ce qu'on a trouvé pour éliminer les revisions:
• Node Revision Cleanup ( https://www.drupal.org/project/node_revision_cleanup )
• Node Revision Restrict ( https://www.drupal.org/project/node_revision_restrict )
• Revision Deletion ( https://www.drupal.org/project/revision_deletion )
• Node Revision Delete ( https://www.drupal.org/project/node_revision_delete )
10
Pensez vous que cette tâche est important? Pour quoi?
La plus important, elle va nous aide beaucoup.
Révision des modules existants
Pour chaque module:
• Rechercher information dans son page de drupal.org
• Étudier le code
• Lire tous les issues, ouverts et fermés
11
Rechercher des points négatifs et favorables
• Cette tache nous permettra d'écrire la section “Similar Projects”
Tips for a great project page (https://www.drupal.org/node/997024)
12
• Découvrir des fonctionnalités qui sont pertinent dans chaque module
Sélection du module à migrer
13
Annoncer dans la communauté qu'on va faire la migration
14
https://www.drupal.org/project/contrib_tracker
Utilisez le modèle pour les “issues”
15
http://www.jrockowitz.com/blog/wrangling-the-webform-issue-queue
Combien d'entre nous avons lu (pas vu) cette message?
Combien d'entre nous avons fait ce qu'il dit?
On commence avec la migration
Le Saint Graal
17
https://www.drupal.org/project/drupalmoduleupgrader
Oui, c'est n'est pas magique, à la fin il faut mettre les
doigts et développer un peu.
.info.yml
18
https://www.drupal.org/node/2116015
node_revision_delete.info => node_revision_delete.info.yml
Le seule fichier qu'on a besoin pour créer un nouveau module maintenant c’est le .info.yml.
.routing.yml
19
https://www.drupal.org/node/2291273
hook_menu() => .routing.yml
node_revision_delete.routing.yml
ConfigFormBase
20
https://www.drupal.org/node/2291273
callback => ConfigFormBase
NodeRevisionDeleteAdminSettings
Les variables de configuration
21
https://www.drupal.org/node/1667896
hook_install() => .settings.yml
C'est n'est pas obligatoire la definition
des variable mais c'est fortement
recommande.
.schema.yml
22
https://www.drupal.org/node/1667896
node_revision_delete.settings.yml node_revision_delete.schema.yml
C'est n'est pas facile à imaginer la structure
de la variable node_revision_delete_track
sans avoir son schema.
Configuration inspector for Drupal 8
23
https://www.drupal.org/project/config_inspector
Les permissions
24
When I should create a new permission in my custom module?
hook_permission() => .permission.yml
Lors de la création d'un module contrib, vous devez considérer que vous ne connaissez
probablement pas toutes les possibles utilisations.
Coding standards
La function t()
Maintenant vous devez utiliser la fonction t()
seulement si vous êtes dans une procedural
code.
Si vous avez une code POO vous devez
utiliser le méthode $this->t(), s'il n'est pas
disponible vous pouvez utiliser le trait
StringTranslationTrait
25
https://www.drupal.org/project/coder
https://chromatichq.com/blog/drupal-code-standards-what-are-they
Quelques Résultats
Section “Similar Projects” (https://www.drupal.org/project/node_revision_delete)
27
Page de configuration pour chaque type de contenu
28
admin/structure/types/manage/article
8.x-1.0-alpha2
7.x-2.7
On a pris des idées d'autres
modules
Page de configuration
29
admin/config/content/node_revision_delete
7.x-2.7
8.x-1.0-alpha2
On connaît bien la version 7.x-2.6, alors on peut aider avec 7.x-2.7
30
Maintenance status: Actively maintained
Development status: Under active development
Reported installs: 3,066 sites currently report using this module.
Downloads: 23,369
Project page last modified: 19 October 2015
Latest version: 7.x-2.6 (2014-Sep-01)
Latest dev version: 7.x-2.x-dev (2016-Sep-29)
7.x-2.6
7.x-2.7
Maintenance status: Actively maintained
Development status: Under active development
Reported installs: 3,162 sites currently report using this module.
Downloads: 23,369
Project page last modified: 30 May 2017
Latest version: 7.x-2.7 (2017-May-25)
7.x-2.7
Et on peut aller plus loin encore -> 7.x-3.0
31
https://www.drupal.org/project/node_revision_delete
Où sommes-nous?
32
https://github.com/adrian-cid/node_revision_delete/releases
Mais on a besoin d’aide
33
https://www.drupal.org/project/node_revision_delete
https://www.drupal.org/node/2866825
Je suis maintenant le maintainer du
module, mais on a besoin d’autres
qui puissent critique et nous aide au
moins avec son opinion à propos de
notre travail.
Merci pour votre attention
et désolé pour mon français, mais la presentation
en anglais aurait pu être pire ;-)
Google n'a pas aidé beaucoup avec la
traduction!!!
36
Prochaine défi, présentation en anglais!
Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node Revision Delete

Contenu connexe

Similaire à Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node Revision Delete

Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Présentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysPrésentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysALTER WAY
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Pierre Ternon
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)LaNetscouade
 
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Xavier NOPRE
 
presentationSCRUM.pptx
presentationSCRUM.pptxpresentationSCRUM.pptx
presentationSCRUM.pptxFaouziRBEIHI
 
a Supply Chain a pour mission de gérer de bout en bout les flux
a Supply Chain a pour mission de gérer de bout en bout les fluxa Supply Chain a pour mission de gérer de bout en bout les flux
a Supply Chain a pour mission de gérer de bout en bout les fluxDanielMohamed4
 
Drupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalDrupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalCore-Techs
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniterAtsé François-Xavier KOBON
 
Drush make driven development
Drush make driven developmentDrush make driven development
Drush make driven developmentSébastien Corbin
 
Solution d'OTA
Solution d'OTASolution d'OTA
Solution d'OTASidereo
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...slybud
 

Similaire à Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node Revision Delete (20)

Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Pas possible en drupal, c'est faux
Pas possible en drupal, c'est fauxPas possible en drupal, c'est faux
Pas possible en drupal, c'est faux
 
Présentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysPrésentation Drupal - Global Training Days
Présentation Drupal - Global Training Days
 
Serveur node red
Serveur node redServeur node red
Serveur node red
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)Mener à bien un projet Drupal (Drupagora 2013)
Mener à bien un projet Drupal (Drupagora 2013)
 
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
 
presentationSCRUM.pptx
presentationSCRUM.pptxpresentationSCRUM.pptx
presentationSCRUM.pptx
 
a Supply Chain a pour mission de gérer de bout en bout les flux
a Supply Chain a pour mission de gérer de bout en bout les fluxa Supply Chain a pour mission de gérer de bout en bout les flux
a Supply Chain a pour mission de gérer de bout en bout les flux
 
Drupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalDrupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet Drupal
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Drush make driven development
Drush make driven developmentDrush make driven development
Drush make driven development
 
Solution d'OTA
Solution d'OTASolution d'OTA
Solution d'OTA
 
Cours spring
Cours springCours spring
Cours spring
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
Campusfrance.org + D8 : Comment industrialiser la production et l'intégration...
 

Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node Revision Delete

  • 1. © Groupe CGI inc. CONFIDENTIEL Quelques conseils sur la migration des modules à Drupal 8. Étude de cas: Node Revision Delete Adrian Cid Almaguer DrupalCamp Montreal 2017
  • 2. Adrian Cid Almaguer (adriancid) 2 https://www.drupal.org/u/adriancid https://github.com/adrian-cid/ @adriancid
  • 3. Avant de commencer 3 Vous allez souffrir 45 minutes de quelqu'un qui ne parle pas bien le français ni l'anglais. Pero seguramente en español todos entenderían esta presentación. No es cierto?
  • 4. Quelques concepts ... Migration Voyages que font certaines espèces d’animaux, soit périodiquement, soit à des époques irrégulières. 4 (Informatique) Passage d'un état existant d'un système d'information ou d'une application vers une cible définie dans un projet ou un programme. Autrement dit, c'est changer de logiciel ou de machine, ce qui peut impliquer des traitements complexes des données déjà existantes.
  • 5. On parlera de: • Quelques conseils qui vont nous aide pendant la migration • Comment convertir quelques éléments de Drupal 7 à Drupal 8 • Nos résultats jusqu'a aujourd'hui • Où sommes-nous dans la migration? 5
  • 6. Il existe un guide pour convertir un module de Drupal 7 a Drupal 8? https://www.drupal.org/docs/8/converting-drupal-7-modules-to-drupal-8 6 Je crois qu'il existe des conseils en général, mais, une recette pour tout les modules, c'est difficile de trouver. Mais il y a des éléments qui sont commun pour tous les modules.
  • 7. Pourquoi cette présentation? Je vais essayer de vous montrer qu’est-ce qu’on a fait; notre parcours dans la migration de: Node Revision Delete https://www.drupal.org/project/node_revision_delete 7
  • 8. Eureka!!! Alors je vais pouvoir migrer mon module avec les conseils que vous allez donner ici? 8 Je ne crois pas, mais on va te donner des idees pour faire le travail plus facile!
  • 9. Avant de commencer: Notre but avant de commencer la migration a été vraiment d'avoir une module pour nettoyer les revisions de nodes dans Drupal 8. Et nous connaissions le module Node Revision Delete, mais on savait aussi qu'il n'existe pas pour Drupal 8. 9 Bon, c'est facile: drush migrate node_revision_detele -from 7 -to 8
  • 10. Notre première tâche: Rechercher les modules existants. Voici ce qu'on a trouvé pour éliminer les revisions: • Node Revision Cleanup ( https://www.drupal.org/project/node_revision_cleanup ) • Node Revision Restrict ( https://www.drupal.org/project/node_revision_restrict ) • Revision Deletion ( https://www.drupal.org/project/revision_deletion ) • Node Revision Delete ( https://www.drupal.org/project/node_revision_delete ) 10 Pensez vous que cette tâche est important? Pour quoi? La plus important, elle va nous aide beaucoup.
  • 11. Révision des modules existants Pour chaque module: • Rechercher information dans son page de drupal.org • Étudier le code • Lire tous les issues, ouverts et fermés 11
  • 12. Rechercher des points négatifs et favorables • Cette tache nous permettra d'écrire la section “Similar Projects” Tips for a great project page (https://www.drupal.org/node/997024) 12 • Découvrir des fonctionnalités qui sont pertinent dans chaque module
  • 13. Sélection du module à migrer 13
  • 14. Annoncer dans la communauté qu'on va faire la migration 14 https://www.drupal.org/project/contrib_tracker
  • 15. Utilisez le modèle pour les “issues” 15 http://www.jrockowitz.com/blog/wrangling-the-webform-issue-queue Combien d'entre nous avons lu (pas vu) cette message? Combien d'entre nous avons fait ce qu'il dit?
  • 16. On commence avec la migration
  • 17. Le Saint Graal 17 https://www.drupal.org/project/drupalmoduleupgrader Oui, c'est n'est pas magique, à la fin il faut mettre les doigts et développer un peu.
  • 18. .info.yml 18 https://www.drupal.org/node/2116015 node_revision_delete.info => node_revision_delete.info.yml Le seule fichier qu'on a besoin pour créer un nouveau module maintenant c’est le .info.yml.
  • 21. Les variables de configuration 21 https://www.drupal.org/node/1667896 hook_install() => .settings.yml C'est n'est pas obligatoire la definition des variable mais c'est fortement recommande.
  • 22. .schema.yml 22 https://www.drupal.org/node/1667896 node_revision_delete.settings.yml node_revision_delete.schema.yml C'est n'est pas facile à imaginer la structure de la variable node_revision_delete_track sans avoir son schema.
  • 23. Configuration inspector for Drupal 8 23 https://www.drupal.org/project/config_inspector
  • 24. Les permissions 24 When I should create a new permission in my custom module? hook_permission() => .permission.yml Lors de la création d'un module contrib, vous devez considérer que vous ne connaissez probablement pas toutes les possibles utilisations.
  • 25. Coding standards La function t() Maintenant vous devez utiliser la fonction t() seulement si vous êtes dans une procedural code. Si vous avez une code POO vous devez utiliser le méthode $this->t(), s'il n'est pas disponible vous pouvez utiliser le trait StringTranslationTrait 25 https://www.drupal.org/project/coder https://chromatichq.com/blog/drupal-code-standards-what-are-they
  • 27. Section “Similar Projects” (https://www.drupal.org/project/node_revision_delete) 27
  • 28. Page de configuration pour chaque type de contenu 28 admin/structure/types/manage/article 8.x-1.0-alpha2 7.x-2.7 On a pris des idées d'autres modules
  • 30. On connaît bien la version 7.x-2.6, alors on peut aider avec 7.x-2.7 30 Maintenance status: Actively maintained Development status: Under active development Reported installs: 3,066 sites currently report using this module. Downloads: 23,369 Project page last modified: 19 October 2015 Latest version: 7.x-2.6 (2014-Sep-01) Latest dev version: 7.x-2.x-dev (2016-Sep-29) 7.x-2.6 7.x-2.7 Maintenance status: Actively maintained Development status: Under active development Reported installs: 3,162 sites currently report using this module. Downloads: 23,369 Project page last modified: 30 May 2017 Latest version: 7.x-2.7 (2017-May-25) 7.x-2.7
  • 31. Et on peut aller plus loin encore -> 7.x-3.0 31 https://www.drupal.org/project/node_revision_delete
  • 33. Mais on a besoin d’aide 33 https://www.drupal.org/project/node_revision_delete https://www.drupal.org/node/2866825 Je suis maintenant le maintainer du module, mais on a besoin d’autres qui puissent critique et nous aide au moins avec son opinion à propos de notre travail.
  • 34. Merci pour votre attention
  • 35. et désolé pour mon français, mais la presentation en anglais aurait pu être pire ;-) Google n'a pas aidé beaucoup avec la traduction!!!