Retraceur 4.0.0 : un carrefour ouvert plutôt qu’une place de marché centralisée

Publié le

dans

.
Une halle publique, à l'image de l'annuaire public des ressources externes de Retraceur

Lorsque j’ai créé Retraceur, mon objectif n’a jamais été de reconstruire WordPress® sous un autre nom. Je voulais simplement continuer à publier sur le Web sans dépendre d’une infrastructure contrôlée par une seule personne ou une seule organisation.

Depuis le premier jour, cette indépendance guide chacune des évolutions du projet. J’utilise souvent une autre image pour décrire Retraceur : celle d’un carrefour. Un carrefour ne possède pas les routes qui s’y croisent. Il permet simplement à chacun de choisir son chemin.

À mes yeux, un Web ouvert devrait fonctionner de la même manière.

Cette première bêta de Retraceur 4.0.0 constitue une nouvelle étape dans cette direction. Derrière deux nouvelles API se cache en réalité une question beaucoup plus fondamentale : comment faciliter la rencontre entre les développeur·rice·s d’extensions et leurs utilisateur·rice·s, sans créer une nouvelle place de marché centralisée ?

Le véritable défi n’est pas technique

Depuis plusieurs mois, différentes initiatives cherchent à répondre aux difficultés révélées par la gouvernance de WordPress®. L’initiative FAIR en fait partie. Je trouve cette approche particulièrement intéressante et je pense qu’elle constitue une avancée importante pour la communauté WordPress®. Elle démontre qu’il est possible de construire un protocole fédéré où plusieurs acteurs indépendants peuvent proposer des services de découverte, de distribution ou de qualification des extensions.

En travaillant sur Retraceur, une autre question m’est toutefois venue à l’esprit.

Les développeur·euse·s publient déjà leurs projets sur des forges logicielles. Pourquoi leur demander de publier également leurs métadonnées sur une infrastructure dédiée si ces informations peuvent être découvertes directement à la source ?

Autrement dit, pourquoi construire une nouvelle place de marché lorsqu’il est possible d’aménager un carrefour ?

C’est cette réflexion qui a naturellement orienté Retraceur vers un autre chemin : celui de la « Discovery API ».

Capture d'écran de la page de découverte des blocs
Page d’administration de la découverte des blocs (la même existe pour les extensions)

La « Discovery API »

Retraceur est développé sur GitHub, comme une grande partie des logiciels libres aujourd’hui. Il m’a donc semblé naturel et pragmatique de commencer par cette forge logicielle. Ceci étant écrit, GitHub n’est pas une finalité en soi. Mon ambition est de construire une API de découverte indépendante de son fournisseur.

Les questions de souveraineté numérique prennent aujourd’hui une importance croissante. Je les partage pleinement et je souhaite que Retraceur puisse, demain, découvrir des extensions publiées sur d’autres forges logicielles, comme Codeberg, ou sur toute autre plateforme capable d’exposer les mêmes métadonnées.

Pour y parvenir, la « Discovery API » ne repose pas sur un annuaire centralisé. Elle s’appuie directement sur les informations que les développeur·euse·s choisissent déjà de publier avec leur projet.

Concrètement, rendre une extension ou un bloc découvrable consiste aujourd’hui à respecter quelques conventions simples :

  • compléter l’en-tête du fichier PHP principal de l’extension/du bloc avec les informations propres à Retraceur (Plugin Type, Requires Retraceur, Up to Retraceur et GitHub Plugin URI) ;
  • identifier le dépôt GitHub à l’aide d’une étiquette (retraceur-plugin ou retraceur-block) ;
  • ajouter un fichier retraceur/manifest.json décrivant les métadonnées spécifiques au projet ;
  • publier les versions distribuables à l’aide de la fonctionnalité des GitHub Releases, chaque publication contenant une archive ZIP nommée selon l’identifiant (slug) de la ressource.

PS : si vous êtes un·e développeur·euse·s, un exemple d’implémentation est souvent plus éclairant que des explications littérales, jetez un œil à mon dépôt Signet.

Le dépôt GitHub demeure ainsi la source de référence du projet. Retraceur n’en copie ni les métadonnées, ni les archives. Il les découvre directement à la source afin de les proposer à ses utilisateur·rice·s.

Cette approche permet également aux développeur·euse·s de conserver une maîtrise complète de leurs projets. Les versions qu’ils·elles publient, les informations qu’ils·elles renseignent et les ressources qu’ils·elles diffusent restent entièrement sous leur responsabilité.

Responsabilité partagée et relations directes

Cette architecture repose sur une conviction qui m’est chère : un carrefour est plus sain lorsqu’il ne concentre ni les responsabilités, ni les pouvoirs.

Dans Retraceur :

  • les développeur·euse·s restent responsables de leurs extensions ;
  • la forge logicielle (GitHub) reste responsable de l’hébergement des dépôts ;
  • Retraceur facilite uniquement leur découverte, leur installation et leur mise à niveau ;
  • les utilisateur·rice·s demeurent libres de choisir les extensions auxquelles ils·elles souhaitent accorder leur confiance.

Aucun de ces acteur·rice·s ne contrôle l’ensemble. Cette séparation des responsabilités me paraît plus robuste qu’un modèle où une seule plateforme héberge, référence, distribue, gouverne et arbitre. Elle est aussi plus exigeante car elle invite chacun·e à assumer pleinement son rôle au service des autres.

Dans le prolongement de ce principe de séparation des fonctions, Retraceur n’a pas vocation à devenir un intermédiaire. Les demandes d’évolution, les signalements d’anomalies, les questions ou les vulnérabilités doivent continuer à être traités directement sur le dépôt GitHub de chaque projet. Retraceur facilite cette rencontre, mais ne s’y substitue jamais.

Je considère que responsabilité partagée et relations directes sont plus fidèles à l’esprit du logiciel libre qu’un modèle où toutes les interactions transitent par une plateforme centrale.

Capture d'écran du centre de mises à niveau de Retraceur
Le centre des mises à niveau : un lieu unique pour mettre à jour votre site Web.

L’administration de toutes les mises à niveau de Retraceur

Découvrir une extension ou un bloc n’aurait guère d’intérêt sans pouvoir ensuite être maintenu à jour. Retraceur 4.0.0 introduit donc également une API de mise à niveau.

Là encore, aucun dépôt central n’est créé. Les nouvelles versions sont récupérées directement depuis les dépôts GitHub de leurs auteur·rice·s.

Retraceur ne redistribue aucun logiciel. Il facilite simplement la mise à niveau des ressources que leurs auteur·rice·s continuent de publier et de maintenir eux·elles-mêmes.

Cette volonté de simplifier la mise en relation s’accompagne naturellement d’une simplification de son administration. Jusqu’à présent, Retraceur héritait de l’organisation historique de WordPress®. Je profite de cette profonde évolution pour appliquer à l’interface d’administration un principe déjà présent dans l’architecture de Retraceur : un écran, une fonction.

Comme illustré dans la capture d’écran ci-dessus, la responsabilité de chaque écran concerné est clairement identifiée :

  • toutes les mises à niveau sont désormais regroupées dans un unique écran accessible depuis le menu Mises à niveau de Retraceur ;
  • les écrans Extensions et Blocs se concentrent exclusivement sur le cycle de vie de ces ressources : installation, activation, désactivation et désinstallation ;
  • la découverte de nouvelles extensions et de nouveaux blocs est désormais proposée depuis les sous-menus de ces deux écrans.

S’impliquer dans l’évaluation de Retraceur 4.0.0

Maintenant que je vous ai présenté les principales évolutions de cette prochaine version majeure, j’ai besoin de votre aide.

Cette première bêta a précisément pour objectif d’identifier les dernières anomalies, les régressions éventuelles et les ajustements qui permettront de stabiliser Retraceur 4.0.0 avant sa publication définitive.

Il existe plusieurs façons de participer à cette phase d’évaluation, selon vos envies et vos compétences. Toutes ont la même valeur à mes yeux.

Tester Retraceur

Si vous souhaitez participer aux tests, je vous recommande naturellement d’installer cette bêta sur un environnement de développement, jamais sur un site de production.

Ensuite… utilisez-la.

Testez vos usages habituels, mais portez une attention particulière à :

  • la nouvelle organisation des écrans Extensions, Blocs et Mises à niveau de Retraceur ;
  • l’installation, la découverte et la mise à niveau des extensions et des blocs ;
  • l’édition de vos articles ou de vos pages, notamment avec les blocs Icônes et Table des matières ;
  • la personnalisation de votre site, en particulier si vous utilisez le nouveau bloc Fil d’Ariane ;
  • les interactions avec vos extensions, votre thème et, plus généralement, votre environnement de développement.

Développer des extensions ou des blocs

Si vous développez des extensions ou des blocs, je serai particulièrement intéressé par vos retours concernant ce nouveau mode de référencement. J’espère qu’il vous paraîtra suffisamment simple pour vous permettre de rendre vos projets « découvrables » sans dépendre d’une place de marché centralisée.

Dans les prochains jours, je mettrai également à jour le site documentaire de Retraceur afin d’y décrire précisément le fonctionnement de la « Discovery API », le processus d’auto-référencement ainsi que les quelques conventions nécessaires pour rendre une extension ou un bloc « découvrable ».

Améliorer les traductions

Coder n’est pas la seule manière de contribuer ! La traduction française de Retraceur est entièrement maintenue dans ce dépôt Git dédié :

GitHub – retraceur/fr-fr: Traduction française du logiciel Retraceur · GitHub

Traduction française du logiciel Retraceur. Contribute to retraceur/fr-fr development by creating an account on GitHub.

Une formulation plus naturelle, une correction typographique, une amélioration de traduction ou un simple signalement d’incohérence contribuent directement à rendre Retraceur plus agréable à utiliser pour l’ensemble de ses utilisateur·rice·s.

Signaler un problème ou partager une idée

Enfin, si quelque chose vous semble étrange, ouvrez une issue.

Une anomalie, un comportement inattendu, une difficulté de compréhension ou même un simple doute méritent d’être signalés. Les retours d’expérience sont tout aussi précieux que les correctifs, car ils permettent souvent d’améliorer Retraceur bien au-delà du problème rencontré.

Si cette phase de bêta test ne révèle aucune difficulté majeure, la publication de Retraceur 4.0.0 est prévue pour le 31 juillet.

Merci à toutes celles et tous ceux qui testent, signalent, développent, traduisent ou suivent simplement le projet depuis ses débuts. Chacune de ces contributions, quelle que soit sa nature, participe à faire progresser Retraceur.

Comme toujours, vos retours contribueront à retracer la suite du chemin.

Un carrefour n’a pas vocation à posséder les routes qui s’y croisent. Il permet simplement à chacun de choisir la sienne. C’est cette idée qui guide Retraceur 4.0.

Mathieu

Crédits de la photo en une : Pascal Bernardon sur Unsplash

NB : La marque WordPress® est la propriété intellectuelle de la Fondation WordPress. L’utilisation du nom WordPress® dans cet article est uniquement à des fins d’identification et n’implique pas une approbation de la part de la Fondation WordPress.