Advency quick access

Aller vers :

Retour
Drupal

Passer de Drupal 9 à Drupal 10

Drupal 10 arrivera en décembre 2022. Tout comme la mise à jour de Drupal 8 à Drupal 9, cette mise à jour sera une transition en douceur pour tout site Drupal bien construit et maintenu. Depuis Drupal 8, les mainteneurs de Drupal ont mis en place une approche prévisible pour la sortie des nouvelles versions du CMS. Cela profite à tous ceux qui construisent, maintiennent ou gèrent un site Drupal en nous donnant un chemin clair pour les mises à jour d'une version majeure à une autre.

Les nouveautés dans Drupal 10
Publié le 30 novembre 2022, mis à jour le 22 décembre 2022

Dans de nombreux cas, cette mise à jour est triviale pour les développeurs et peut être effectuée en quelques étapes simples. Pour les administrateurs de sites et les créateurs de contenu, il s'agit d'une transition transparente qui apporte de nouvelles fonctionnalités et des améliorations qui rendent la gestion des sites Drupal plus facile et plus rapide.

Avant d’évoquer la procédure à suivre pour effectuer la migration, nous commencerons par un tour rapide sur les nouvelles fonctionnalités de Drupal 10

Suppression du code déprécié

Le code et les bibliothèques du noyau de Drupal qui ont été identifiés comme "dépréciés" dans Drupal 9 seront supprimés. Tout au long de la vie de Drupal 9, des améliorations ont été apportées au code qui fait fonctionner le framework. Lorsqu'une amélioration est apportée au code, il y a probablement un autre code qui peut être retiré. 

Ce code ne peut pas être supprimé immédiatement, car il risquerait de casser des fonctionnalités dans le code personnalisé d'un site ou dans les modules contribués. Ce code est donc marqué comme déprécié pour indiquer qu'il sera supprimé dans la prochaine version majeure de Drupal. Cela donne aux développeurs suffisamment de temps pour mettre à jour leur code afin qu'il soit compatible avec Drupal 10.

Un exemple de code déprécié dans le noyau de Drupal dans Drupal 9 est la classe "NodeAddAccessCheck". Elle permet de déterminer si un utilisateur a la permission d'ajouter un nouveau nœud Drupal (entité de contenu) au site. Elle est supprimée au profit de la classe "EntityCreateAccessCheck" qui remplit la même fonction, mais est utilisée pour vérifier les autorisations d'ajouter tout type d'entité plutôt que de simples nœuds. Cela simplifie la base de code et rend plus cohérente l'écriture du code qui doit vérifier les autorisations des utilisateurs. 

Un autre type de dépréciation dont Drupal doit tenir compte est la fin de vie du code et des bibliothèques externes utilisés par Drupal. Drupal utilise le framework Symfony "sous le capot" pour fournir de nombreuses fonctionnalités communes à presque tous les sites web, comme la gestion des cookies, la gestion et le routage des requêtes entrantes et les services. Cela nous donne un excellent point de départ pour construire le noyau de Drupal plutôt que de devoir réinventer la roue pour chacun de ces composants. Drupal 9 utilise Symfony version 4, dont la fin de vie est prévue pour novembre 2023. Drupal 10 utilisera la version 6 de Symfony, qui apporte les dernières améliorations de Symfony à Drupal et contribue à la sécurité du système.

Certaines de ces mises à jour peuvent sembler anodines pour Drupal 10, mais ces améliorations contribuent à la sécurité du site, aux performances et à la cohérence d'une page à l'autre dans l'interface d'administration. L'ensemble de ces améliorations rend Drupal 10 plus facile pour les créateurs de contenu et les administrateurs de site, qui peuvent ainsi mener à bien leur travail sur le site.

Modifications de certains paramètres par défaut de Drupal

Lors de l'installation de Drupal pour une nouvelle application de site Web, il existe un grand nombre de paramètres qui mettent en œuvre l'aspect et les fonctionnalités du site prêts à l'emploi. Lors de l'installation d'un nouveau site dans Drupal 9 avec le profil d'installation standard, nous sommes accueillis avec cette page d'accueil sur le site :

Core Themes: Bartik | Drupal 9, Drupal 8

Le thème frontal par défaut de Drupal 10 est maintenant Olivero, qui est décrit comme "un thème frontal Drupal propre, accessible et flexible". Il a été initialement introduit en tant que thème expérimental dans la version 8.8 de Drupal Core. Le thème Olivero est disponible en tant que thème stable depuis la version 9.3 de Drupal.

Drupal 10 – Worauf muss man achten? | LAKdev

Les nouveaux thèmes par défaut de Drupal 10 offriront une meilleure expérience aux gestionnaires de contenu des sites Drupal. Les gestionnaires de contenu et les administrateurs de sites pourront plus facilement trouver et effectuer le travail dont ils ont besoin dans l'arrière-plan de leurs sites Drupal.

Suppression de certains modules de base

Le noyau de Drupal 10 fera ses adieux à quelques modules qui sont redondants ou peu utilisés. Ces modules seront déplacés vers l'espace des modules contribués pour assurer leur continuité. Cette mesure contribuera à alléger le noyau de Drupal et à en faciliter la maintenance. Selon les discussions du noyau de Drupal, ces modules seront probablement retirés du noyau de Drupal :

  • Aggregator - Rassemble et affiche du contenu syndiqué (flux RSS, RDF et Atom) provenant de sources externes.
  • QuickEdit - Edition de contenu sur place.
  • HAL - Sérialise les entités en utilisant le langage d'application hypertexte.
  • Activity Tracker - Permet le suivi du contenu récent pour les utilisateurs. 
  • RDF - Ajoute des métadonnées aux pages pour permettre à d'autres systèmes de comprendre leurs attributs. 
  • Forum - Fournit des forums de discussion.

Certains de ces modules de base étaient activés par défaut, mais n'étaient pratiquement jamais utilisés selon les statistiques d'utilisation et les enquêtes auprès des utilisateurs. Leur suppression du noyau de Drupal permettra d'éliminer le désordre visuel et d'améliorer l'expérience de gestion de contenu pour les utilisateurs.

En plus de la suppression de certains modules de base, certaines dépendances JavaScript seront également supprimées. Les changements apportés au JavaScript livré avec Drupal core contribueront à le rendre plus sûr et plus facile à maintenir. Le plus grand changement sera la suppression de certaines utilisations de jQuery. jQuery fait partie de Drupal depuis Drupal 5 (sorti en 2007). Le passage à l'utilisation du JavaScript classique élimine les risques de publication qui ont surgi dans le passé en raison des processus de sécurité et de publication de jQuery et de jQuery UI.

Le fait de dire adieu à QuickEdit rendra Drupal 10 plus facile à gérer pour les créateurs de contenu. Le module QuickEdit ajoutait une icône de crayon à côté de tout champ de contenu sur le site. Si cette fonctionnalité était agréable à utiliser lorsqu'elle a été introduite dans Drupal 7, son utilité a diminué depuis l'introduction de flux de travail avec révisions de contenu. Une fois que les flux de modération de contenu sont ajoutés à un site Drupal, l'expérience d'édition en ligne de QuickEdit ne peut pas être utilisée car elle n'est pas compatible avec les flux.

Parmi les grandes améliorations apportées au système global, il y a quelques nouvelles fonctionnalités que les créateurs de contenu vont apprécier. 

Nouvelles expériences d'édition

CK Editor 5 sera l'éditeur de texte enrichi (WYSIWYG) par défaut dans Drupal 10. Il s'accompagne de nombreuses fonctionnalités qui amélioreront l'expérience d'édition de contenu. Ceux-ci incluent la mise en forme automatique où vous pouvez ajouter du gras avec ** astérisques **, des titres avec #, du code en ligne avec 'texte', un bloc de code avec ''' et des listes à puces avec *. 

Des améliorations ont également été apportées à la fonctionnalité de collage à partir d'un document. La nouvelle version de CK Editor vante la possibilité de supprimer le balisage superflu qui provient du collage de Word ou de Google Docs. Il télécharge également automatiquement des images lors du collage d'images à partir du presse-papiers, plutôt que de simplement l'ajouter en tant que balise <img> qui pointe vers un site tiers. L'outil de création de pages populaire de Drupal, Layout Builder, devrait également apporter des améliorations qui amélioreront la gestion du contenu sur le site pour les créateurs de contenu. Les détails complets de ces améliorations ne sont pas encore disponibles. 

Colonne latérale Claro Drupal 10

L'édition de grands blocs de texte dans la barre latérale peut être encombrante et déroutante, surtout lorsqu'il y a plus que quelques champs à éditer. Les améliorations apportées à cette expérience rendront la gestion des mises en page beaucoup plus facile.

D'autres améliorations pourraient être apportées à Layout Builder, notamment à l'interface elle-même. Pour certains, l'interface de Layout Builder est maladroite, et les demandes de fonctionnalités en attente demandent de meilleurs moyens de déplacer et de gérer les blocs qui sont placés dans Layout Builder.

Les bases des améliorations futures

La sortie de Drupal 10 ouvre la voie à d'autres améliorations qui seront apportées à Drupal au cours des prochains mois et des prochaines années. En maintenant Drupal à jour avec les bibliothèques et composants open source les plus récents, les plus rapides et les plus sûrs, les développeurs Drupal ont la possibilité d'innover en permanence et d'apporter de nouvelles fonctionnalités à Drupal. 

Avec l'émergence d'expériences composables et l'imbrication croissante du web et des médias sociaux dans le marketing, Drupal 10 continue d'ouvrir la voie à de formidables expériences utilisateur pour l'avenir.

Comment migrer Drupal 9 vers Drupal 10 ? 

Préparez Drupal 10

L'autre bonne nouvelle est que la mise à niveau de Drupal 9 à Drupal 10 va être encore plus facile ! Avec l'aide d'outils incroyables tels que Rector pour vous aider à automatiser les mises à jour de code, la mise à niveau de votre site Drupal 9 vers Drupal 10 sera 300 % plus automatisée qu'une mise à niveau de Drupal 8 vers Drupal 9.

Selon la récente DriesNote à la DrupalCon Europe 2021, l'initiative de préparation à Drupal 10 a fait des progrès étonnants et a déjà accompli 70% du travail !

Voici ce que vous pouvez faire pour vous préparer à Drupal 10 :

Si vous êtes encore sous Drupal 7 (ou Drupal 6), contactez-nous afin de vous aider à mettre à niveau votre CMS et passer à minima sur Drupal 9 sans impacter le bon fonctionnement de votre site ou casser vos connexions externes.

Si vous êtes sous Drupal 8, effectuez rapidement la mise à niveau vers Drupal 9 (avant la fin de vie de Drupal 8).

Assurez-vous d'avoir mis à jour votre site vers la dernière version de Drupal 9.

Mettez à jour tous vos projets contribués pour supprimer les dépréciations afin de supporter Drupal 10.

Cela garantira la prise en charge des dernières bibliothèques, des derniers composants et des dernières versions de PHP (car leurs anciennes versions seront dépréciées dans Drupal 10).

À partir de là, le passage à Drupal 10 se fera facilement par une simple mise à niveau du noyau.

Mises à jour de l'initiative de préparation à Drupal 10

Drupal 10 est déjà en cours de construction dans Drupal 9. Selon l'équipe de l'initiative de préparation à Drupal 10, "Drupal 10 sera une version améliorée de Drupal 9". L'équipe travaille d'arrache-pied depuis mars 2020 pour s'assurer que Drupal 10 sera publié à temps et sans problème. Si vous souhaitez contribuer à cette initiative, vous pouvez le faire de différentes manières. Découvrez comment vous pouvez aider ici.

Voici quelques nouvelles fonctionnalités dans Drupal 10 :

  • Compatibilité avec Symfony 6 : Les dépréciations de Symfony 4 dans Drupal 9 ont été résolues pour Symfony 5. Il est tout simplement préférable pour les propriétaires de sites et les développeurs de modules d'avoir autant de compatibilité Symfony 6 que possible dans 9.3. 
  • Supprimer les composants jQuery UI utilisés par Drupal core et les remplacer par un ensemble de solutions supportées. : Reconstruire nous-mêmes la fonctionnalité de jQuery UI. Cela pourrait être fait soit en utilisant vanilla JavaScript ou en utilisant un framework tel que React.
  • Fournir un mécanisme approprié pour la dépréciation des modules : Un ensemble de bonnes pratiques pour nommer, versionner, déprécier, laisser des wrappers ou non, forcer la désinstallation, etc. Introduire une propriété 'lifecycle' à utiliser dans les fichiers info.yml, à la fois pour les thèmes et les modules.
  • Permettre l'installation de Drupal 9 avec Twig : Nous ne savons pas exactement quand Twig 2 EOL sera, mais que cela oblige une mise à jour dans Drupal 10 ou 11, il est préférable de passer à Twig 3.
  • Ajouter un support optionnel pour CKEditor 5 dans Drupal 9 afin que nous puissions supprimer CKE 4 dans Drupal 10 : Déplacer Ckeditor 5 vers contrib pour rechercher le soutien de la communauté. Le module CKEditor 5 doit être stable dans la dernière version mineure de Drupal 9 si nous voulons pouvoir déprécier CKEditor 4 avant Drupal 10, afin de pouvoir supprimer CKEditor 4 dans Drupal 10.
  • Support de PHP 8.1 pour Drupal 9 et Drupal 10 : La compatibilité avec PHP 8.1 a beaucoup progressé. Il ne reste plus que deux problèmes internes à résoudre. De plus, PHP 8.1 est en RC3, donc il est assez stable pour travailler avec.
  • Mise à jour vers Guzzle 7Guzzle a été mis à jour vers Guzzle 7.3.0. Il nécessite psr/http-client 1.0.1, qui a également été ajouté comme dépendance.
  • Remplacement de Classy par un thème starter kit : Remplacez Classy par un nouveau thème de kit de démarrage. Le balisage et le CSS du kit de démarrage seront autorisés à changer au fil du temps puisqu'il ne sert que de point de départ pour les thèmes. 
  • Supprimer les modules dépréciés sur la branche Drupal 10 : Suppression des modules pour lesquels un accord a été passé et les modules ont été dépréciés dans Drupal 9.

 

Walid
Walid
Responsable Marketing
Accessibilité