Image mise en avant pour l'article

Se préparer à Drupal 9

1 avril 2019
CMS - Drupal - Technologies Web
La nouvelle est tombée, Drupal 7 et 8 cèdent définitivement leur place à Drupal 9 (en novembre 2021 pour Drupal 8 et novembre 2022 pour Drupal 7) !Nous vous invitons à regarder le replay de notre webinar "De l'urgence de migrer sur Drupal 9 ".


 


Lors du Drupal Europe qui s’est tenu du 10 au 14 septembre 2018, Dries Buytaert, le créateur de Drupal, a annoncé qu’une version « 9 » sortirait mi-2020.

Cette annonce a quelque peu surpris la communauté car bien que le cycle de vie de la version majeure de Drupal soit dans la moyenne des versions précédentes, le socle technique, bâti sur le framework Symfony, semblait lui promettre une espérance de vie rallongée par rapport aux versions précédentes.

Finalement, Drupal 8 tire sa révérence en novembre 2021, en même temps que Drupal 7 et Symfony 3 qui équipe actuellement la solution.

Même si Drupal 8 est passé rapidement de Symfony 2.x (8.0 à 8.2) puis à Symfony 3 (dès la 8.3), le framework de SensioLabs ne sera plus maintenu à compter de cette date.

 

se-preparer-drupal-9

 

18 mois pour migrer à partir de Drupal 8.9

La version « 9 » de Drupal est attendue début Juin 2020, en même temps que la version 8.9.0, ce qui laisse 18 mois aux prestataires et DSI pour préparer la migration vers la nouvelle version de la solution.

Sous son titre trompeur, Drupal 9 n’est pas une révolution mais simplement une « mise à jour » du socle technique marquée par le passage de Symfony 3 à Symfony 4 et la suppression de l’ensemble des éléments obsolètes. Nous y reviendrons un peu plus loin… Les vraies nouveautés étant attendues dès la 9.1 (Décembre 2020).

De juin 2020 à Novembre 2021, le socle technique continuera à être maintenu par la communauté via la publication de corrections liées à des problèmes de sécurité. Mais il ne faut sans doute pas espérer y trouver de nouvelles fonctionnalités auxquelles Drupal 8 nous a habitués ces dernières années. Les modules produits par la communauté, qu’il s’agisse de corrections ou de nouvelles fonctionnalités, continueront d’être portés par la communauté au moins jusqu’à la date fatidique.

Depuis plusieurs versions, l’équipe de développement « déprécie » une partie du code. Il s’agit bien entendu accroître la compatibilité avec Symfony 4 mais aussi de supprimer des fonctionnalités qui ne présentent plus d’utilité. Ainsi, la gestion des workflows avancés est désormais intégrée au socle technique tout comme la gestion des médias attendue dans la 8.7 (mai 2019), permettant ainsi de supprimer l’utilisation de certains modules issus de la forge qui étaient nécessaires jusqu’à présent.

En d’autres termes, même si votre site a été développé dans les règles de l’art, l’évolution de la solution a forcément eu un impact sur le code produit. 

Ainsi, des changements profonds seront opérés sur les futures versions, notamment la 8.8.0 (décembre 2019) et la 8.9.0 (Juin 2010), permettant d’évoluer vers Symfony 4 mais aussi sur le futur framework Symfony 5, prévu en novembre 2019. 

 

Quel impact pour le "repository" Drupal ?

Comme pour beaucoup de solutions CMS, Drupal bénéfice d’une forge (appelée référentiel ou repository) où sont stockés notamment l’ensemble des modules et des thèmes.

 

repository-drupal-9

Ceux qui ont connu Drupal 6 et Drupal 7, se souviennent des problèmes inhérents à la montée de version « majeure ». Pour résumer, lorsque vous souhaitiez passer de Drupal 6 à Drupal 7 ou de Drupal 7 à Drupal 8, il était nécessaire d’attendre le portage des modules ou des thèmes que vous utilisiez - en priant très fort qu’il(s) sortirai(en)t un jour. Dans le cas contraire, il n’y avait pas d’autre option que de trouver une solution équivalente ou de créer votre propre module custom.

Avant que vous n’ayez des sueurs froides, nous tenons à vous rassurer : cette situation ne se reproduira pas avec Drupal 9 car le socle technique, même s’il évolue, reste le même. Cependant, des ajustements seront sûrement nécessaires pour parfaire à la montée de versions, des ajustements – sans doute mineurs – pour « porter » la fonctionnalité de Symfony 3 à Symfony 4.

Mais contrairement à ce qui s’est passé avec les versions précédentes, la communauté « Drupalienne » est beaucoup plus aguerrie. Le développement étant beaucoup plus encadré, il y a peu de chance de trouver des développeurs un peu perdus sur la manière dont ils pourraient « upgrader » leur module.

 

Quel impact pour les sites en Drupal 8

Si vous utilisez déjà de Drupal 8 pour votre site, il n'est pas nécessaire de le refondre. Acquia parle bien d’appliquer un patch, c’est-à-dire d’une opération équivalente à celle que vous mettriez en place pour passer d’une version à une autre version mineure…

Mais il ne faut pas se leurrer, car même lorsque vous mettez à jour votre version de Drupal, et pour peu que vous ayez une version ancienne, de nombreux modules, et bien sûr des modules custom, cette tâche se complexifie un peu plus et cet « upgrade » peut conduire à des effets de bords plus ou moins préoccupants.

Pour peu que vous ayez par exemple des modules custom, il est préférable de rester sur les updates d’une même branche soit les patchs 8.6.1, 8.6.2… de la branche 8.6 garantissant (en principe) le bon fonctionnement de l’application.  La mise à jour vers la branche supérieure, ici la 8.7, reste possible mais nécessite une étude de faisabilité préalable pour détecter les éventuels problèmes inhérents à cette mise à jour « mineure ». 

Cependant, en marge de la sortie de la version 9, cet upgrade vers des versions mineures plus récentes devient incontournable pour 2 grandes raisons :

  • les releases 8.0 à 8.3 ne sont plus maintenues et il en sera de même pour la 8.4 début mai 2019,
  • plus votre version de Drupal est à jour, plus aisé sera l’upgrade vers Drupal 9.

Si vous utilisez une version ancienne de Drupal 8 (< Drupal 8.5), il est vivement conseillé d’envisager une maintenance évolutive vers la future 8.7 dont la maintenance « sécurité fix » est assurée jusqu’à Mai 2021 !

drupal-maintenance

Si vous utilisez la version 8.5 ou 8.6, un upgrade vers la 8.7 peut être une bonne chose mais il est sans doute préférable d’attendre la 8.8 prévue en décembre 2019 et qui propose aussi pas mal de nouvelles fonctionnalités, à voir ici (attention, la liste des « features » est encore en discussion et certaines d’entre-elles pourraient être repoussées en Drupal 8.9).

Vous pouvez par ailleurs tester dès maintenant la compatibilité de votre site actuel avec Drupal 9. Matt Glaman a créé début 2019 un petit script de commande (https://github.com/mglaman/drupal-deprecation-testing) qui permet d’avoir une idée assez précise du travail qui reste à abattre et vous éviter de mauvaises surprises.

drupal-glamanate

Source : https://glamanate.com/

Ce travail de « nettoyage » des dépendances obsolètes n’étant pas encore terminé du côté des équipes Drupal, il sera nécessaire de relancer ce script lors de la sortie de la 8.8, voire de la 8.9. A vous de voir si vous préférez traiter d’un coup l’ensemble des problèmes liés à la compatibilité vers D9 ou les traiter dans le temps en plusieurs étapes, la première étant forcément la plus consommatrice de temps.

 

Drupal 9 construit sur ... Drupal 8

Ceux qui ont connu les anciennes versions de Drupal peuvent le confirmer : la montée de version majeure est souvent assimilée à une refonte. Le passage de Drupal 7 à Drupal 8 n’a pas échappé à la règle entre la mise à jour des modules (quand ils existaient), la refonte technique des gabarits (coucou Twig !) … ou encore la migration des contenus via Migrate qui n’a été stabilisée que quelques releases après.

Pas cette fois ! Si vous avez investi de (re)faire votre site en Drupal 8, vous avez finalement fait le bon choix puisque, redisons-le, Drupal 9 se présente comme une mise à jour de Drupal 8, assimilable à celle que mettons en place pour passer d’une version mineure à une autre.

L'histoire est toute autre si vous êtes en Drupal 7...

 

Que faire si votre site est en Drupal 7 ?

Nombreux sont encore ceux qui utilisent Drupal 7 et qui n’ont pas franchi le pas de Drupal 8. Ils ne sont pas oubliés pour autant mais cette « marche » vers Drupal 9 sera forcément plus haute à atteindre.

Sachez tout d’abord que votre site en Drupal 7 bénéfice du support « sécurité » assuré par la Drupal Team jusqu’en novembre 2021. A partir de cette date, une extension de garantie auprès d’une agence spécialisée Drupal comme Adimeo sera nécessaire, comme cela existe déjà aujourd’hui avec des sites en Drupal 5 et 6 que nous maintenons.

Il est temps de penser à la migration de votre site !

Bien qu’il soit possible techniquement de migrer la base de données d’un site Drupal 7 à Drupal 8, cet upgrade reste compliqué car il se base sur d’autres éléments à prendre en compte : le choix des modules mais aussi les versions d’Apache, de MySQL que vous utilisez.

En effet, il n’y a pas que Drupal qui a évolué, et depuis sa sortie le 5 janvier 2011, l’écosystème de la solution a évolué lui aussi. Ainsi, les versions de MySQL mais aussi d’Apache et surtout de PHP utilisées à l’époque ne sont plus maintenues par la communauté aujourd’hui.

drupal

Source : https://www.php.net/supported-versions.php

Deux alternatives sont possibles si vous souhaitez refondre votre site :

  • Développer votre site en Drupal 8, si possible à partir de la 8.7 ou de la 8.8, afin de limiter les éventuelles dépendances obsolètes puis upgrader en Drupal 9.x
  • Si votre projet de refonte peut encore attendre, il est sans doute aussi sage de partir sur un socle Drupal 9 « flambant neuf », expurgé de son code obsolète. L’attente sera cependant un peu plus longue, Drupal 9 n’étant pas attendu (au mieux) avant Juin 2020.

 

Le mot de la fin 

En conclusion et pour reprendre les propos de Dries Buytaert : « The big deal about Drupal 9 is … that it should not be a big deal ». Cette version est surtout une version de transition permettant de ne plus utiliser des modules et des APIS obsolètes et de bénéficier de Symfony 4.

En attendant, n’hésitez pas à venir discuter avec nous de votre projet Drupal... quelle qu’en soit sa version !

Image mise en avant pour l'article
Adimeo