Makina Blog
La roadmap Drupal 8
Sorti fin 2015, le CMS Drupal 8 a basculé dans un nouveau cycle de versions tous les 6 mois. Cet article vise à faire le point sur les nouvelles fonctions disponibles et ce que va apporter le cœur de Drupal dans les prochains mois.
Ce récent changement de politique de versions permet à chaque version "mineure" (8.x) de Drupal 8 de comporter de nouvelles fonctionnalités. Comme l'API est compatible d'une version à l'autre, il devient possible de monter en version tous les 6 mois et de bénéficier de ces améliorations rapidement.
En plus des fonctionnalités stables, il y a des modules expérimentaux fournis avec le cœur qui font l’objet d’une stabilisation progressive (alpha ⇒ beta ⇒ stable, l’API peut changer tant qu’ils ne sont pas indiqués « stable » par le projet), ce qui permet d’expérimenter tout en favorisant les retours des utilisateurs.
Ce phénomène, intéressant pour le dynamisme du CMS Drupal, entraîne un besoin encore plus important qu'avant de suivre les initiatives de la communauté Drupal. Cet article présente les initiatives qui me paraissent intéressantes ou révélatrices des grandes orientations de la communauté.
Voici un accès direct aux différentes versions :
La version 8.2.x
La version 8.2 a fait l'objet de nombreux articles (voir par exemple l'annonce officielle ou cet article de blog [EN]), je vais me contenter d'indiquer ce qui me plaît ou me semble significatif.
Au niveau des "petites" fonctionnalités ajoutées, le support des dates de fin (via le module Date Range), et la révision des contenus activée par défaut (ce qui, pour moi, renforce la nécessité d'ajouter le module Diff à vos installations Drupal, permettant une comparaison plus facile de ces versions).
Mais cette version de notre CMS favori présente surtout une évolution fonctionnelle majeure et une innovation ergonomique qui pourrait en entraîner d'autres. On trouve en effet 2 modules qui devraient entraîner à long terme de nombreux modules liés.
Content Moderation (enfin un workflow éditorial dans Drupal)
Ce nouveau module du cœur de Drupal est essentiellement une adaptation du module de la communauté Workbench Moderation.
Il permet tout simplement de définir des statuts sur des contenus (par défaut brouillon, relu, publié, archivé) et de paramétrer les transitions possibles et les rôles qui peuvent effectuer des transitions. Ceci permet d'aller au delà du workflow de base du cœur (brouillon/publié).
C'est la première étape vers une implémentation de workflow plus globale dans Drupal, et nous y reviendrons plus bas.
Outside-In, une nouvelle base ergonomique pour le cœur de Drupal
La raison d'être de ce module est de permettre de réaliser des modifications du site directement depuis le front-office : changement du nom du site, placement de blocs, réorganisation de l'arborescence, par l'intermédiaire de modules complémentaires.
Aujourd'hui, deux exemples existent dans le cœur : Place Blocks, un placement des blocs directement depuis le front office, et Settings Tray, une édition contextuelle de certains réglages, comme le nom du site ou le positionnement des éléments de menu.
Pour moi, ces modules ne sont pas encore complètement aboutis (à la fois en terme de fonctionnalités et en terme d'interface), mais définissent par contre une nouvelle ergonomie possible pour la contribution dans Drupal. Ce mécanisme est d'ailleurs déjà utilisé par des modules de la communauté, comme Moderation Note.
Ce nouveau mécanisme me paraît très intéressant notamment pour enrichir la création des contenus en intégrant des solutions riches et élégantes et certains modules commencent à y réfléchir (notamment le module Paragraphs pour lequel cette intégration paraît tout à fait adaptée).
La version 8.3.x
Cette version a rendu stable le module Big Pipe qui intègre donc le cœur de Drupal de plein droit. Les améliorations de performance sont bien visibles. Il est d'ailleurs activé par défaut désormais dans le profil standard de Drupal.
À côté de ça, un nouveau module fait son apparition, Layout. Ce module intègre un équivalent léger du module de la communauté Display Suite, permettant d'utiliser des mises en page complexes directement au niveau du positionnement des champs d'un type de contenu. Vous pouvez désormais créer des mises en page dans des fichiers *.layout.yml.
Enfin, l'écran de statut de votre installation Drupal a été repensé :
La version 8.4.x
Concernant les médias, cette version est la première à livrer du code de l'initiative plus globale visant à améliorer la gestion des médias dans Drupal. C'est le tout début puisqu'un module Media est livré (mais caché car jugé pas encore suffisamment complet) fournissant pour la première fois une entité Médias. C'est un travail qui se prolonge dans les versions suivantes.
La version 8.5.x
Cette version déclare officiellement stable les modules, jusque là expérimentaux, Content Moderation et Settings Tray.
Le module Media est officiellement visible et activable. Il fournit des entités prédéfinies qu'il est possible d'enrichir avec des champs personnalisés :
Il est utilisable comme type de champ sur les contenus. Là encore, ce travail va être prolongé dans les versions à venir.
Un nouveau module expérimental Layout Builder fait son apparition, sorte module unifiant Panels et Display Suite (qui continuent d’exister pour fournir des fonctions plus avancées) et permet de personnaliser simplement l’affichage d’un contenu avec une mise en forme commune à tous les contenus d’un certain type, ou bien contenu par contenu en piochant parmi des mise en forme prédéfinies.
Techniquement il repose sur le module Layout Discovery évoqué plus haut, ce qui est un gage de mutualisation des développements et donc de stabilité.
A cela s’ajoute les améliorations contenues sur le sujet de la migration de contenu d’une version à l’autre de Drupal (chemin Drupal 6 => Drupal 8 et Drupal 7 => Drupal 8) qui prolonge l’introduction de Migrate dans le coeur depuis Drupal 8.
Noter enfin une mise à jour technique des bibliothèques utilisées avec un passage à Symfony 3.4 et PHPUnit 6.
La version 8.6.x
Cette version n'est pas encore sortie au moment de la rédaction de cet article.
La gestion des médias a été améliorée avec l'intégration des médias distant via oEmbed ainsi que l'ajout dans le coeur en tant que module expérimental du module Media library qui fournit une bibliothèque de médias réutilisable d'un contenu à l'autre. Cette bibliothèque est utilisable en tant que widget sur un champ Media d'un type de contenu.
Par ailleurs, cette version améliorera la prise en main initiale de Drupal à travers l'initiative "out of the box". Actuellement, l'installation d'un Drupal produit une page d'accueil vierge, ne facilitant pas la vie des nouveaux utilisateurs. Drupal 8.6 va donc fournir du contenu par défaut dans le profil d'installation, comme le font déjà de nombreux CMS, afin de permettre aux utilisateurs de s'approprier plus facilement les concepts de base de types de contenu, vues, blocs, le tout avec des contenus exemple fournis de base ("Umami", orienté site de recettes de cuisine) :
Les modules Migrate Drupal et Migrate Drupal UI sont déclarés stables, et un nouveau module fait son apparition (mais à titre expérimental) pour gérer l'import de contenus internationalisés : Migrate Drupal Multilingual
Le module Workspaces est introduit à titre expérimental, et s'accompagne d'un nouveau champ pour stocker l'état publié ou non des termes de taxonomie ainsi que des entrées de menu. Ces champs ne sont pas exposés dans l'interface de contribution à ce stade.
Les priorités de la communauté Drupal pour le futur
Il est à noter qu'une roadmap prévisionnelle a été publiée lors de la dernière conférence Drupal :
Medias
Il y a toujours un gros travail en cours visant à fournir de base un gestionnaire de médias qui permettre simplement de réutiliser des médias d'un contenu à l'autre, avec une interface unifiée qu'il s'agisse d'un champ d'un contenu où dans le WYSIWYG.
REST et les APIs
Comme à chaque version majeure, les APIs du cœur de Drupal continuent de s'améliorer. L'idée générale est de "dé-drupaliser" l'API pour la rendre plus consommable par d'autres services que Drupal, qui n'ont pas à connaître les détails d'implémentation interne de l'API. Les développeurs essaient également d'améliorer la prise en compte de l'ensemble des objets Drupal (y compris la configuration) directement par l'API.
Vous pouvez suivre globalement l'évolution des APIs à chaque version sur l'issue dédiée.
En plus, la communauté s'intéresse de près au module JSONAPI pour standardiser les réponses de la couche de services web selon la norme jsonapi.org.
Il va également y avoir une intégration du protocole GraphQL qui est une alternative à REST permettant de personnaliser le format des données retournées. Il s'agira de l'intégration dans le core de fonctionnalités actuellement couvertes par un module communautaire.
L'ergonomie
C'est une des raisons qui me font vraiment apprécier Drupal 8 : de nombreux efforts portent sur l'amélioration de l'utilisabilité de Drupal, dans tous les secteurs de l'outil. On a vu plus haut le nouvel écran de suivi du statut, mais voici plusieurs initiatives prometteuses.
La refonte de la gestion des champs
Nous en avions déjà parlé, mais la refonte des champs est en cours, là encore pour faciliter l'utilisation de Drupal par des utilisateurs ne possédant pas une connaissance technique de la façon dont le stockage Drupal est réalisé, en se concentrant sur le rendu visé dans le formulaire de création de contenu :
Peut-être en tant que module expérimental dans la 8.4.x ?
Une refonte globale de l'UX
Mais de nombreux autres changements sont discutés et étudiés, comme une refonte des filtres exposés dans les vues, l'intégration d'Inline Entity Form au cœur ou la refonte du widget de transfert de fichiers :
Toutes ces évolutions ont pour but de diminuer la "friction" à l'utilisation de Drupal pour l'ensemble des utilisateurs, et de lever un des principaux freins à son adoption actuelle, le fameux "Drupal, c'est compliqué".
D'ailleurs, un dernier levier pour améliorer la compréhension de l'interface est la refonte du menu d'administration, en utilisant les retours de la communauté (réorganisation des éléments de menus, changement de vocabulaire, mise en valeur de certains éléments).
Le versionning de site, une fonctionnalité très attendue
Ceux qui suivent de près le développement du cœur de Drupal auront noté que le module Content Moderation de gestion de statuts éditoriaux n'est plus indépendant et repose désormais sur un nouveau module du cœur de Drupal appelé Workflow (tout simplement ;-)).
C'est un premier pas vers le développement d'une solution globale de workflow à l'échelle d'un site complet, permettant d'envisager plusieurs versions du site sur le même serveur, que vous choisissez de déployer quand vous le souhaitez (une version "brouillon" de votre site pourra être publiée à une date donnée, voir même planifiée exactement comme vous le souhaitez).
Cette fonctionnalité, actuellement réalisée partiellement par le module Workspace (et ses dépendances), qui vient d'être intégré à titre expérimental dans la version 8.6. Vous pouvez suivre son évolution sur la page de la Workflow initiative.
Si la communauté arrive à ajouter cette fonctionnalité dans le cœur de Drupal, je pense que la richesse fonctionnelle du cœur deviendra un solide argument à l'adoption de Drupal pour les gros comptes.
Amélioration de la gestion de configuration (CMI 2.0)
Cette amélioration de la gestion de la configuration introduite avec Drupal 8 vise à améliorer le système actuel pour gérer de nouveaux cas d’utilisation, dont plusieurs nécessitent aujourd'hui l’usage de modules communautaires ou du développement spécifique. On peut citer par exemple le fait d’appliquer sans risque une configuration globale sur un site qui a fait l’objet de surcharges de configuration en production (https://www.drupal.org/project/cmi2).
Intégration d'un framework Javascript moderne
Il s'agit d'un chantier à plus long terme visant l’introduction d’un framework front Javascript à base de composants permettant de bâtir des IHM complexes plus dynamiques et modernes. Une expérimentation est en cours avec React et va cibler dans un premier temps l'écran de gestion des permissions.
Ça c'est le cœur, mais que fait le reste de la communauté ?
Paragraphs
Dans Drupal 7, 2 solutions plus ou moins concurrentes d'assemblages de pages s'affrontaient : Field Collection et Paragraphs. Il semble qu'en Drupal 8, Paragraphs s'est largement imposé comme standard de fait, en tout cas, il est nettement plus maintenu et poussé par les principaux développeurs de la communauté.
On peut imaginer que de nombreuses solutions vont se baser sur ce module, et ce même si de nouveaux concurrents apparaissent (c'est le jeu d'une aussi grande communauté) comme Widget Engine ou Stacks.
Pour le moment, d'ailleurs, Paragraphs est clairement le favori, avec notamment des modules tentant d'en améliorer l'UX comme Geysir ou Parade.
On devrait avoir d'ici quelques mois une expérience d'administration de pages à contenu ou mise en page complexe extrêmement simple, et c'est tout ce que l'on demande !
Quoi de prévu pour Drupal 9 ?
Le développement de Drupal 9, à l'heure où nous écrivons cet article, n'a pas encore commencé, ce qui est plutôt rare pour Drupal. Il est possible de suivre les discussions actuelles sur l'issue dédiée.
Une discussion fondamentale d'architecture, tout de même : faut-il supprimer le multi-site ?
À noter, tout de même, une bonne nouvelle, la mise à jour à Drupal 9 devrait être presque transparente, en tout cas pas plus difficile qu'une mise à jour de version majeure de Drupal 8.
Plus de détails
Il est possible de suivre plus en détails les ajouts et modifications de chaque version :
- en suivant le compte Twitter des initiaives Drupal
- en suivant les principaux tickets intégrés dans chaque version sur "drupal list changes"
Conclusion
L'ajout d'une feuille de route est toujours un bon signe, parce que cela permet d'anticiper les fonctionnalités, et donc de mieux planifier les (gros) projets. Cependant, l'ajout de nombreux modules expérimentaux entraîne des développements fréquents qui rendent l'ensemble de la communauté relativement instable, ce qui ne sécurise pas spécialement les projets.
Nous verrons donc sur le long terme si l'ajout de ces fonctionnalités de façon fréquente compense ou non les risques pris sur les projets… À suivre !
Drupal est également souvent considéré de l'intérieur de la communauté comme ayant un problème de positionnement… et ne l'a pas encore résolu ;-)
Bien sûr, nous intégrons systématiquement ces nouvelles fonctionnalités (voir celles qui arrivent) et les interrogations associées dès leur mise à disposition dans le CMS à l'intérieur de nos formations Drupal.
Formations associées
Formations Drupal
Formation Drupal Développeur
À distance (FOAD) Du 2 au 4 avril 2025
Voir la formationActualités en lien
Migration d'un site Drupal 7 en Drupal 11
Trucs, astuces et "bouts" de code pour migrer votre site web de Drupal 7 à Drupal 11. Compte-rendu d'une conférence donnée au Drupalcamp Rennes 2024.
Makina Corpus, partenaire du DrupalCamp 2024
Nous sommes fiers d’annoncer que Makina Corpus est le sponsor du DrupalCamp à Rennes. Notre expert vous y propose une conférence « migrer de Drupal 7 à Drupal 10 ».