Drupal 8 : de Barcelone à Dublin, une année à fond de train

drupal-8-logo-rgb-72

Lors du DrupalCon de Barcelone en septembre 2015, la communauté Drupal était très déçue de pas avoir réussi à finaliser Drupal 8, pourtant en développement depuis bientôt quatre ans.
Au moment du DrupalCon de Dublin en septembre 2016, Drupal 8 était non seulement disponible depuis plusieurs mois, mais deux nouvelles versions mineures (8.1.0 et 8.2.0) avaient déjà vu le jour.
Cette version est sans aucun doute la plus importante de l’histoire du projet, tant par les nouveautés apportées au logiciel que par les changements appliqués au processus de développement.
De ce fait, on peut se poser la question suivante : comment la communauté Drupal est-elle passée d’un délai de quatre ans entre les versions 7 et 8, à des itérations courtes et des nouveautés fréquentes ?

La mise en place des versions planifiées
Le graphique ci-dessous montre à quel point le temps entre chaque version de Drupal a augmenté de façon considérable.
crop_drupal

Ce délai entre Drupal 7 et 8 a aussi révélé un certain nombre de problèmes.
Puisque cette version était en mode de développement durant quatre ans, les contributeurs avaient l’impression de travailler dans une sorte de bulle, ajoutant de nouvelles fonctionnalités sans jamais savoir si elles répondaient à des besoins réels chez l’utilisateur hypothétique.
La mise en place de versions planifiées est venue remédier à ce dysfonctionnement en prévoyant une nouvelle version tous les six mois.

Cela permet aux développeurs d’ajouter des nouveautés beaucoup plus souvent, de recevoir des commentaires d’utilisateurs réels et d’être ainsi mieux à même de suivre le marché.
La sortie d’une nouvelle version marque aussi la fin du support de la précédente pour inciter les utilisateurs à tenir leur site à jour et pour éviter d’avoir à supporter plusieurs versions.
La gestion sémantique de version
Le passage d’un système de version à deux chiffres (7.x) à un système de version à trois chiffres (8.0.x), appelé gestion sémantique de version, a favorisé la mise en place des versions planifiées et permis de limiter les changements de versions majeures.
Le premier chiffre, la version majeure, n’augmente que lorsque des changements rétro-incompatibles sont nécessaires. Le troisième, la version de correctif, est augmenté chaque fois qu’une mise à jour de sécurité ou qu’un correctif de bogue est appliqué. Finalement, la version mineure représentée par le chiffre du centre, est augmentée toutes les fois que de nouvelles fonctionnalités rétro-compatibles sont ajoutées.
Dans le cas de Drupal 8, c’est cette version mineure qui est incrémentée tous les six mois.

Les modules expérimentaux
En plus des sorties planifiées et des versions sémantiques, Drupal 8 introduit aussi le concept de module expérimental.
Un module expérimental est un module qui aspire à être inclus dans le cœur de Drupal, mais qui n’a pas encore atteint une stabilité acceptable.
Comparativement à un module communautaire, un module expérimental reçoit davantage de visibilité de la part des utilisateurs et des core commiters puisqu’il est inclus dans le cœur de Drupal.
Toutes les modifications apportées à son code sont revues par une personne responsable du projet, garantissant ainsi qu’il ne contient aucune faille de sécurité connue ni aucun risque de perte de données.
Notons aussi que leur utilisation dans un environnement de production est déconseillé et que leur avenir dans le cœur de Drupal n’est pas garanti, car s’ils ne se stabilisent pas dans un délai d’un an, ils seront retirés.

Les nouveautés dans Drupal 8.2.

1) De nouveaux modules expérimentaux
– «Content moderation» qui introduit les états de modération du contenu.
– «DateTime range» qui permet d’ajouter des dates de fin.
– «Place block» qui permet de placer des blocs directement sur une page sans avoir à passer par les pages d’administration, facilitant ainsi la visualisation du rendu.
– «Settings tray» qui introduit un panneau latéral pour éditer la configuration de certaines parties des pages comme, par exemple, les menus.

2) Des améliorations à des fonctionnalités déjà présentes
– Des URL relatives converties en URL absolues lorsque présentées dans un flux RSS.
– Des révisions activées par défaut pour les nouveaux types de contenus.
– Un progrès considérable du côté du support REST, qui permet un plus grand contrôle sur un site Drupal depuis une application externe.

Que peut-on espérer pour Drupal 9 ?

Avec ce nouveau modèle de développement, certains se demandent si Drupal 9 sera vraiment nécessaire dans un futur proche.
Il est vrai que les nouveautés de Drupal 8 vues ici nous permettent d’ajouter des fonctionnalités beaucoup plus facilement et rapidement qu’auparavant, alors pourquoi ne pas continuer ainsi pendant plusieurs années ?
Nous sommes portés à croire que ce sera probablement le cas. Tant qu’il n’y aura pas un excès de couches de rétro-compatibilité qui gagneraient à être retirées ou qu’il n’y a pas de besoin urgent de faire des changements rétro-incompatibles, Drupal 8 continuera d’évoluer au rythme de ses versions mineures.
De plus, étant donné que la sortie d’une nouvelle version mineure implique la fin du support de la précédente, nous pouvons espérer que lorsque Drupal 9 sortira, la transition se fera beaucoup plus efficacement que celle entre Drupal 7 et 8. Et ce pour deux raisons.
Premièrement, puisque le plus important changement sera probablement le retrait des couches de rétro-compatibilité, et que leur dépréciation aura été annoncée progressivement au fil des versions mineures, les modules communautaires auront eu amplement le temps de s’adapter.
Deuxièmement, si des changements rétro-incompatibles sont ajoutés tels que des modifications aux API ou aux structures de données, ils seront certainement moins colossaux que ceux que nous avons vus entre les versions 7 et 8, ce qui présage une mise à jour beaucoup plus aisée.

Sources
Dries Buytaert, Driesnote, DrupalCon Dublin 2016
Gábor Hojtsy, Checking on Drupal 8’s rapid innovation promises, DrupalCon Dublin 2016

Des nouvelles du projet LDAP Tool Box, la boîte à outils pour les annuaires LDAP

Le projet LDAP Tool Box rassemble différents outils pour aider les administrateurs LDAP, que ce soit des paquets OpenLDAP, des scripts de supervision ou encore des applications Web. L’objectif est de simplifier la vie des administrateurs LDAP, car comme l’indique la description du projet :

Même les administrateurs LDAP ont besoin d’aide

Tous les outils proposés sont sous licence libre et disponibles sur GitHub.

Supervision

Des greffons de supervision sont fournis pour Nagios (ou tout autre logiciel compatible) et Cacti. Ils permettent par exemple de vérifier le statut de la réplication OpenLDAP, de collecter les statistiques sur les opérations LDAP ou encore surveiller le taux de remplissage d’une base MDB.

16c97f6538278bee29e8b9de1aac3516-media-593x381

Des configurations sont également disponibles pour la pile logicielle ELK (ElasticSearch, Logstash, Kibana) afin de tracer en temps réel l’utilisation des annuaires OpenLDAP.

openldap-elk-ldap-operations

Paquets OpenLDAP

OpenLDAP est le serveur LDAP le plus répandu, très proche du standard et offrant d’excellentes performances. Il est présent dans la plupart des distributions GNU/Linux mais celles-ci font souvent des choix de compilations non avalisées par les développeurs du projet, l’exemple le plus représentatif étant la bibliothèque SSL/TLS.

Le projet LDAP Tool Box fournit des paquets pour les environnements Debian/Ubuntu et Red Hat/CentOS. Ils sont compilés avec OpenSSL et embarquent les overlays officiels ainsi que certains overlays contribués comme « lastbind » et « smbk5pwd ».

Ils offrent également des modules spécifiques de gestion de la qualité des mots de passe comme check_password et ppm. Un script de gestion du service est installé par défaut, permettant les sauvegardes/restaurations des données et de la configuration.

Interface de gestion du mot de passe

L’application Self Service Password permet de fournir aux utilisateurs une interface simple pour changer son mot de passe, ou le réinitialiser quand celui-ci est perdu (ou expiré). Cette réinitialisation peut se faire :

  • Par un lien envoyé par mail
  • Par un code envoyé par SMS
  • Par la réponse à une question

Cette interface est compatible avec différents annuaires LDAP dont Active Directory et Samba 4.

ssp_1_0_change_password

La version 1.0 de ce logiciel est sortie en octobre 2016 (voir l’article sur LinuxFR).

Interface de consultation des données

L’application White Pages est une interface de consultation des données d’un annuaire LDAP, avec les fonctionnalités suivantes :

  • Recherche rapide : une invite de recherche dans le menu permet de retrouver directement des entrées à partir du nom, du prénom, du mail ou de l’identifiant
  • Recherche avancée : un formulaire liste les différents attributs sur lesquels une recherche peut être faite
  • Trombinoscope : toutes les entrées de l’annuaire sont affichées avec leur photo

Ces fonctions peuvent être activées/désactivées et les attributs cherchés ou affichés sont configurables. L’interface peut donc être utilisée avec n’importe quel annuaire LDAP.

wp_0_1_full_display

La version 0.1 de ce logiciel est sortie en novembre 2016 (voir l’article sur LinuxFR).

Savoir-faire Linux commanditaire Bronze: Mini Compte Rendu du Sommet Drupal Nord

Maxime Turcotte, notre consultant en logiciels libres nous a gentiment réalisé un petit compte-rendu sur ses 4 jours au Drupal Nord qui ont eu lieu le 16 et 19 juin dernier à Montréal.

ClQmc9DUoAAj2TH

On retiendra, selon ses commentaires, que l’évènement aura accueilli environ 300 personnes sur les quatre jours. En grande majorité des visiteurs venus de l’extérieur de Montréal.

Une trentaine de personnes étaient inscrites aux formations du jeudi. Celles qui n’y étaient pas, on profité de ce temps mort pour préparer leurs présentations du lendemain.

On retiendra aussi la conférence donnée par Bart Feenstra et spécialement débarqué des Pays-Bas pour l’occasion. Les échanges auront tourné autour des standards PHP proposés par le groupe de réflexion PHP-FIG.

En plus des 20 autres conférences proposées le samedi, une autre excellente conférence a été donnée par Cathy Theys de Chicago autour des réflexions engagées par la communauté Drupal aussi bien au niveau du marketing, que du recrutement mais encore de la gestion de projet.

À ce propos, les audios sont disponibles ici : http://www.drupalnorth.org/en/session/thoughtfulness-and-drupal

Enfin, le dernier jours s’est terminé sur un sprint lors duquel une trentaine de codeurs expérimentés et débutants étaient présents pour apporter leurs contributions personnelles au coeur de Drupal.

Sans oublier les collations, les pizzas et le ukulele!!!

0e8c49bb-6bc1-4f8e-a9b2-c27e23ee086f_0

Sortie de LemonLDAP::NG 1.9

Ce billet a été publié à l’origine sur LinuxFR

LemonLDAP::NG est un logiciel libre d’authentification unique (SSO), contrôle d’accès et fédération d’identités. La version 1.9.0 a été publiée le 2 mars 2016.

LemonLDAP::NG

LemonLDAP::NG est écrit en Perl et publié sous licence GPL. Cette nouvelle version majeure apporte de grands changements au logiciel comme le support OpenID Connect, une nouvelle interface d’administration et la compatibilité Nginx.

Présentation des nouveautés

OpenID Connect

OpenID Connect est un nouveau protocole de SSO porté par la fondation OpenID et basé sur le framework OAuth 2.0. Ce standard est adopté par de nombreux acteurs, comme par exemple Google qui l’utilise pour son authentification en remplacement de OpenID 2.0. L’État Français a lui aussi fait le choix de OpenID Connect pour sa nouvelle plate-forme France Connect.

Il est donc désormais possible d’utiliser LemonLDAP::NG pour s’authentifier sur ces services :

En plus du rôle de client (Relying Party), LemonLDAP::NG a aussi le rôle de serveur (OpenID Provider) ce qui lui permet d’authentifier toute application compatible avec ce protocole.

Interface d’administration

L’interface d’administration, appelée aussi Manager, a été réécrite avec AngularJS afin d’améliorer son ergonomie et son utilisation. Pour les habitués des précédentes versions, sachez que désormais vous n’aurez plus à cliquer sur « Appliquer » à chaque changement de valeur, et que vous pourrez éditer tous les en-têtes ou toutes les règles dans un seul écran.

Manager LemonLDAP::NG

Cette nouvelle interface permet la navigation entre les différentes versions de la configuration, l’import/export de configuration (au format JSON), la duplication d’hôte virtuels.

L’interface propose aussi toujours un explorateur de sessions, avec comme nouveauté la possibilité de parcourir les sessions persistantes (sessions conservées entre chaque connexion d’un utilisateur). Le gestionnaire de notification est aussi présent, au même niveau fonctionnel que dans les précédentes versions.

Support Nginx

Bonne nouvelle pour les réfractaires à Apache, la réécriture du code du Handler (agent assurant la protection des applications) passant par l’implémentation d’une API a permis d’offir un support FastCGI. Un petit serveur FastCGI est désormais livré avec LemonLDAP::NG (paquet lemonldap-ng-fastcgi-server) et permet de contacter le portail, le Manager et le Handler depuis Nginx.

Attributs CAS

Le serveur CAS de LemonLDAP::NG implémentait jusqu’à présent les versions 1.0 et 2.0. Désormais, une partie du protocole CAS 3.0 est pris en charge avec la possibilité de partager des attributs dans les réponses de validation CAS. Cela permet en particulier d’utiliser l’API PHP-CAS et sa fonction getAttributes().

MongoDB

MongoDB est utilisable pour le stockage des configurations et des sessions. Il s’ajoute à la liste des nombreux backends disponibles : Fichiers (JSON), DBI (MySQL, PgSQL, SQLite, …), LDAP, Redis.

Mettre à jour sa version

L’utilisation de fonctionnalités récentes de Perl contraint à restreindre les systèmes sur lesquels cette nouvelle version peut être installée. En particulier CentOS 5 et CentOS 6 ne sont pas utilisables.

D’autres changements techniques importants ont eu lieu et il est préférable d’avoir bien pris connaissances des notes de mise à jour avant de se lancer.

Enfin, nous espérons que cette nouvelle version apportera bonheur et prospérité à votre système d’information. Si vous êtes un utilisateur satisfait, vous pouvez le dire sur OpenHub et également faire partie de nos références.

LemonLDAP::NG : des nouvelles du développement et un appel aux testeurs

LemonLDAP::NGCela fait plusieurs mois que nous l’annonçons : la nouvelle version de LemonLDAP::NG va sortir… Oui mais quelle version — et quand ?

Dans une présentation que j’ai donnée à la conférence OW2 de novembre dernier, je dressais la liste d’un certain nombre de nouveautés prévues pour la version 2.0. Entre-temps, la communauté a choisi de travailler sur une version estampillée 1.9, plutôt que 2.0, et de remettre cette dernière à une date ultérieure.

Réorganisation des priorités

Pourquoi ? Parce que les ambitions sont toujours grandes lorsqu’il s’agit de réaliser une version majeure et il est compliqué d’estimer le temps requis pour la terminer. Et ce d’autant plus qu’il s’agit d’un projet communautaire; bien que soutenu par d’importants partenaires comme Savoir-faire Linux, la Gendarmerie Nationale et le Ministère de l’Intérieur, ce n’est pas un produit d’éditeur bénéficiant d’une équipe dédiée de R&D.

Alors quels choix justifient la sortie d’une version 1.9 au lieu de la 2.0 ? Par rapport aux sujets présentés lors de la conférence OW2, les principales évolutions de la nouvelle version restent les mêmes :

  • Support de OpenID Connect, comme fournisseur de service et comme fournisseur d’identité (1)
  • Réécriture complète du Manager en AngularJS (2)
  • Réarticulation du code du Handler autour d’une API, dont l’objectif est le support de plusieurs conteneurs Web comme Apache et Nginx (3)
  • Échange d’attributs via CAS (4)
  • Sérialisation JSON des données de configuration et de session

Mais tout le travail que nous souhaitions faire sur le passage en PSGI ne pourra pas aboutir sur le portail, qui reste pour l’instant basé sur Perl CGI. Ce chantier nécessite beaucoup d’efforts et nous ne souhaitons pas bloquer la sortie de la nouvelle version à cause de lui. Nous avons d’ailleurs beaucoup d’autres idées à mettre en œuvre pour la version 2.0 (nouvelles fonctionnalités dans le Manager, réécriture du stockage des notifications, etc.) et nous voulons prendre le temps de les réaliser correctement.

Bref, la 1.9, c’est pour quand ?

Selon la feuille de route actuelle, cette nouvelle version devrait sortir d’ici la fin du mois de février. Les principaux développements sont terminés et nous sommes en phase de test. Et c’est là que vous pouvez nous aider ! Nous avons en effet besoin de la communauté pour installer et tester cette nouvelle version. N’hésitez pas à nous contacter pour remonter les problèmes que vous rencontrez. Merci !