
Pourquoi auditer le front avant de viser Drupal 12
Le front passe souvent au second plan dans la préparation d'une montée de version majeure : un thème hérité, parfois complété par un pipeline Node qu'on n'a plus touché depuis des mois. Un audit mené avant la bascule permet de séquencer les corrections au lieu de les subir.
Thèmes : Starterkit face aux thèmes hérités
Drupal 10 fournit un générateur Starterkit, encouragé pour tout nouveau thème. Classy et Stable (la version historique) sont disponibles en projets contribués ; la documentation officielle ne rattache leur retrait du cœur à aucune version précise. Stable9, en revanche, a déjà quitté le cœur : la beta1 de Drupal 12.0.0, publiée le 30 septembre 2026, confirme son retrait avec deux autres thèmes, Claro et Olivero, désormais disponibles en projets contribués.
Comment fonctionne le générateur Starterkit
Un thème généré par Starterkit conserve, dans son fichier info.yml, la version du starterkit source sous la clé generator (par exemple starterkit_theme:11.3.3). Cette clé permet de comparer deux versions du cœur avec un simple git diff entre les tags correspondants : vous voyez exactement ce qui a changé dans les templates de base et les scripts associés.
Un starterkit personnalisé peut aussi déclarer, dans son fichier *.starterkit.yml, une clé ignore listant les fichiers à ne pas recopier lors de la génération d'un nouveau thème. C'est la première chose à vérifier : elle dit quels fichiers divergent volontairement du cœur, donc ce qu'il faut comparer en priorité.
Repérer la dette dans un thème hérité
Si votre thème descend de Claro, Stable9 ou Olivero, la situation est différente de Classy ou Stable : ces trois thèmes sont retirés du cœur de Drupal 12.0.0, un retrait déjà effectif dans la beta1 publiée le 30 septembre 2026. Claro et Olivero, eux, sont dépréciés dans Drupal 11.5.0 (version non encore sortie). Pour l'administration, le nouveau thème Default Admin, ajouté comme expérimental en Drupal 11.4, marqué stable dans la 12.0.x, remplace Claro.
Pour Classy et Stable historique, les pages de référence du projet ne donnent pas de version exacte de retrait du cœur. Nous ne pouvons donc pas affirmer qu'ils disparaîtront à telle version précise : ce point reste ouvert et mérite d'être suivi plutôt qu'anticipé à tort.
Twig : ce qui est déprécié et ce qui reste utilisable
Plusieurs mécanismes de dépréciation touchent les templates Twig.
La balise spaceless est dépréciée depuis Twig 2.7. Son remplacement, le filtre apply spaceless, est lui-même déprécié depuis Twig 3.12, mais il reste disponible dans Drupal 11. Le cœur Drupal retire son propre usage de ce filtre via le ticket #3477375 : c'est le cœur qui arrête de s'en servir, pas Twig qui le supprime.
La branche de développement 12.0.x du cœur exige Twig en version ^3.28.0, déclarée dans core/composer.json. Si vos templates personnalisés dépendent de syntaxes anciennes, c'est la version à tester en priorité, en gardant à l'esprit que la branche est encore en beta et peut évoluer.
Deux mécanismes plus récents méritent une place dans votre grille d'audit. Depuis Drupal 10.2.0, une variable Twig peut être marquée dépréciée via la clé deprecations dans le tableau des variables : chaque variable listée déclenche une erreur de dépréciation. Depuis Drupal 11.3.0, une suggestion de thème peut l'être aussi, via la clé spéciale __DEPRECATED associée à un message dans sa définition. Grepper ces deux clés dans votre code (hook_theme(), fichiers .theme) donne une liste précise de ce qui doit être migré.
Gestion des assets : libraries.yml, CSS/JS et dépendances Node
Déclarer et nettoyer ses librairies front
Les librairies CSS et JS se déclarent dans les fichiers *.libraries.yml. Une dépendance se déclare sous la forme resource/library, par exemple core/jquery. Drupal ne charge aucun asset qui n'est pas explicitement déclaré et attaché, pour préserver la performance du front. C'est aussi une source de dette fréquente en audit : des librairies déclarées mais jamais attachées, ou des dépendances dupliquées entre plusieurs sous-thèmes.
Une librairie hébergée sur un CDN externe se déclare avec la clé type: external. Chaque entrée de ce type dans votre libraries.yml est une dépendance externe à lister : fragilité en cas de panne du CDN, question de conformité, cache à gérer séparément.
Node.js, Yarn et les outils de build
Le front du cœur Drupal nécessite Node.js en version LTS et Yarn pour compiler le CSS, des fichiers .pcss.css vers du .css standard. Le JavaScript n'est plus transpilé, mais il doit être linté, et développer pour CKEditor 5 nécessite webpack.
Un thème personnalisé a souvent sa propre chaîne Node, avec Gulp, Webpack ou Sass. Elle est indépendante de celle du cœur et doit être auditée séparément : versions de Node figées dans un vieux .nvmrc, dépendances npm qui n'ont pas reçu de mise à jour de sécurité, scripts de build qui échouent silencieusement en CI.
Grille d'audit pratique et plan d'assainissement par étapes
Une grille d'audit utile tient sur cinq colonnes : templates Twig (balises et variables dépréciées), thème (Starterkit ou héritage, et lequel), librairies front (déclarées, attachées, dupliquées, externes), images (styles réactifs, qui associent des styles d'image à des points de rupture) et dépendances Node (version, obsolescence, outils de build).
Un plan d'assainissement par étapes évite de tout traiter en même temps :
- Inventorier les templates et grepper les clés
deprecationset__DEPRECATED. - Comparer votre thème à son générateur Starterkit via
git diff, ou documenter l'écart si vous êtes encore sur un thème hérité. - Nettoyer
libraries.yml: retirer ce qui n'est jamais attaché, fusionner les doublons, lister les dépendances externes. - Mettre à jour la chaîne Node du thème et vérifier qu'elle tourne sur une version LTS actuelle.
- Tester l'ensemble contre une version beta du cœur avant la bascule définitive.
Questions fréquentes sur l'audit Drupal 12
Mon thème Starterkit est-il concerné par le passage à Drupal 12 ?
Oui, si vous dépendez de Claro, Stable9 ou Olivero : ces trois thèmes sont retirés du cœur de Drupal 12.0.0, un retrait déjà effectif dans la beta1 publiée le 30 septembre 2026. Un thème généré par le starterkit officiel reste comparable version par version via la clé generator de son info.yml.
Faut-il mettre à jour Twig avant Drupal 12 ?
La branche 12.0.x du cœur exige Twig en version ^3.28.0, déclarée dans core/composer.json. C'est la version à tester en priorité si vos templates personnalisés dépendent de syntaxes anciennes, en gardant à l'esprit que cette branche est encore en beta.
Comment repérer les librairies front obsolètes avant la migration ?
En vérifiant chaque fichier *.libraries.yml : Drupal ne charge aucun asset qui n'est pas explicitement déclaré et attaché, donc les librairies déclarées mais jamais attachées ou dupliquées entre sous-thèmes sont la première dette à éliminer.
Un calendrier serré : agir avant le 9 décembre 2026
Drupal 12.0.0 et 11.5.0 sont prévues pour la semaine du 7 décembre 2026, la même semaine que la fin de support de Drupal 10, le 9 décembre 2026. Ce délai court rend l'audit front plus utile dès maintenant qu'en urgence.
Deux points restent ouverts à ce stade : la documentation officielle ne précise pas de version de retrait du cœur pour Classy et Stable historique, et aucune donnée ne chiffre la part des sites encore sur ces thèmes face à Starterkit. Nous préférons le dire plutôt que l'estimer : votre audit doit porter sur votre installation réelle, pas sur une moyenne supposée du reste de l'écosystème.
Si vous voulez une lecture précise de l'état de votre front avant la bascule vers Drupal 12 : Demander un diagnostic.
Un projet web en tête ?
Commençons par un diagnostic : ce qui vous ralentit, et par où commencer.
Demander un diagnostic