Avec l’annonce de la sortie de Drupal 9 (3 juin 2020), beaucoup de questions ont été levées quant aux processus de mises à niveau des sites en Drupal 7 et 8.
Dans le passé, chaque nouvelle version majeure de Drupal était considérée comme une rupture par rapport à la précédente, ce qui ne garantissait pas la compatibilité entre l’actuelle et la dernière en date et causait beaucoup de difficultés aux utilisateurs confrontés aux processus de mises à niveau.
En effet, la force de l’architecture modulaire de Drupal couplée à une longue période de maintenance obligeait alors les développeurs de la communauté Drupal à développer des versions différentes d’un même module pour chacune des versions de Drupal. Ceci impliquait donc des temps accrus en terme de migration, et des hésitations quant à l’adoption des dernières versions de Drupal.
Puis est arrivée la version 8 qui a bousculé les usages, tant en terme de code que de méthodologie : en effet, l’adoption de composants Symfony avec des rythmes de mise à jour fréquent et une philosophie d’introduction au fur et à mesure des composants a permis de fluidifier le process et de s’assurer que la migration vers la dernière version soit aussi facile que possible.
Drupal 9 a été conçu sur le socle technique de Drupal 8 : lorsque de nouvelles fonctionnalités sont ajoutées et deviennent stables, les anciennes fonctionnalités sont déclarées comme dépréciées, et remontent aux mainteneurs des modules, leur laissant le temps de réagir pour adapter leur code. La sortie de Drupal 9 est une opportunité pour mettre à jour le code et supprimer les lignes n’ayant plus lieu d’être.
Très peu de fonctionnalités sont à attendre pour la sortie de cette nouvelle version, mais beaucoup de nouveautés à prévoir pour la première mise à jour mineure attendue en Décembre 2020 :
• Une gestion du contenu média plus riche avec une bibliothèque plus avancée.
• L’intégration de workflows et de workspaces qui permettent de créer du contenu autour de plusieurs scénarios (ex: le résultat du ballon d’or) et de publier le contenu approprié.
• Layout builder, un outil de conception visuelle qui permet de personnaliser les mises en pages basées sur des templates.
• BigPipe, un module qui augmente les performances d’affichage des pages, en priorisant le contenu principal, pendant que les barres latérales continuent à être générées.
• Des capacités multilingues encore plus puissantes, avec 4 modules de langue.
• Des barres d’outils adaptées à tous types d’appareils et d’écrans
• L’organisation de pages par blocs.
• Des corrections de bogues
• Une mise à jour des dépendances, comme les composants Symfony 3 (qui arriveront en fin de vie en Novembre 2021) vers Symfony 4.
Et la liste n’est pas exhaustive.
Il est essentiel de retenir que la nouvelle version de Drupal ne se concentre pas sur de nouvelles fonctionnalités, qui apparaissent de toutes façons au fur et à mesure, mais que l’objectif est d’assurer une migration générale à partir des anciennes versions (7 et 8), qui ne pourront plus recevoir de support de la part de la communauté Drupal et de mises à jour de sécurité au delà de 2021 (fin de vie des composants Symfony 3).
La migration vers Drupal 9 est relativement simple pour les utilisateurs de Drupal 8 et une refonte n’est généralement pas nécessaire.
Si vous êtes utilisateurs de Drupal 8, il vous suffit de vous assurer que votre site et que votre environnement sont compatibles aux exigences Drupal 9. Les modules doivent être mis à jour dans la version la plus récente et tout le code déprécié doit être ajusté ou supprimé. Des outils en ligne de commande sont là pour relever les dépréciations, mais également pour gérer la mise à jour des dépendances. Cette logique est alors automatique & étendue aux modules contribués qui doivent également être mise à jour.
A noter, que la version 8.9 est équivalente à la version 9.0 à la différence que les dépréciations présentes dans la 8.9 ont été enlevées de la 9.0. Ceci permet une transition fluide et sans heurts vers la version supérieure.
Si votre site est conçu avec Drupal 7 ou inférieur, les choses sont plus compliquées : le code, au delà d’être radicalement différent des versions 8 et 9, cessera d’être maintenu en 2021. Cela signifie qu’il n’y aura plus de nouvelles fonctionnalités, mais également qu’il n’y aura plus de corrections de bogues, ni de compatibilité avec les systèmes récents. Cela introduira de facto des failles de sécurités incomblables sauf à refondre tout le système.
La migration en elle-même est délicate, car bien que certains outils existent pour reprendre les données, bon nombre de modules sont discontinués et les nouvelles implémentations ne sont tout simplement pas compatibles avec l’ancien modèle de données. Les thèmes en eux-mêmes sont également très impactés car le langage de templating a été changé (twig sous D8/9). La migration de D7 vers une version supérieure est sous bien des aspects une refonte, avec des temps équivalents à ceux d’un projet classique sorti de la boîte.
Il convient alors d’anticiper et de planifier ce passage avant l’échéance fatidique de 2021.
Drupal 9 s’annonce comme l’évolution naturelle de Drupal 8 vers une version toujours plus puissante et toujours plus plus agile, qui permettra d’améliorer continuellement les fonctionnalités et la sécurité via la suppression de codes obsolètes et l’intégration d’APIs plus simples à utiliser.
Cette version traduit le changement de philosophie adopté au passage en D8 qui facilite les migrations de Drupal 8 à Drupal 9, et pour reprendre les propos de Dries Buytaert : « The big deal about Drupal 9 is … that it should not be a big deal »
Pour ce qui est des sites en Drupal 7, l’investissement dans une refonte sera nécessaire avant 2021, et permettra d’envisager avec sérénité la vie future de vos sites sous Drupal.
N’hésitez pas à nous contacter, pour vous accompagner dans votre projet de refonte ou de migration.
Si vous pouvez l’imaginer, nous pouvons le faire!