Fermer

juin 2, 2020

Quoi de neuf dans Drupal 9?


Dans cet épisode du Smashing Podcast, nous examinons les nouveautés de Drupal 9. Quels sont les principaux changements à venir pour ce projet open source vieux de près de 20 ans?

 Photo d'Angie Byron Dans cet épisode du Smashing Podcast, nous examinons les nouveautés de Drupal 9. Quels sont les principaux changements à venir à ce projet open source vieux de près de 20 ans?

Notes de présentation

Mise à jour hebdomadaire

Transcription

Drew McLellan: Elle est directrice principale du développement des produits et de la communauté chez Acquia, une entreprise. vous le saurez grâce à leurs logiciels et services construits autour de l'écosystème Drupal. Elle est responsable de la maintenance de Drupal depuis près de 12 ans. Elle est également l’auteure d’O’Reilly et une évangéliste open source qui ne fait que vivre et respirer Drupal. Nous rejoindre près de Vancouver, en Colombie-Britannique. Elle est passionnée par le recrutement de nouvelles personnes, en particulier les femmes, dans l'open source. Nous savons qu'elle est une experte de longue date de Drupal, mais saviez-vous qu'elle a déjà appris à un dauphin à faire de la marmelade? Mes amis fracassants, veuillez accueillir Angie Byron.

Drew: Salut Angie. Comment allez-vous?

Angie Byron: Je me casse, Drew. Comment allez-vous?

Drew: Je vais très bien. Je vous remercie. Je voulais vous parler aujourd'hui de quelque chose que nous n'avons certainement pas abordé dans le podcast auparavant. Et j'ai rarement abordé les articles de Smashing Magazine au fil des ans, bien qu'il s'agisse d'un projet open source extrêmement populaire avec une communauté massive. Et c'est bien sûr Drupal. Maintenant, je n'ai délibérément pas décrit ce qu'est Drupal dans mon introduction, car j'ai l'impression qu'il pourrait y avoir toute une génération de concepteurs et développeurs Web qui ne l'ont jamais vraiment rencontré. Et il y a ceux qui pourraient penser que nous savons ce qu'est Drupal, mais cela pourrait être basé sur un point de vue formé il y a 10, 15 ou 20 ans presque. Qu'est-ce que Drupal tel qu'il est aujourd'hui?

Angie: Nous appelons Drupal un cadre de gestion de contenu. Et cela signifie que c'est un cadre généralisé que vous pouvez utiliser pour créer des sites Web, vous pouvez l'utiliser pour créer des applications mobiles, vous pouvez l'utiliser pour créer à peu près tout ce que vous pouvez imaginer. Mais c'est un système central très structuré et basé sur le contenu. Il est utilisé pour alimenter un site Web sur 35 dans le monde. C'est là-bas et les gens l'utilisent. Il a été beaucoup utilisé pour les sites Web du gouvernement, les sites Web des médias, à peu près tout ce que vous pouvez imaginer. Il a même été utilisé pour alimenter, par exemple, les horaires des bateaux de croisière princesse et des choses comme ça. Il est utilisé dans de nombreuses capacités différentes.

Drew: En quoi diffère-t-il des autres systèmes de gestion de contenu que les gens auraient pu utiliser dans le passé, tels que WordPress ou des outils de publication statique comme Hugo et Jekyll?

Angie: J'aime dire que si vous savez ce que vous voulez, c'est un blog ou autre chose dans laquelle WordPress est vraiment bon, WordPress est un excellent choix. De même, si vous savez que vous avez besoin de logiciels hautement personnalisés qui ne peuvent fonctionner qu'avec un système backend particulier ou des choses comme ça, un cadre CMF personnalisé comme Symfony ou quelque chose pourrait être un meilleur choix. Drupal est génial car il couvre les deux. Il dispose d'une interface utilisateur, vous pouvez donc créer du contenu en cliquant et en remplissant des formulaires. Et vous pouvez l'étendre avec son API, mais il est conçu pour vous permettre de faire énormément de choses puissantes simplement en étant dans votre navigateur, en cliquant sur les formulaires et les boutons.

Angie: Je l'utilise beaucoup parce que j'ai souvent des clients qui ne savent pas vraiment ce qu'ils veulent. Et donc, ils pensent qu'ils veulent bloguer, puis il s'avère que «Oh, mais nous voulons aussi un composant de commerce électronique avec ce blog. Oh, et nous avons aussi besoin d'un forum avec des notes et des critiques cinq étoiles et ce genre de choses. » Et avec Drupal, ce ne sont que des cases à cocher pour commencer à ajouter de nouvelles fonctionnalités comme celle-ci par rapport à WordPress, cela pourrait signifier, assembler quelques solutions différentes que vous devez ensuite intégrer. Et avec le code personnalisé, c'est évidemment des codes personnalisés, ce qui vous demandera beaucoup de travail.

Angie: Drupal a toute une bibliothèque de modules contribués. Il y a quelque chose comme 10 000 à 12 000 de ces modules complémentaires qui peuvent faire des fonctionnalités supplémentaires. Et puis prêt à l'emploi, surtout si vous n'avez pas utilisé Drupal depuis 20 ans, Drupal est en fait un CMS très complet de nos jours également, où il évolue avec le support de la mise en page des médias, toutes sortes de choses différentes.

Drew : Vous avez mentionné brièvement quelques projets avant qui utilisent Drupal. Quel est le projet idéal où quelqu'un pourrait l'atteindre par rapport à autre chose? Où Drupal excelle-t-il vraiment?

Angie: Je dirais que Drupal est génial si vous avez, disons un site Web ou une présence Web où il y a beaucoup de sous-composants différents et vous voulez tous qu'ils maintiennent un aspect et toucher cohérents. Les universités l'utilisent beaucoup, par exemple, parce qu'elles veulent avoir une image de marque universitaire cohérente sur tous les différents sous-sites. Cependant, ils veulent également donner à chaque département la liberté de créer le leur, par exemple les types de contenu. Donc, disons que le département d'art pourrait vouloir suivre les artistes et les musiciens et des choses comme ça. Et les lier aux travaux qu'ils ont produits par rapport au service informatique voudra peut-être passer des contrats comme ceux-ci sont les différentes personnes pour lesquelles nous effectuons des stages informatiques, et ce sont les différentes personnes qui travaillent pour eux.

Angie: Et Drupal vous permet de modéliser tout ce contenu ensemble et de créer une vue dynamique de celui-ci et des formulaires que vous pouvez simplement cliquer ensemble hors de la boîte.

Drew: L'une des raisons pour lesquelles je voulais vous parler Drupal en ce moment est qu'il y a une sortie majeure au coin de la rue. N'est-ce pas?

Angie: Oui. Ensuite, eh bien, je ne sais pas quand ça va sortir, mais c'est le 3 juin. Donc, actuellement dans une semaine à partir d'aujourd'hui.

Drew: Et c'est Drupal 9.

Angie: C'est exact.

Drew: Maintenant, une grande nouvelle version d'un logiciel mature produit apporte toujours avec lui, de grandes nouvelles fonctionnalités. N'est-ce pas? Quels sont les changements importants que quelqu'un remarquerait vraiment à propos de Drupal 9?

Angie: Si vous utilisez actuellement Drupal 8, la grande nouvelle pour vous est que Drupal 9 n'a vraiment pas beaucoup changé. Et c'est un gros problème pour notre communauté parce que dans le passé, lorsque vous vouliez passer de six à sept ou sept à huit, c'était un, je n'appellerais pas cela un processus pénible, mais vous pourriez l'appeler quelque chose comme ça où nous avions l'habitude d'avoir une philosophie selon laquelle nous allons casser votre code et non vos données. Nous serions toujours à la pointe des dernières nouveautés et toute mise à niveau majeure viendrait avec. Les besoins, les modules de support et le code sous-jacent avec Drupal, et vous obtiendrez toujours les dernières nouveautés, mais cela entraînerait un processus de mise à niveau coûteux et coûteux.

Angie: De Drupal 8 à neuf, ce que nous avons fait, c'est construire Drupal 9 dans Drupal 8 de manière efficace. Et donc, Drupal 8, tout au long du processus a obtenu les nouvelles API, les nouvelles fonctionnalités, toutes ces sortes de choses d'une manière rétrocompatible. Ce que Drupal 9 va faire, c'est supprimer les trucs rétrocompatibles et nous mettre tous sur la dernière version de disons, Symfony, PHP, MySQL tous les trucs les plus récents pour que nous ayons un support de sécurité pour ces choses pour les trois à cinq prochains les années à venir. De huit à neuf, pas grand-chose, si vous avez regardé Drupal pour la dernière fois, par exemple de Drupal 7, une quantité énorme a changé, car vous obtenez non seulement les innovations qui ont été apportées à Drupal 8, des choses comme l'expérience mobile, hors de la configuration de la boîte, la gestion, le module de vues, qui vous permet d'assembler dynamiquement des listes de choses prêtes à l'emploi.

Angie: Mais vous obtenez également les fonctionnalités qui sont venues dans les cycles Drupal 8. Ce sont des choses comme une médiathèque, la gestion du flux de travail, des capacités de création de mise en page, de meilleurs tests automatisés et toutes sortes d'autres choses. à de nombreux systèmes de gestion de contenu, est ce concept de données structurées. Que voulons-nous dire lorsque nous parlons de contenu structuré? Et que nous apporte Drupal 9 à cet égard?

Angie: Le contenu structuré est un concept vraiment fascinant et il a été intégré à Drupal dès les premiers jours. Dans un CMS comme WordPress ou Squarespace, quelque chose comme ça, vous diriez, je veux télécharger la fonctionnalité de galerie de photos et je vais activer la fonctionnalité de galerie de photos, je vais obtenir la galerie de photos en tant que personne qui a créé il, l'envisageait. Dans Drupal, vous y allez différemment. Ce que vous faites, c'est que vous créez votre fonction de galerie de photos à partir des composants de base. Et ce que je veux dire par là, c'est que vous allez créer un type de contenu appelé photo. Vous y ajouterez un champ d'image pour l'image. Vous ajouterez peut-être un champ de légende, vous aurez peut-être des attributs à l'image et tous ces autres principes, des champs numériques pour les attributs, ou désolé pour les champs de texte à largeur accrue pour les anciens attributs, il y a beaucoup de choses différentes que vous pouvez

Angie: Et puis vous allez créer une vue des photos et vous pouvez choisir si cette vue photo est, disons qu'elle dispose tout dans une grille de six par neuf, ou peut-être qu'elle le fait en deux colonnes ou quoi que ce soit, et vous pouvez avoir une personnalisation complète sur la façon dont, et de quelle manière il est produit. Le contenu structuré est intéressant car non seulement vous pouvez faire en sorte que votre site Web ressemble à ce que vous voulez, mais parce que le contenu est structuré de manière générique à travers des entités et des champs, vous pouvez également dire, par exemple, créer une application de réaction découplée qui parle à Drupal en tant que backend.

Angie: Et avoir le plein contrôle sur la façon dont cela se fait, puis prendre le même backend, en faire votre site Web, le même backend faire dire un kiosque dans le centre commercial où les gens peuvent sélectionner différents articles. Beaucoup de gens utilisent Drupal comme ce magasin de contenu général qui peut ensuite être consulté par n'importe quoi. Et la façon dont nous pouvons le faire est que toutes les données que le CMS gère sont abstraites. Il n'est pas intégré à la couche de présentation. Si vous utilisez un éditeur Wiziwig pour répondre dans votre contenu, vous obtiendrez les images incorporées dans le champ corporel, et ce n'est jamais bon si vous souhaitez ensuite participer à ce champ corporel et l'afficher dans un bloc de la barre latérale. [19659009] Angie: Drupal en structurant tout en champs et entités discrets sur le backend, permet de mélanger et d'assortir le concept très facilement.

Drew: Cela signifie que vous pouvez utiliser un Drupal comme CMS sans tête essentiellement?

Angie: Oui.

Drew: C'est à peu près ce que vous décrivez là-bas, n'est-ce pas?

Angie: Oui, absolument. [19659008] Drew: Si vous travaillez dans le Jamstack, ou si vous avez une application d'une seule page, ou si vous créez des applications mobiles ou avez d'autres façons moins conventionnelles de consommer du contenu, vous pouvez utiliser Drupal comme système de gestion de contenu juste pour gérer littéralement le contenu, puis pour l'exposer à d'autres choses via une API ou quelque chose comme JSON. [19659009] Angie: Exactement. Oui. JSON: le support de l'API est intégré et cela vient avec son… tout sur Drupal est modulaire. Si vous ne voulez pas la couche de thème, vous n'avez pas besoin de l'avoir. La couche de thème est ce que nous appelons comme la couche de présentation HTML généralement générée par PHP. Mais vous pouvez jeter cela et dire: «Je veux juste la sortie JSON: API de tout mon contenu.» Vous bénéficiez également de certaines fonctionnalités intégrées à Drupal intégrées à votre application. Par exemple, Drupal dispose d'un système d'utilisateurs, d'autorisations et de rôles très robuste. Vous pouvez configurer différents rôles avec des autorisations discrètes pour faire différentes choses sur le site ou même voir différentes pages sur le site.

Angie: Et ces choses seront respectées par Drupal et seront appliquées par Drupal afin que par au moment où quelqu'un charge réellement l'application à une certaine URL, vous savez que la personne qui s'y trouve est censée y avoir accès. C'est vraiment intéressant. C'est un produit cool sur lequel travailler parce que, d'un côté, c'est un produit conçu par des développeurs pour des développeurs. Nous avons commencé à le construire parce que nous voulions un moyen plus facile de… Nous ne voulions pas avoir à être appelé par quelqu'un pour changer le champ du droit d'auteur au bas de la page chaque année ou autre chose.

Angie: Nous venons de faire une boîte pour qu'ils puissent la remplir. Mais c'est aussi un outil conçu pour tailler un tout nouveau domaine de personnes, ce qui est comme les constructeurs de sites. Ils sont comme techniques, mais ne savent pas nécessairement comment écrire tout le code backend, mais ils savent par exemple, comment cliquer ensemble sur ces différents concepts afin de rendre ces sites vraiment puissants. Et donc, à tout moment, lorsque vous développez une fonctionnalité telle qu'une bibliothèque multimédia, vous devez non seulement réfléchir à la façon dont nous rendons cela vraiment facile à utiliser pour un marketeur ou un personnage auteur de contenu, qui va l'utiliser tous les jours, mais aussi comment le rendre extensible à l'infini du côté développeur, comment s'assurer que nous avons des tests automatisés qui couvrent tout?

Angie: Comment nous assurer que la sortie est accessible pour qu'elle peut être traduit par des lecteurs d'écran? Et toutes ces sortes de considérations. Donc, Drupal est vraiment intéressant et se démarque dans son domaine en ce sens que vous devez souvent choisir entre un frontal très facile à utiliser qui n'a pas de contenu découplé ou un contenu très découplé très technique dont vous avez besoin d'une flotte des développeurs JavaScript sur lesquels travailler. Et Drupal se trouve au milieu et dans un endroit idéal où il peut être les deux.

Drew: Parce que Drupal est essentiellement un CMS à thème, n'est-ce pas? Si vous cherchez à créer un site, un site plus traditionnel où vous utilisez un thème pour générer des pages HTML, CSS, une belle conception Web réactive servira vos appareils mobiles, vos ordinateurs de bureau, etc. Quelles capacités de modélisation envisagez-vous dans Drupal? Qu'avez-vous à disposition?

Angie: Drupal utilise une bibliothèque Symfony appelée Twig, et ce sont effectivement des modèles HTML avec peu de caractères spéciaux pour faire des branchements, une logique de branchement de base, des variables d'impression, ce genre de choses. C'est une sortie par défaut que Drupal fait. Vous avez un rappel qui génère la sortie et qui est stocké dans un tableau. Le tableau est transmis à la couche de sortie. Cela pourrait être JSON: API, comme je l'ai mentionné précédemment, et simplement mettre une grosse goutte de JSON, ou il pourrait être passé à la couche de thème, qui traduira ensuite ces tableaux en, c'est l'en-tête, c'est ça et ça va l'imprimer dans les variables CSS et HTML comme ça. Je ne sais pas si cela a répondu à votre question. Désolé.

Drew: Non, vous l'avez fait.

Angie: Très bien.

Drew: Je pense que la dernière fois que j'ai utilisé Drupal, il utilisait peut-être Smarty.

Angie: Oh, Smarty, oui. Eh bien, c'est comme Drupal 6 jours.

Drew: Ouais, c'est Drupal 6 ou Drupal 5 même.

Angie: Ouais. Oh, c'est fantastique. Twig est un concept similaire à Smarty, mais ce qui est bien avec Twig, c'est qu'il impose mieux la séparation entre votre logique métier et votre logique de présentation. Twig n'est pas vraiment, vous pouvez le faire, mais ce n'est pas une bonne pratique pour vous de vous asseoir et de commencer à mettre tout un tas de fonctions et d'objets et de classes et tout ça dans vos fichiers HTML réels. Vos fichiers HTML, plus ou moins restent des fichiers HTML avec juste les petits espaces réservés spéciaux en eux. Et ensuite, votre logique commerciale se déroule en arrière-plan dans un module ou dans une fonction de prétraitement ou quelque chose comme ça.

Drew: Cette séparation rend les choses un peu plus simples et plus sûres pour les développeurs qui ne le sont pas. donc habitué à travailler dans le monde du backend peut être encore plus à l'aise avec le développement frontal, mais une grande partie de la logique dure est séparée du HTML et du CSS?

Angie: C'est vrai. Et l'autre avantage que vous en retirez est que Twig est vraiment bon pour échapper à la vulnérabilité auto XSS. Une chose courante qui peut se produire lorsque vous écrivez votre propre thème à partir de zéro est que vous commencez à imprimer des variables directement. Et puis quelqu'un crée un nom d'utilisateur comme «Little Bobby Tables ou autre chose, ce genre de chose et gâche tout votre site. Twig est génial car il a l'échappement automatique de variables comme ça. Tant que vous vous en tenez aux API et que vous les utilisez directement, vous n'introduirez pas accidentellement une vulnérabilité JavaScript ou SQL dans votre site simplement en essayant de rendre votre thème agréable.

Drew: Et en termes d'expérience de création de contenu, je sais que beaucoup de gens dans l'industrie de la conception Web ont vu certaines de leurs activités disparaître, en particulier à l'extrémité inférieure de ces services extrêmement conviviaux, des choses comme Squarespace. Comment Drupal rivalise-t-il avec cette expérience de création que les gens tirent de ces services très raffinés et élégants?

Angie: Je dirai que nous avons parcouru un long chemin. Nous ne sommes définitivement pas à un niveau Squarespace. Je vais juste dire ça carrément. Squarespace a l'avantage de ne pas créer de contenu structuré dans ce cycle ou de créer des pages. Et donc, les pages sont autonomes et elles peuvent avoir un contrôle total sur le code HTML et utiliser de bons outils frontaux pour y accéder. Drupal étant par nature un contenu structuré, j'ai mentionné que les avantages étaient que le contenu pouvait être mélangé et assorti. Il est facile de produire le contenu d'une variété de modes différents. Mais l'inconvénient est que nos outils frontaux ne le sont pas, ils respectent cette nature de contenu structuré. Donc, vous ne voyez pas comme une prise en charge de la page en place une expérience d'édition avec Drupal en l'état.

Angie: Cependant, je dirai qu'il y a beaucoup de gens qui font beaucoup de travail. Et donc, le noyau lui-même se déplace avec l'édition sur place, qui est la possibilité de cliquer sur un champ et de l'éditer directement sur place sans avoir à aller au backend. Il y a aussi la barre des paramètres, qui si vous voulez faire un changement de configuration rapide pour dire le nom du site ou l'emplacement d'un bloc ou quelque chose comme ça, qui y est intégré. Le générateur de mise en page dispose également de fonctionnalités de glisser-déposer. Nous avons vraiment fait un effort concerté pour améliorer l'expérience de création de contenu dans Drupal. Nous avons fait des tests utilisateurs en arrière, nous avons commencé en 2008, Drupal est un vieux projet dont vous avez mentionné qu'il existait depuis un certain temps, mais nous avons commencé en 2008 et 2012, 2015.

Angie: Nous continuons à le faire toutes les quelques années , nous nous asseyons et l'Université du Minnesota nous a aidés. Nous nous asseyons et nous allons dans un laboratoire d'utilisation réel avec un verre et un œil à sens unique pour suivre le tout. Et à travers ce processus, j'ai vraiment vu que si le backend de Drupal est incroyable et que les gens l'adorent parce qu'il est flexible, il est bien documenté, il est étonnamment architecturé, toutes ces sortes de choses. Les gens ont vraiment eu du mal avec le front end. J'en ai fait ma mission personnelle. Je sais que Dree en a fait sa mission personnelle, le chef de projet, ainsi que la communauté dans son ensemble, pour vraiment apporter cette qualité de Drupal au front.

Angie: Et donc, nous ' Depuis, j'ai ajouté tout un tas de fonctionnalités, comme un thème d'administration backend. Certaines de ces fonctionnalités conviviales pour le contenu, comme les flux de travail, les médias, ce genre de choses, et le mettre avant tout entre les mains des gens afin qu'ils n'aient pas à écrire à la main des balises HTML ou ce genre de choses, ce qui était comme le cas de nombreux Il y a quelques années.

Drew: L'une des choses qui attire souvent les développeurs vers des systèmes de publication simples plutôt que vers les CMS à pile complète est ce concept de tout gérer dans un référentiel de portes. Ainsi, les modifications apportées à un site de vie peuvent être déployées atomiquement et ce repo de porte est une source unique de vérité pour le projet. Vous n'avez pas plusieurs copies d'une base de données représentant différentes versions d'un système contourne ce problème de développement d'une nouvelle fonctionnalité de site dans un environnement, puis d'essayer de comprendre comment la créer et la déployer dans l'environnement réel, ce qui les objectifs peuvent avoir changé depuis qu'ils ont commencé à travailler sur la fonctionnalité. Drupal offre-t-il un moyen de gérer ce processus particulièrement difficile?

Angie: Oui, à partir de Drupal 7, en fait, nous avions un concept appelé module de fonctionnalités et quelles étaient les fonctionnalités, où la possibilité de combiner les deux modules ainsi que les changements de configuration et déployez-les comme un seul morceau de code logique entre les environnements. Dans Drupal 8 et neuf, nous avons amélioré cette capacité en l'intégrant directement dans le système central. Il y a quelque chose qui s'appelle le système de gestion de configuration. Et ce qu'il fait, c'est chaque configuration que vous faites. Par exemple, comment s'appelle le nom de mon site, quel est le modèle d'e-mail que je crée, ce genre de choses. Tous sont stockés dans un système centralisé et ce système a tout le reste et Drupal est infiniment flexible.

Angie: Il peut être exporté sous forme de fichiers YAML, par exemple, qui peuvent simplement être migrés dans les deux sens entre les environnements. Et puis, il est vraiment facile de faire un get, un diff et de découvrir: "Oh, d'accord. Il y a eu des changements entre la dernière fois que j'ai vu ça et je peux les regarder et m'assurer qu'ils ont l'air bien, super les importer. " Et il y a à la fois des outils gluants pour le faire ainsi que des outils de ligne de commande pour le faire parce que, encore une fois, Drupal essaie toujours de servir ces deux publics. d'un projet de logiciel mature pour déprécier et supprimer des éléments qui ont fait leur temps, peut-être des fonctionnalités qui n'ont jamais pris le chemin que vous espérez et pour résoudre la dette technologique et ce genre de chose. Quels changements ont été apportés à Drupal 9 en termes de nettoyage de la maison?

Angie: Oui, nous avons pris l'opportunité de la version majeure pour nettoyer vraiment la maison. Ce que nous avons fait tout au long du cycle Drupal 8, c'est d'envisager de nouvelles façons de faire les choses. Des API meilleures et plus claires, par exemple, la gestion des entités ou de la configuration ou ce genre de choses, ou comme une bibliothèque JavaScript plus moderne pour gérer le glisser-déposer ou ce genre de choses. Et pendant Drupal 8, nous avons laissé tous les vieux trucs en place parce que nous ne voulions pas casser le site de personne entre 2015 et aujourd'hui. Mais Drupal 9 nous a donné l'occasion de dire: «D'accord, au fur et à mesure que nous avancions, nous venons de marquer toutes ces choses comme étant obsolètes.»

Angie: Et donc, nous pourrions les trouver plus tard et être comme: "C'est ce que nous devons nettoyer." Et donc, Drupal 9 est passé par la vente en gros et s'est débarrassé de toutes les fonctionnalités obsolètes. Et puis il y a une version Drupal 8.9 qui sort en même temps que Drupal 9, qui contient toutes les couches BC, mais elle est entièrement compatible avec Drupal 9 pour donner aux gens une version pour déplacer tout jusqu'à l'endroit où il doit être. Mais oui, nous avons notamment mis à jour les dernières versions de toutes nos dépendances. Nous avons un tas de dépendances JavaScript, quelques dépendances PHP.

Angie: Ce sont toutes sur les dernières versions de LTS. Donc, nous y restons longtemps. Nous avons également profité de l'occasion pour augmenter les exigences du système, ce que je sais que les gens sont comme, "Oh mon Dieu, pourquoi mon Eskimo 5.7." Mais l'avantage est que beaucoup de ces anciennes versions de PHP, en particulier à PHP 5, il y a encore du temps, n'ont pas été prises en charge par la sécurité depuis des lustres. Et donc, nous essayons de nous assurer que nos utilisateurs qui utilisent Drupal 9 restent en sécurité, non seulement aujourd'hui, mais dans le futur. Nous les avons mis à jour, puis nous nous sommes débarrassés des API obsolètes que nous avons créées en cours de route. Lorsque vous démarrez un site avec Drupal 9, vous commencez avec une nouvelle ardoise, aucun code obsolète sur les derniers trucs et devrait vous servir pendant de nombreuses années à venir.

Drew: Cela semble être un développement assez complexe workflow. Le fait que vous travailliez sur une version compatible Drupal 9 de Drupal 8 et que vous travailliez sur Drupal 9 en même temps, afin de les préparer à sortir ensemble. Comment cela a-t-il fonctionné dans la pratique?

Angie: Oui, cela a bien fonctionné parce que nous écrivons effectivement Drupal 9 dans Drupal 8 au cours des cinq dernières années, à partir de Drupal 8, nous utilisons un concept appelé versioning sémantique. Dans le passé, lorsque nous avons publié Drupal 7, par exemple, nous l'avons laissé plus ou moins seul, à l'exception de quelques corrections de bogues et peut-être de le garder à jour avec les dernières versions de PHP qui sortent et ce genre de chose . Avec Drupal 8, nous sommes passés au versioning sémantique. Et ce que cela signifie, c'est que tous les six mois, nous avons ce qu'on appelle une version mineure de Drupal et ce serait comme une version 8.1 et 8.2, par opposition à une version 8.1.6 ou quelque chose, qui ne serait qu'une version de correction de bogue. [19659009] Angie: Et chaque fois que nous faisons une de ces versions mineures, nous avons la possibilité d'ajouter de nouvelles API, d'ajouter de nouvelles fonctionnalités et de changer la façon dont Drupal fonctionne avec la mise en garde que nous devons toujours laisser en arrière un module de compatibilité pour que les sites existants ne cessent pas de fonctionner. Tout au long du processus, nous avons amélioré Drupal 8 depuis sa sortie initiale. Et donc, nous avons ajouté des fonctionnalités, nous avons déprécié les API, ce genre de chose. Donc, quand nous arrivons à Drupal 9, c'était beaucoup de travail. Je ne veux pas atténuer le mot là ou déprécier ce mot que l'équipe a fait parce qu'il y a comme tout ce tableau de gravure de toutes les choses obsolètes que nous devions passer et tous ces modules contribués qui devaient être mis à jour

Angie: Mais l'effort a été beaucoup plus faible que la préparation de toute autre version majeure, car il s'agissait simplement de perfectionner ces choses obsolètes, les bibliothèques qui ne sont plus prises en charge que nous devons trouver des alternatives et de nous assurer que nous sommes sur les dernières versions de trucs et tout cela fonctionne avec. Et donc, c'est le Delta entre 8,9 et neuf, je pense que c'est quelque chose comme une réduction de 12% du code ou quelque chose comme ça, c'est ce que nous avons réussi à faire, mais sinon ils sont identiques parce qu'ils utilisent tous la même chose.

Drew: Wow. C'est comme Drupal 8, mais les entraves se sont détachées.

Angie: Oui. C’est un grand… je vais vous citer à ce sujet. C’est super, je l’adore. Avez-vous pensé à rejoindre notre équipe marketing? Non, je plaisante.

Drew: Historiquement, et Drupal n'est certainement pas seul dans ce domaine, mais il y a toujours eu beaucoup de mal à déplacer des sites des anciennes versions majeures vers les nouvelles versions majeures de Drupal. . Cela ressemble peut-être au processus de développement d'un Drupal 9 à l'intérieur de Drupal 8, peut-être que cela a été résolu légèrement. Donc, le passage de Drupal 8 à Drupal 9 devrait-il être assez simple?

Angie: C'est vrai. Ouais. Je pense qu'il y a essentiellement trois scénarios, donc l'un est que si vous exécutiez Drupal 8 et chaque fois qu'une nouvelle version mineure de Drupal 8 sortait, vous l'avez mise à niveau immédiatement et vous avez commencé à utiliser les nouvelles choses. Votre chemin ne sera pratiquement pas comme si vous aviez déjà fait tout le travail et que vous allez bien. Si vous avez déménagé vers Drupal 8 il y a quelque temps et que vous n'avez pas suivi les changements de la Colombie-Britannique, il y a un peu de travail pour vous. C'est certainement la mise à niveau la plus simple depuis plus d'une décennie de notre logiciel. Et nous avons une tonne d'outils différents pour vous aider. Il y a un tableau de bord qui montre tous les modules contribués et quelle est leur situation Drupal 9, il y a des outils automatisés pour parcourir et vérifier votre code et signaler toutes les fonctions obsolètes dont vous disposez.

Angie: Et il y a des outils pour automatiquement , en remontant et en trouvant: «Oh, c'est la dernière version de votre module et c'est Drupal 9 prêt? Vous devriez aller le télécharger », ce genre de choses. De Drupal 8 à 9, je dirais que cette partie est assez bien couverte. Si vous venez d'une version antérieure de Drupal, disons Drupal 7 ou inférieur à Drupal 9, cela commence à paraître un peu plus délicat, comme parmi les modifications que nous avons apportées dans Drupal 8, où par exemple, nous sommes entièrement passés à PHP orienté objet et nous avons commencé à utiliser des modèles de conception trouvés dans d'autres projets logiciels, ce qui est vraiment intelligent à faire sur le plan architectural, mais cela signifie que si vous aviez une tonne de code personnalisé dans votre ancienne vie, cela dans Drupal 9 , vous devrez trouver des alternatives pour cela.

Angie: Acquia est un produit et un développement appelé accélérateur de migration Acquia qui vise à résoudre ce problème où nous créons comme un joli, réagissez pour trouver , qui lit dans vos anciennes données Drupal 7 crée des données Drupal 8 équivalentes pour vous ainsi que tous les modules dont vous aurez besoin qui sont mappés à vos anciens modules Drupal 7 lorsque cela est possible pour essayer d'accélérer ce processus un peu parce que nous voulez vous assurer que tous ceux qui sont o n les versions plus anciennes peuvent encore atteindre le nouvel ordre mondial où tout le monde est sur la même version et nous travaillons tous ensemble.

Angie: Et puis en plus, nous avons également étendu le Drupal 7… Le communauté comme la communauté open source de Drupal leur fin de vie dans Drupal 7 en novembre de l'année prochaine. Actuellement, de toute façon, nous devons discuter si COVID a un impact sur cela ou non. Mais il existe un certain nombre de sociétés différentes et Acquia est l'une d'entre elles qui offre un support étendu pour Drupal 7 au-delà, jusqu'en 2024 au moins. Et donc, cela fait en sorte que les personnes qui ont une mise à niveau facile ont un an et demi pour le faire. Les gens ont une mise à niveau moins facile, ont potentiellement trois ans et demi pour le faire ou plus s'ils en ont besoin. Et nous essayons vraiment de faire en sorte que tout le monde puisse se déplacer, puis créer des outils comme Acquia migrate accelerator pour accélérer le processus.

Drew: Je suis intrigué par le son de cette fonctionnalité pour scannez votre code et découvrez s'il va être compatible avec Drupal 9. Est-ce essentiellement un outil d'analyse statique?

Angie: Oui. L'analyse statique a ses limites. Nous avons construit un peu… C'est une bibliothèque appelée Rector PHP et vous pouvez l'utiliser sur n'importe quel code PHP générique. It’s not specific to Drupal, but we’ve built a wrapper around it called Drupal Rector, which my understanding is that it adds a little bit of extra things where… There’s certain stuff that we know when something’s dynamically loaded up in the argument that it’s looking for might not be present at that wouldn’t be necessarily addressable, when it’s just in static codings reading dollar signs and stuff like that. And so, there’s been a little bit of extra wrappers to look for some of the most common issues that we find there. And the other cool thing I’m sorry, I got those two confused.

Angie: PHP scan is the thing that scans the code. Rector is the thing that can automatically apply changes to code. And so, we’ve been using those in tandem. PHP standard do the static analysis, plus a wrapper for some Drupal specific things to catch some of the dynamically loaded problems. And then rector is a thing that’s used to say, used to be Drupal_set_message of procedural function. And now it’s this arrow Drupal message or whatever it is and it automatically can make those changes for you so that you’re really only honing in on a couple of tricky your API bits that can’t be automated for you, but we have a dashboard on dev.acquia.com that goes through all of the contributed modules.

Angie: And I’m going to get the numbers wrong, but it was something like 50% of projects are either done already for Drupal 9, or they just need like one or two line changes that can be done with this automated tool. And then there’ll be good to go. The two of those tools together in tandem have been excellent. What I’d like to see is when we make API changes going forward in Drupal 9.1 and 9.2. and so on that we actually couple them with a rector room that will automatically fix them in modules going forward, because then we can cut this transition period down even further in future releases.

Drew: That sounds really smart. Is this something that users with Drupal 8 sites currently can start using in preparation for Drupal 9?

Angie: Yep, absolutely. We’ve been recommending people start doing this since beta, which was a couple of months ago. Yeah, there’s a couple of I don’t know if it’s the best to send you links or something like that, but there’s a project on drupal.org called upgrade status and that’s a nice jumping off point. That’s the thing that gets you the dashboard overview, it looks at all your modules tells you a red, yellow, green, whether or not it’s ready for Drupal 9 and can point you off to the tools that either can help upgrade your site for you or help you upgrade your own code in cases where you’ve extended Drupal beyond its normal capabilities.

Drew: So, say somebody listening to this has got a WordPress site, which they’ve built over the years. They’ve got maybe multiple themes and child themes, dozens of add-ons, it’s draining, it’s bursting at the seams, it’s beginning to sweat and they’re looking at Drupal, they’re thinking, “I like the sound of this. This sounds like it’s built for more of the project that I’ve got here.” What would the process of moving a site on something like WordPress over to Drupal look like?

Angie: One of the features of Drupal 8 is the migrate API, which is something we’re making use of an Acquia migrate accelerator as well. And the migrate API is generic. It doesn’t care what you’re moving to or from, we happen to use it to move from Drupal 7 to Drupal 9, but you could also use it to move from WordPress to Drupal or from Drupal to WordPress for that matter. Please don’t but you could. There are a bunch of plugins for the migrate system and one of them does add WordPress specific knowledge to the migrate system. And so, it sets up WordPress as a source, Drupal as a destination, and it moves things over there. That worked for the data of your site, the actual functionality of your site, you’d have to do some research to figure out if you say I was using this plugin and WordPress that maps to this module in Drupal.

Angie: One future plan we have for Acquia migrate accelerator actually is, once we got the seven to nine problem leaked to try and open it up so we can move people from anything to Drupal because it’s the same basic problem where you’re doing a major upgrade from an external system to another external system. There’s no reason we couldn’t theoretically throw in WordPress, Adobe experience manager, Sycor those kinds of things into this as well and work on migration tools for those because yeah, the more on the Drupal boat, the merrier.

Drew: Drupal has been a project for nearly 20 years at this point, it’s obviously got a healthy ecosystem loads of committers, loads of support. It’s got companies built around it. But obviously a project this big has to keep evolving and keep bringing in new blood. Are there any initiatives to bring new developers into the Drupal family?

Angie: There is. There’s a couple of those. I would say the one that I’m the most excited about that is very ambitious and so we didn’t get it done in Drupal 8, but we’re calling it, the admin UI initiative would be probably need to split that up into several smaller initiatives, but effectively it’s an initiative to modernize the JavaScript of Drupal. And that means a number of different things. Number one, we’re using jQuery because that was the hottest thing back in 2006 or whenever we made that decision. And moving it more to like generic ES 6 or I don’t even know, I’m sorry, I’m not a JavaScript person, so I don’t know what there is to list there, but whatever the latest ECMAScript is, we’d be using that.

Angie: But it also means, drilling down… Drupal 8 in particular already went a long way to making Drupal really accessible for decoupled builds. Having a JSON:API output, there’s a distribution called Contenta that is get you up and running on a Drupal site, catered to headless, if that’s what you want. There’s a bunch of stuff in that area, but I would love to do even more. Knowing that that is more or less a best practice now, it’s like, sort of build this decoupled front end to a backend and really honed Drupal for that purpose.

Angie: I think that’s part of the JavaScript modernization. And then the other part is a lot of our admin experience tools are still in that PHP client server model, or like a person who clicks a button, there’s a request to the server or something churns, and then you get output. I would love to bring in more of the dynamic instant feedback, that react view angular, some of those libraries make possible. I would love to get some of that in the actual admin interface, both just so the code interface looks nice, but also because if we could develop a set of components, say react components or something like that.

Angie: All of the Drupal modules that plug into Drupal could also make use of those. And it wouldn’t be like reinventing the wheel every time. I think that’s going to be a major focus for Drupal 9 is modernizing the JavaScript and the whole overall developer experience of Drupal for JavaScript developers. And then in addition to that, we’re also trying to minimize the amount of work that people who are developers and already know Drupal have to do through the automatic updates initiative is another big one that I’m excited about where right now, if you want to update your modules, that’s pretty straightforward, but updating core requires some manual work.

Angie: And we would like to get rid of that so that everybody can stay on the most secure version and that kind of thing. If it hasn’t come across, Drupal’s very concerned about security. We run some major governments in the world. We are running the Grammy’s or whatever. A lot of people depend on Drupal for being rock solid. And so, we spend a lot of time being very concerned about the security of the software, making sure the security team is responsive, not only to core issues, but anything that happens in our contributed module space. We take a lot of care about accessibility. We make sure that any change that goes into core goes through a series of gates and make sure that it’s WK compatible and uses the correct Aria attributes and all that kind of stuff.

Angie: We really have spent a lot of time making sure that things are good. And now I think the next phase of things where he’s going to be opening up all of that effort that we’ve put in to make it more accessible to more people.

Drew: It sounds like Drupal takes longterm support very seriously.

Angie: That’s correct.

Drew: How do you balance having a modern code base, you mentioned updating the style of JavaScript using having something that’s attractive to developers yet still having something that’s stable and isn’t following fads, isn’t bringing in dependencies that are going to quickly go away, that you can rely on and it’s going to be a bit boring and keep running and be supportable?

Angie: That is a fair question. I think a couple of different ways. As I mentioned, Drupal is very modular. One thing that has led to success in the past, so JSON:API is a good example. There was a lot of contention about what format are we going to standardize on for Drupal itself to output. And we settled on JSON:API for a number of reasons. It’s an open protocol. It’s not backed by one particular company, blah, blah, blah. There’s a bunch of stuff. When we did that, we actually prototyped that in contrib first. We created a contributed module, which can iterate very fast and easily.

Angie: And we can even just say, “Oh, that didn’t work out, delete it.” We were able to innovate really fast out in sort of this contributed module space. We started there and saw that, “Hey, this thing has some legs. Like people are actually making use of it. They’re providing really great developer feedback. We’ve got Drupal people on the JSON:API spec writing team, like this is actually really good. Let’s bring that thing that we already know works into core.” And then we did so, but it’s still just a module. Let’s say that, next year XMLRPC comes back from the dead and that becomes the thing that everybody uses.

Angie: It’s still possible that we would just leave the JSON:API module in there. We would get a new XMLRPC module. We would enable that by default, but still leave the old thing in there. And then when Drupal 10 came out, we’d take the old JSON:API module, move it back to contrib and people could still use it. But what shifts in the core software itself would just be following the latest trends. This way we get the best of all worlds because we’re able to innovate quickly. We’re able to make the best decisions possible for what the default Drupal user experience will be and developer experience. But then we’re also able to backtrack on decisions if necessary to do different things instead.

Angie: I think what would be get really tricky would be like, if we wanted to throw out the entire theme system and replace it with angular, for example, that would be hard. It’s really hard to make… All of the modules have to write four different ways that they could do their templates and that kind of stuff. That one, we would need to think through more, but that general approach of figuring out a way to plug into the system, leaving the old way in there as a crutch for the people who still need it. And then when we retire things, we retire them gracefully, so they’re still available to people, but just not part of the core product, I think that’s generally how this goes.

Drew: And I guess it’s that continuing process that’s brought you to this point where you’ve got Drupal 8 with all the backwards compatibility, I’ll call it baggage, baggage that you’re now shedding and moving forward with Drupal 9.

Angie: That’s right. Yep. And we’ll do it again in Drupal 10.

Drew: It sounds like a very important release for Drupal. Is there anything else we should know about it? And when is it landing?

Angie: It lands on June 3rd. You heard it here first, or maybe you didn’t hear it here first. We’re going to be doing some kind of like… It’s a little sad that it’s happening during COVID times because when Drupal 7 and eight came out, for example, were user groups all over the world doing like Drupal parties with cakes and all this kind of stuff. And so, we’re going to try and do a virtual version of that, but it won’t quite be the same. But what’s really cute is people bake little Drupal cupcakes and stuff like that, or showing the Drupal can on the side of a building or these kinds of things. And so, it’s a really creative and innovative community, so I’m sure they’ll figure it out some of the cool stuff.

Angie: But no, in terms of things to cover, I think we covered a lot of it, I think, if you’ve looked at Drupal before and held your nose at it, I would say, please give it another look. We’ve done a lot of work and over the past years to really, really hone in on that user feedback, really hone in on the usability piece, make it much easier for marketers. And also much easier to maintain for developers too. We have done that and we’ve managed to do those feature changes without horribly breaking things for the Drupal 8 people because we kept the backwards compatibility stuff in place. But it means if you haven’t looked at Drupal, even in five years has changed significantly as well because we’ve kept adding features, including API headless stuff, workflow, layout builder, all this kind of stuff.

Angie: And I’d say it’s a great way to build, it’s future-proof, there’s structured data under the hood, so you can… Whatever the new front end trend that ends up being you’re well positioned to jump on that. It’s got a great community full of awesome people. I hang out at open-source communities a lot and some of them are like, “Oh, you don’t know about blah, blah, blah?” Well, whatever, kind of thing. And Drupal is more like, “Oh, you don’t know about blah, blah, blah? Well, let me tell you about it because it’s awesome.” It’s just like a really welcoming cool community, I think, because we come from all different backgrounds and we’re just here to make the web rock.

Angie: So, yeah. Anyway, I hope something in there was helpful. And thank you very much for the opportunity to speak with you.

Drew: It would be remiss of me not to ask you about your involvement in open-source more generally, and especially the hurdles that are very real for getting more women to participate in open source. That’s something that you’re very passionate about, isn’t it?

Angie: Yeah. My background is, I was an open-source zealot back when I was even a teenager, I heard about opensource. I was like, “That is so cool. Everything should be open source.” But I always had this vision that you had to be a genius to work on open source because the people who were big names and open source back then was like Linus Torvalds and Eric S. Raymond and I don’t know. For some reason they carry this glow of like, “Oh, those guys are so smart.”

Angie: And so, I was self taught, I was going to community college at the time. And so, I just figured out this is not for me. But then Google announced a program called Google Summer of Code, which was where you get paid over the summer to work on an opensource project. And I was like, “Well, that’s really interesting because if they know we’re students, they know we don’t know everything yet. Maybe I’ll and just see what happens.” And I picked Drupal because I’m one of those people that just use source on every website I visit, just because I’m curious about what’s happening. And back in the day, there was a website called Spread Firefox that was built on Drupal. And it was really interesting. It was basically the community site where anyone could upload like a Firefox installed Fest or event having their campus, or they could upload a poster that they made or like whatever.

Angie: And I was just like, “That’s really neat. That’s cool. I’ll just file that away for later.” Because I long since given up using actual CMSs because I use PHP nuke and I was like, “No, I’m never doing anything like it. My cat could write better code than this anyway, I’m sorry. Sorry, PHB nuke.” But anyway, I had filed that away and I saw Drupal on listers and I was like, “All right, sure. I’ll give it a go.” And then it was amazing because from this side of things, once I got in the community and was actually contributing, I realized like, “Wow. A, first of all, the people that I thought knew all these things don’t actually know that much. You know what I mean?” They do. But like everyone has strengths and weaknesses. And what I saw happening was there’s people who are really good at certain aspects of the code.

Angie: People who are really good at documentation, people who are good at design. People who are good at explaining things to people, whatever, all of these people collaborating on these changes and all contributing the little bit that they know. And I was like, “Man, if I had known that like 10 years earlier, I would have gotten hit on this, I could have had a whole decade of software experience by now.” And so, I made it my mission to try and break down that barrier, particularly for women because women are socialized from a very young age to not get into tech, to begin with. And then once they get into tech, there’s a lot of like, “Oh my God, it’s a girl,” kind of thing. And it’s just like, if you’re in tech, you’re already dealing with a certain amount of crap.

Angie: And it’s like, why don’t we cut the crap and show people how awesome this is. I love talking to anybody who wants to get involved in open source, but particularly the women because I ran a group called Drupal Chicks for a few years there, which was women in Drupal to get together and talk. And the meetings were so funny because a girl would be like, “Well, I’m not a developer but,” and then she’d go on to like describe all this complex CSS stuff that she does or whatever. And I’m like, “You know that’s development, right?” I see women in particular though, everybody can struggle with this, but women in particular struggling with that feeling that even if I’m a perfectly capable person, that I’m just not as good as everyone else and so yeah.

Angie: I tried really hard to break down that barrier. I also tried to break down the… For my own self like people go, “Who Is Web Chick?” And I’m like, “No, I’m just like a moron.” I was like, “I did the stupid thing last week.” It was hilarious. And just to kind of break down that rockstar idolatry stuff, because we’re all just humans and we’re all just here trying to make it work and yeah. I am passionate about it because I just feel like if there’s someone out there who genuinely loves open source and the ethos of open source and the idea of it, that they shouldn’t be held back just because they think they’re not as good as other people because I can tell you right now, you’re good enough and you should just do it.

Drew: That’s so, so important. I’ve been learning about Drupal 9. What have you been learning about lately, Angie?

Angie: At the beginning of the whole pandemic thing, a friend of mine who teaches guitar, posted like, “Crap, my music school closed. Does anybody want to do Zoom lessons?” And I was like, “Yeah, I have a guitar. Just been hanging out here.” And just because I collect musical instruments just in case of the off chance my daughter wants to get into music. I’m like, “Great, I have all the things.” But I have no idea how to play it. I play drums. And so, I was like, “Sure, I’ll try that.” Actually, for the past two months I’ve been taking guitar lessons online from a friend of mine and I’m learning like take it easy by the eagles and stuff like that and a little bit of blues stuff and I’m so far very terrible, but I’m trying and it’s fun.

Angie: It’s just a completely different thing that it wouldn’t otherwise do. And yeah, it’s been really fun.

Drew: Incredible. If your dear listener would like to hear more from Angie. You can follow her on Twitter where she’s @Webchick, find her personal site at webchick.net. And of course, find out all about the current and upcoming versions of Drupal at drupal.org. Thanks for joining us today, Angie, do you have any parting words?

Angie: No, I’m really grateful to have the opportunity to speak with you. You’ve been around the block like, “Holy cow.” I was looking at your resume. It’s like, “Oh my gosh.” Speaking of people that are up on pedestals, but honestly, that’s amazing. I really appreciate the opportunity to talk with you, especially about the little open-source project that could. And hope that people take the chance to try it out.

Smashing Editorial(il)




Source link