Faut-il attendre Drupal 9 pour mon projet web ?

migration d'oiseaux

Nous avions abordé dans un précédent billet (Une feuille de route pour Drupal 8, et après ?) la nouvelle politique de Drupal 8 en matière de gestion de version, de support et de maintenance de ses versions mineures et majeures. Cette politique a quelque peu évoluée depuis la dernière conférence DrupalCon Baltimore en avril 2017. Et cette évolution de la stratégie de Drupal mérite qu'on s'y attarde quelque peu car elle peut amener un nouvel éclairage à ceux qui hésitent à migrer leur site sur Drupal 8. Ou encore ceux qui s'interrogent sur la pertinence de lancer leur projet Web sur Drupal 8.

Drupal 7 étant maintenu jusque la sortie de Drupal 9, la question d'attendre la sortie de Drupal 9 peut être légitime, d'autant que la rupture technologique entre Drupal 7 et Drupal 8 a été conséquente, et c'est le moins que l'on puisse dire, avec une ré-écriture from scratch d'une très grande partie de son code source (~80%), mais aussi dans le même temps une réduction de sa dette technique.

Et une incertitude plane, jusqu'à présent, sur la hauteur de la marche qu'il y aurait entre Drupal 8 et Drupal 9. Levons cette incertitude.

Une maintenance de Drupal 8 jusque 2019 ?

La publication de la feuille de route de Drupal 8, de sa roadmap, a semble-t-il induit en erreur certains lecteurs quelque peu étourdis. En effet le planning publié sur le cycle des releases sur drupal.org peut parfois être mal interprété. Au point que justement désormais la version en ligne de ce planning dispose d'un watermark Example only.

drupal release cycle

Ce schema explique le principe du cycle de publication des versions mineures de Drupal 8, et les principes de maintenance de Drupal 8 à partir du moment où Drupal 9 sera réalisé. Ce schéma n'indique en rien que Drupal 9 sera publié 4 ans et demi après la sortie de Drupal 8, soit en 2019. Notez le 8.n.x de la dernière version mineure.

Et pourtant, j'ai pu voir circuler ces affirmations catégoriques :

  • La maintenance de Drupal 8 est prévue jusqu'en 2019
  • Drupal 8 bénéficiera d'une maintenance de sécurité uniquement de 2020 à 2021

Et ceci à l'appui d'un schéma quelque peu adapté (sans doute qu'il a été mal compris), avec l'ajout des années sur l'axe des abscisses.

False release cycle drupal 8
Schéma modifié (et faussé) du cycle de release des versions mineures et majeures de Drupal.

 

A ce jour personne ne sait si la version Drupal 8.4.x sera la dernière version mineure de Drupal 8, avec le lancement de Drupal 9 en 2018. En fait on parle déjà des versions 8.5.x et 8.6.x actuellement et des nouveaux ajouts fonctionnels prévus au coeur de Drupal 8, que ce soit au niveau du processus de publication, du versionning de contenus, d'une gestion de média repensée, de l'intégration de JsonAPI etc. 

Non. La fin de la maintenance de Drupal 8 n'est pas prévue pour 2019. En fait, pour être clair, personne ne le sait. On peut tout aussi bien avoir une version Drupal 8.6.x comme dernière version mineure LTS qu'une version Drupal 8.14.x LTS en 2022.

Et si quelqu'un ose affirmer le contraire à ce jour, alors elle dispose d'une vision de l'avenir hors du commun, et ferait bien de jouer au Loto tout de suite.

Drupal 9 sera-t-il une rupture technologique avec Drupal 8 ?

Drupal 8 a été une véritable rupture technologique.  Et il est compréhensible que certaines réticences s'expriment si l'effort nécessaire pour migrer un projet Drupal 8 sur la futur version Drupal 9 est aussi important que celui qui est à faire entre Drupal 7 et Drupal 8. Au vu de cette incertitude, on peut comprendre que de nombreux sites sur Drupal 7 puissent attendre à version de Drupal 9, au cas où...

Au lieu de 2 migrations, qui ne sont pas anodines pour des sites complexes (et encore cela dépend du projet, certains sites Drupal 7 peuvent être migrés en quelques jours tout au plus), je préfère n'en faire qu'une.

C'est logique et compréhensible.

Mais depuis la DrupalCon Baltimore en avril dernier, Dries Buytaert a clarifié cette politique sur les prochaines versions majeures de Drupal (cf. Making Drupal upgrades easy forever) Et levé cette incertitude et cette crainte.

La migration de Drupal 8 vers Drupal 9 sera aussi facile qu'une migration d'une version mineure de Drupal 8 à une autre. En fait Drupal 9 ne sera ni plus ni moins qu'un nouveau Drupal 8 allégée de toute son API qui aura été déprécié au fur et et mesure de ses versions mineures. Une image vaut mieux que tous les discours.

Migration Drupal 9

Les conséquences de cette politique vis à vis du futur Drupal 9 sont multiples

  • Pour qui utilise le coeur de Drupal 8, la migration sur Drupal 9 sera instantanée. En fait ce sera tout simplement aussi simple qu'un changement de version mineure.
  • Les modules contrib Drupal 8 seront compatibles à 95% avec Drupal 9, voire 100% si les mainteneurs substituent au fur et à mesure des versions mineures de Drupal 8 les fonctions deprecated par les nouvelles API introduites
  • Les modules custom, développés sur mesure, seront compatibles avec Drupal 9 également, au même titre que les modules contrib

On pourrait presque dire que Drupal 9 sera la continuité de Drupal 8 avec une API consolidée, affinée, et épurée mais aussi avec toute la richesse fonctionnelle, à portée de clic, introduite avec tous les ajouts qui sont réalisés au fur et à mesure des versions mineures Drupal 8.x.

En fait, si on voulait essayer de deviner la date de la fin de maintenance de Drupal 8 aujourd'hui, on ferait tout aussi bien d'essayer de trouver une aiguille dans une meule de foin. Et même si on la trouvait, la belle affaire ! Drupal 9 ne serait qu'une version mineure supplémentaire, juste un peu plus particulière. Avec tout l'écosystème des modules contribués préservé et compatible.

Autrement dit, la compatibilité des modules est désormais garantie sur les versions majeures ascendantes.

Et ceci est une très bonne nouvelle. Non ?

 

Ajouter un commentaire