Présentation de la Nova 2

| Temps de lecture : 6 min

En octobre 2022 le collectif Edinum publiait la version 2 de la maquette libre Nova adaptée à la publication de revues scientifiques avec Lodel. Un an et quelques dizaines de patchs correctifs plus tard, voici une présentation de cette nouvelle version, dont Chapitre neuf assure aujourd'hui la maintenance.

La maquette Nova

Le CMS Lodel a longtemps été difficile à utiliser hors de son environnement technique de prédilection, notamment parce qu'un certain nombre de ressources indispensables à son bon fonctionnement n'étaient pas disponibles ou maintenues à jour.

La maquette (composée de templates) correspond à la brique logicielle responsable de l'affichage des pages et des interfaces. Lodel est dans sa version actuelle distribué avec une maquette qui n'est plus maintenue depuis les débuts du projet, cette partie du code ne faisant plus l'objet d'une publication sous licence libre par OpenEdition.

Or depuis une dizaine d'années, l'utilisation de Lodel par les plateformes d'édition universitaire en ligne a ouvert de nouvelles perspectives et problématiques. En s'emparant du logiciel pour l'adapter à leur utilisation les pépinières scientifiques ont favorisé l'expression de nouveaux besoins parmi lesquels le développement d'une nouvelle maquette moderne pour permettre la publication de revues électroniques avec Lodel est rapidement apparu comme une priorité.

Nombre d'aspects dépendent (totalement ou partiellement) de la maquette d'un site : l'accessibilité, le confort de lecture, l'habillage graphique, l'exposition des métadonnées, la sécurité, l'interopérabilité et la compatibilité avec les différents appareils, systèmes et navigateurs. La conception d'une maquette est donc un chantier long et complexe qui advient à l'intersection d'un faisceau de besoins, d'attentes et de contraintes techniques.

Lorsque plusieurs sites répondent au même cahier des charges comme c'est le cas pour les pépinières de revues scientifiques, une approche efficace consiste à concevoir une maquette générique qui servira ensuite de modèle personnalisable lors de la création de chaque site. C'est le fonctionnement pour lequel nous avons opté.

Page d'accueil d'un site utilisant la maquette Prima

Page d'accueil d'un site utilisant la maquette Prima

Dans le cadre de l'offre d'hébergement d'Edinum, nous avions développé en 2016 une première maquette générique (nommée Prima) adaptée à la lecture d'articles scientifiques sur les différents types de terminaux (ordinateur, mobile, tablette…).

Cette première expérience nous a permis de répondre à une demande formulée quelques années plus tard par la plateforme Prairial (Pôle éditorial Lyon Saint-Étienne) en développant avec Yolaine de Villeneuve et Arnaud Cordier la maquette Nova.

Nous avons choisi de publier ce projet sous licence libre afin d'en favoriser la réutilisation par toutes et tous. Initialement la Nova reprend une partie du code de la maquette Prima tout en adoptant une interface plus proche de ce qui est proposé par OpenEdition Journals en termes d'ergonomie et de fonctionnalités.

La version 2

En quelques années la maquette Nova a été adoptée par un nombre croissant de plateformes et de revues scientifiques. Ce rayonnement nous a donné l'opportunité de recueillir des retours d'expériences riches et multiples tout en nous confrontant à une diversité de nouveaux besoins.

De nouvelles préoccupations ont aussi émergé durant les quelques années de vie de cette première version. L'obligation d'accessibilité s'est confirmée pour les sites publics (services de l'État ou collectivités territoriales), renforçant la nécessité de se conformer au Référentiel général d’amélioration de l’accessibilité (RGAA). C'est dans ce contexte que la plateforme Péren (Université de Lille) a commandé un audit d'accessibilité de la Nova, puis a sollicité Edinum pour travailler sur les axes d'amélioration qui sont ressortis de cette étude.

Il est rapidement apparu que la mise en conformité de la maquette Nova aux normes du RGAA nécessiterait la réécriture d'une partie conséquente de son code source. Devant ce constat et par souci de limiter la fréquence des ruptures de compatibilité qu'entraînent de tels changements, j'ai pris la décision de profiter de ce chantier pour réécrire une grande portion du code de la maquette afin de corriger plusieurs autres problèmes. Cette partie du travail n'a pas été rémunérée.

Le premier axe a consisté à revoir intégralement l'ergonomie des interfaces. Les feuilles de styles ont été réécrites pour mettre en pratique un maximum de bonnes pratiques. La typographie et le layout des pages ont été intégralement revus pour permettre un meilleur confort de lecture, en augmentant notamment la taille des polices conformément aux recommandations répétées des spécialistes et des agences de santé. Un certain nombre d'interfaces ont été ajoutées (barre de navigation en haut de page, liens vers les sections de la page contre la barre latérale de défilement…) ou repensées (sélecteur de langue, onglets linguistiques, affichage des tableaux…). Une légère refonte graphique a enfin été entreprise pour favoriser une meilleure harmonisation des couleurs et des différents niveaux de gris, tout en préservant un aspect visuel dans la continuité de la première version.

Page d'accueil d'un site utilisant la maquette Nova

Page d'accueil d'un site utilisant la maquette Nova

Un second aspect concerne la modularité et le confort d'utilisation dans le cadre des personnalisations de maquettes. Bien qu'il s'agisse du changement le moins visible, c'est peut-être ici que se trouve l'évolution la plus importante de la Nova.

L'adoption massive de la maquette par les pépinières a ajouté une dimension supplémentaire à son évolution en nécessitant toujours davantage de besoins de personnalisation et en augmentant la complexité de la maintenance technique du projet, qui doit présenter la souplesse suffisante pour satisfaire les besoins propres de chaque plateforme tout en préservant un code source unique et redistribuable.

Plusieurs leviers ont été mobilisés pour atteindre cet objectif : la réduction de la spécificité des styles CSS pour faciliter les surcharges, l'ajout de variables et mixins LESS pour simplifier les personnalisations, la suppression des webfontes embarquées par défaut, la multiplication des options de maquette, des macros LodelScripts et des hooks, l'amélioration du mode de développement, etc.

La liste complète des modifications effectuées est publiée sur Github. On pourra également consulter le guide de migration et le site de démonstration de la maquette Nova.

La Nova est ainsi devenue un outil flexible, plus aisé à manipuler, maintenir et modifier.

Une expérimentation à long terme

Si les appellations « Nova 1 » et « Nova 2 » peuvent donner l'impression que le développement du projet s'est fait par sursauts à l'occasion de grands chantiers, sa maintenance et sa mise à niveau représentent en réalité un travail très régulier qui s'est étalé sur plusieurs années. De nombreux patchs et correctifs ont donné lieu à une cinquantaine de versions intermédiaires depuis la première publication de la maquette, soit en moyenne un peu plus d'une version par mois.

Diagramme d'activité du projet Nova

Graphe de mes contributions (en nombre de commits) au code source de la Nova depuis juillet 2019 (les interventions des autres contributeurs ne sont pas comptabilisées ici). On constate deux fortes périodes d'activité qui correspondent aux versions majeures (1 et 2), ainsi qu'une activité régulière et maintenue sur le reste de la période. Source : Github.

La maintenance de la Nova est aujourd'hui assurée par le collectif Chapitre neuf. On peut grossièrement estimer à 800 le nombre d'heures de développement réalisées par les quatre personnes qui ont participé à la maintenance du projet. La rémunération directement perçue pour ce travail (principalement pour les grands chantiers de conception des versions majeures 1 et 2) couvre environ un quart de ce temps de travail, le reste étant donc réalisé sur les ressources propres d'Edinum / Chapitre neuf.

Car ce projet a aussi été l'occasion d'imaginer et tester un modèle économique voulu en cohérence avec la libération du code que nous avions fixée comme l'un de nos objectifs. Pour contrebalancer le manque à gagner dû à une activité de maintenance qu'il est impossible de facturer, nous proposons un hébergement clé en main de revues et intervenons auprès des plateformes qui ne disposent pas des ressources nécessaires pour réaliser elles-mêmes l'installation de nos outils. J'aurai l'occasion de faire plus largement le bilan de cette expérimentation dans un autre billet.

Perspectives

Conçue initialement il y a quatre ans, la maquette Nova est aujourd'hui utilisée par neuf plateformes pour diffuser plusieurs dizaines de revues en accès ouvert. Sa publication est l'aboutissement d'années de travail et d'expérience en édition électronique à destination des revues savantes. À force d'ajustement et de mises à jour, nous avons a atteint un niveau qualitatif qui fait de cet outil une option robuste pour la publication en ligne d'articles scientifiques en accès ouvert.

Son avenir reste cependant inextricablement lié à celui de Lodel, dont on sait qu'une nouvelle version verra prochainement le jour. Comment dès lors envisager le prolongement de la maquette Nova dans le contexte d'un passage à Lodel 2 ?

Si les spécifications techniques de Lodel 2 n'ont pas encore été rendues publiques, il a été confirmé à plusieurs reprises par OpenEdition que cette nouvelle version s'appuierait sur le framework Symfony. Ce changement induit un certain nombre de ruptures techniques, dont l'abandon de LodelScript et le passage à Twig pour le rendu des templates. Il est également probable que des variations soient introduites dans la structure des données. On peut en déduire que les maquettes et plugins développés pour Lodel 1 ces dernières années ne seront plus compatibles avec la version 2.

OpenEdition a annoncé que Lodel 2 serait distribué sous licence libre à la fin de son développement mais nous savons peu de choses sur le périmètre de ce qui sera compris dans cette distribution. Les maquettes d'OpenEdition seront-elles fournies avec le logiciel ou faudra-t-il développer de nouveaux templates comme nous l'avons fait pour Lodel 1 ? Le programme sera-t-il par défaut adapté à une utilisation en dehors de l'infrastructure technique d'OpenEdition ? Enfin toutes les fonctionnalités proposées sur les plateformes d'OpenEdition (recherche avancée, génération automatique des formats détachables, serveur OAI-PMH, architecture de plugins, etc.) seront-elles présentes dans le package distribué ?

Toutes ces questions font qu'il nous est impossible à ce jour de prédire en quoi consisteront les développements à effectuer pour les pépinières lors de la publication de Lodel 2.

L'expérience acquise ces dernière années peut toutefois servir de boussole : lorsque nous avons commencé à travailler avec Lodel il y a huit ans, les ressources disponibles pour les plateformes étaient rares, voire inexistantes si l'on se limite aux logiciels libres. Les quelques plateformes qui existaient en dehors d'OpenEdition utilisaient alors des solutions maison éparses plus ou moins évoluées. Il nous aura fallu plusieurs années pour développer un environnement technique unifié réunissant un panel de fonctionnalités d'un périmètre et d'une qualité louables.

Combien faudra-t-il de temps pour atteindre le même niveau de diversité et de robustesse avec Lodel 2 ? Difficile de le prédire avec certitude. Mais on peut supposer que Lodel 1 et la maquette Nova resteront des outils utiles durant tout le temps de cette transition.