Un Wiki Atproto FR
import _img1 from "./3mp2iysjoskhq-lichen.png"; import _img2 from "./3mp2iysjoskhq-lichen-3.png"; import _img3 from "./3mp2iysjoskhq-lichen-4.png"; import _img4 from "./3mp2iysjoskhq-tangled.png"; import _img5 from "./3mp2iysjoskhq-tangled-2.png"; import _img6 from "./3mp2iysjoskhq-tangled-3.png"; import _img7 from "./3mp2iysjoskhq-wiki.png"; import _img8 from "./3mp2iysjoskhq-wiki-2.png"; import _img9 from "./3mp2iysjoskhq-wiki-3.png";
Une nouvelle section wiki est ajoutée au site atproto.fr, comme les autres projets il s'agit plus d'une expérience technique que réellement une initiative d'ampleur pour l'écosystème français. L'auteur de ce site ayant un gros poil dans la main pour écrire du contenu, il ne faut pas compter sur lui pour remplir ce wiki immédiatement. L'IA peut aider, mais si l'effort d'écriture est absent, il est compréhensible que l'effort de lecture le soit aussi.
Pourquoi faire un wiki ? Pour mieux comprendre comment atproto peut aider à produire un travail collaboratif. C'était aussi le sujet de l'expérience de l'annuaire, où chaque collaborateur peut conserver sur son PDS, une liste de suggestions de comptes à ajouter. Voir les détails ici. L'idée du wiki nous fait cette fois ci travailler non pas sur un jeu de données mais sur un ensemble de pages en format markdown. Pour concrétiser cette idée, nous nous sommes appuyés sur l’analyse de deux applications existantes utilisant atproto.
Lichen.Wiki: une plateforme collaborative d'édition de Wiki.
<Carousel images={[ { src: _img1, alt: "Page d'accueil de Lichen.Wiki" }, { src: _img2, alt: "Exemple de page wiki sur lichen.wiki" }, { src: _img3, alt: "Exemple d'édition d'une note de wiki" }, ]} />
Lichen.wiki, portée par le développeur français @juprodh.me, permet de créer et gérer un wiki collaboratif utilisant des notes Markdown. Chaque collaborateur peut créer une note ou modifier celle-ci avec une révision sous la forme d'un git diff qui sera stockée sur le PDS du collaborateur. Le lexicon pointe sur la révision précédente et l'ensemble de la chaîne de modification représente l'état du wiki. L'application https://lichen.wiki écoute le flux des nouveaux enregistrements de révision, pour proposer au visiteur le rendu final.
L'interface est claire et plutôt facile à utiliser. Le format supporte les liens wiki [[]] et l'historique de chaque note est consultable. L'application permet aussi de découvrir d'autres wikis, ce qui donne au système une dimension sociale.
Le choix du chaînage de révision nécessite d'avoir une certaine confiance dans l'accessibilité du contenu des collaborateurs. Un collaborateur peut supprimer à tout moment ses révisions de son répertoire personnel hébergé sur son PDS, cassant ainsi la chaîne. Comme expliqué par son créateur, l'application lichen.wiki garde en mémoire l'état du wiki et sert donc de sauvegarde. De même un système de reconstruction des révisions depuis cette sauvegarde est en cours de développement. Ce qui est un peu contre-intuitif avec le modèle de flux de données du protocole AT, où la donnée se stocke d'abord sur les répertoires des PDS avant de rejoindre les caches et bases de données des applications et non l'inverse, mais dans notre contexte il s'agirait d'un cas exceptionnel.
Pour un wiki qui ne souhaite pas dépendre de la base de données de lichen.wiki et du bon vouloir de ses collaborateurs de conserver les révisions, la solution la plus évidente est d'auto-héberger l'application lichen.wiki dont le code source est disponible à tous sous licence GNU. Mais les solutions évidentes ne sont pas très divertissantes et le format git diff des révisions fut une inspiration pour une nouvelle expérience d'interopérabilité.
Utiliser Tangled.org
Si le wiki utilise un lexicon enrobant un git diff et ne doit posséder qu'une seule source de vérité, un ensemble de fichiers, en amont de la génération du site internet (Atproto.fr utilise le générateur Astro), alors pourquoi ne pas réutiliser les lexicons de Tangled ?
Tangled.org est une plateforme d'hébergement de code utilisant le protocole AT pour gérer les interactions sociales autour des répertoires de code. La suggestion de changement de code (nommée Pull Request), la création de tickets décrivant les bugs ou les fonctionnalités futures, sont deux exemples de ces interactions.
<Carousel images={[ { src: _img4, alt: "Page de répertoire Tangled" }, { src: _img5, alt: "Page d'une pull request sur la plateforme tangled" }, { src: _img6, alt: "Page de profil sur tangled" }, ]} />
Le lexicon pointe à la fois sur l'enregistrement décrivant l'emplacement du répertoire de code et sur le git diff enregistré sous la forme d'un Blob. Le lien vers le knot à l'origine de la pull request est facultatif, permettant à n'importe qui de créer une Pull request sur son PDS sans la nécessité d'héberger une copie entière du répertoire sur un serveur dédié. Cette façon d'envoyer un git diff via le protocole AT rappelle d'une certaine façon l'envoi d'un git patch via e-mail, pratique toujours en cours pour contribuer au noyau linux par exemple.
En exploitant ce lexicon, le site atproto.fr peut proposer au visiteur de suggérer une modification de ses propres fichiers en enregistrant une Pull request sur le PDS du visiteur.
<Carousel images={[ { src: _img7, alt: "Page d'édition du wiki de Atproto.fr" }, { src: _img8, alt: "Page des modifications en cours" }, { src: _img9, alt: "Page de permissions" }, ]} />
La Pull request apparaît ensuite sur la plateforme tangled.org dans la liste des Pull requests d'un répertoire. Par l'interface de relecture de la plateforme, elle peut être acceptée et son code inclus ou bien refusée. Sur le long terme, ce système de modification du wiki peut profiter des outils de modération développés par l'équipe de tangled, comme le nouveau système permettant à un utilisateur d'être garant des bonnes pratiques d'un autre utilisateur.
À l'inverse de lichen.wiki, ce système ne permet pas de découvrir d'autres wikis par l'usage d'un lexicon dédié comme . Les répertoires tangled peuvent être marqués par une étiquette wiki, mais c'est à la charge de leurs propriétaires de le faire.
Quel avenir pour ce wiki ?
Il est difficile de prédire l’avenir de ce wiki, qui sert avant tout d’exemple d’interopérabilité. Son objectif est d’illustrer le potentiel du protocole dans la construction d’applications sociales et collaboratives. L’idée n’est pas d’exercer une pression ou de susciter de la culpabilité chez les contributeurs pour que chaque information soit exhaustive et à jour.
Discussion in the ATmosphere