Prise en charge d'ActivityPub : Phase 1 RFC

Je vois.
C’est assez frustrant.

Les amis ont changé vers Discourse à cause d’ActivityPub qui arrive.
Maintenant, ils critiquent tous Discourse à nouveau…

De plus, le forum officiel d’ActivityPub est passé sur Discourse, et maintenant nous devons débattre de ce qu’il faut faire…

Les développeurs derrière Lemmy accomplissent un excellent travail en adaptant ActivityPub pour le rendre utilisable par les logiciels communautaires :

https://github.com/LemmyNet/lemmy-docs/blob/main/src/en/federation/overview.md

Cependant, ils ont dû l’étendre, de sorte qu’aucun autre logiciel n’implémente actuellement leurs activités.

Notre implémentation de la fédération est déjà complète en termes de fonctionnalités, mais nous n’avons jusqu’ici du tout pas cherché à nous conformer à la spécification ActivityPub. Par conséquent, Lemmy n’est probablement pas compatible avec les implémentations qui s’attendent à envoyer et recevoir des activités valides.

Je suppose que si Lemmy peut rendre son système compatible avec Mastodon, nous pourrons alors implémenter la même API utilisée par Lemmy, en établissant les correspondances suivantes :

Discourse ActivityPub de Lemmy
Catégorie Communauté
Suivi Follow
Sujet Publication
Publication Commentaire
J’aime Like
19 « J'aime »

Dans le jargon d’ActivityPub, il s’agirait donc d’une Page, ce qui a beaucoup de sens si l’on considère la fonctionnalité de publication de Page : la première partie serait annoncée comme une Page, puis toute réponse serait une Note.

Je suis indécis concernant la conversion de Catégorie vers Communauté. Comme le support d’AP et l’authentification unique (SSO) rendent cela plus fluide, j’ai tendance à avoir plus d’une instance Discourse pour une seule communauté.

5 « J'aime »

Juste pour dire que les instances Discourse suivantes ont commencé à partager à la fois les utilisateurs et les sujets, et qu’ActivityPub dans Discourse serait très utile pour nous tous :

https://love.public.cat/t/what-is-at-stake-with-interoperability/96

7 « J'aime »

Intéressant, il est utile de noter que Mobilizon utilise également ActivityPub pour la planification d’événements, développé par Framasoft… les mêmes personnes qui créent Peertube.

1 « J'aime »

C’est dommage que Discourse ne tende pas à implémenter ActivityPub. Je pense qu’il y a beaucoup de potentiel inexploité ici, étant donné qu’il existe de nombreuses communautés qui utilisent déjà Discourse et qui en bénéficieraient dès le premier jour… Même si elles ne le savent pas encore ! :sweat_smile:

3 « J'aime »

Bonjour @rishabh, @riking, @codinghorror,

(Oui, il y a un TL;DR ci-dessous)

Il y a quelque temps, j’ai compris de @sl007 et @hellekin que vous ne poursuivriez pas cette Phase 1 à court terme, même avec le financement NGI0. En tant que promoteur de l’interopérabilité basée sur ActivityPub, je trouve cela également regrettable, bien sûr. Mais du point de vue de Discourse, le logiciel de forum leader et le plus populaire, il existe de nombreuses forces et autres priorités à prendre en compte, et cette décision commerciale, à la lumière de cela, a probablement beaucoup de sens :

Décision : Cette RFC, telle que proposée, n’était tout simplement pas assez attrayante pour être priorisée et incluse dans la feuille de route.

La RFC adoptait une approche MVP avec « Commençons par créer un flux de contenu agrégé similaire à Facebook à travers les forums », tel que proposé par @Falco. Ce n’est qu’une des nombreuses fonctionnalités qui pourraient résulter d’un support natif d’ActivityPub sous une forme ou une autre. On peut dire qu’une telle chronologie est une sorte de détour par rapport à ce que l’on trouve normalement dans un forum, et à mes yeux, cela ne semble pas être une fonctionnalité centrale réelle. Plutôt une extension ajoutée, donc un « nice-to-have ».

Une approche différente

Maintenant que la nécessité de parvenir rapidement à un MVP du support ActivityPub est écartée, peut-être pourrions-nous suivre le processus inverse :

Idéation : Brainstormer des cas d’usage d’interopérabilité et évaluer leur viabilité en termes d’avantages commerciaux et d’USP.

Autrement dit : quelles fonctionnalités seraient vraiment attrayantes à avoir dans Discourse ? Ou même : où Discourse pourrait-il rater le coche s’il n’est pas au courant de ce qui est possible ?

Dans son dernier post ci-dessus, @Falco mentionne Lemmy, qui est construit dès le départ sur un vocabulaire de données liées dédié correspondant à leur domaine d’activité. Ils ont leur MVP prêt et en production, et envisagent maintenant d’étendre leur ensemble de fonctionnalités sur la base de leur propre domaine. Cela peut inclure la fédération avec l’autre domaine du microblogging où Mastodon, Pleroma et d’autres connaissent un grand succès.

L’approche de l’idéation pourrait suivre cet exercice :

Exercice : Imaginons à quoi Discourse aurait ressemblé s’il avait été construit dès le départ sur son propre domaine d’activité basé sur ActivityPub (défini comme un vocabulaire de données liées).

Lâchons-nous lors de cette session de brainstorming et laissons notre créativité s’exprimer librement.

La liste des cas d’usage qui en résulte pourrait être suffisamment intéressante sur le plan commercial pour faire partie de la feuille de route, mais sinon, elle pourrait toujours inspirer la communauté à créer des plugins et des composants, et poser les bases pour un développement ultérieur.

ActivityPub versus Fediverse

Je remarque qu’il existe une large méconnaissance de ce que signifie avoir un support ActivityPub dans une application. Beaucoup de gens pensent que la raison de le faire est de devenir « partie intégrante du Fediverse ». Et là, la pensée va immédiatement à la fédération avec les instances Mastodon, c’est-à-dire à la mise en œuvre de l’interopérabilité avec (c’est-à-dire pour rejoindre) le domaine fédéré du microblogging.

Oui, c’est une opportunité très attrayante une fois que l’on dispose du support ActivityPub, et de nombreuses autres applications comme PixelFed (alternative à Instagram), PeerTube (alternative à YouTube) et aussi Lemmy (alternative à Reddit) cherchent à le faire. Ils rendent le Fediverse un endroit plus attrayant pour y participer, et de nombreuses innovations prennent forme qui rendent l’avenir du Fediverse vraiment passionnant.

MAIS…

On peut dire que les organisations ciblant de grandes bases d’utilisateurs comme Discourse pourraient se poser des questions telles que : « Pourquoi voudrais-je m’intégrer au Fediverse avec seulement environ 4 millions d’utilisateurs ? » ou « Pourquoi intégrer le microblogging dans mon logiciel qui opère dans un domaine entièrement différent ? ». Et ils auraient raison de le dire, et de renoncer à l’implémentation d’ActivityPub sur cette base.

CEPENDANT…

Les implémentations d’ActivityPub concernent bien plus que le fait de devenir partie du (partie microblogging du) Fediverse. Il est tout à fait logique d’implémenter un vocabulaire de données liées conçu spécifiquement pour votre propre domaine d’activité et de faire fédérer vos propres instances de produit entre elles. Ou toutes les instances de votre produit et celles de vos concurrents dans votre industrie qui adoptent également le même vocabulaire, d’ailleurs.

Un exemple ici est le projet ForgeFed qui vise à définir des normes d’interopérabilité pour les forges de code (github, gitlab, gitea, sourcehut, etc.) à implémenter. Le faire a un sens énorme, en particulier pour les plus petits projets de forge de code, afin de fournir une alternative attrayante à Github (qui est devenu trop dominant en tant que plateforme centralisée et de plus en plus fermée). Si cela est largement adopté, les développeurs n’auront plus à jongler avec une multitude de comptes de forge sur des serveurs dispersés à travers Internet pour participer à des projets de code intéressants, soumettre des tickets, commenter et soumettre des PR.

(Remarquez que - comme indiqué ci-dessus - le même problème que les gens ont avec l’existence de forges de code autonomes partout, est ce que moi et d’autres ressentons également avec notre participation à de nombreuses communautés Discourse.)

Opportunité : Discourse est unique pour prendre la tête dans la définition des normes d’interopérabilité pour les logiciels de forum, et façonner la norme de manière à ce qu’elle s’aligne parfaitement avec l’ensemble actuel des fonctionnalités de Discourse.

Il y a quelques concurrents montants dans votre industrie, qui sont innovants, adoptent de nouvelles approches et itèrent rapidement pour ajouter de nouvelles fonctionnalités (vous chez Discourse savez mieux qui ils sont :slight_smile: ). À mon avis, Discourse, en termes de complétude des fonctionnalités, est toujours bien au-dessus de ce que leurs produits ont à offrir. Et vous avez une communauté comme aucune autre pour vous aider à faire évoluer le produit.

Mais l’opportunité d’interopérabilité qui existe maintenant pourrait aussi devenir une menace. Soit les concurrents pourraient saisir l’opportunité en premier, soit - peut-être poussés par la loi européenne sur les marchés numériques - les grandes plateformes technologiques créeront quelque chose avec un chevauchement dans le domaine des logiciels de forum. Dans les deux cas, il serait plus difficile pour Discourse de s’aligner sur cette norme et d’avoir la voix la plus autoritaire dans la conception de sa spécification.

TL;DR

Ceci est devenu un post plus long que je ne l’avais prévu. Désolé pour cela :blush:

En résumé, je soutiens que, compte tenu de la position actuelle sur le support ActivityPub, il pourrait être prudent de passer d’une focalisation à court terme de type MVP, à une évaluation plus large de ce que l’interopérabilité ActivityPub pourrait apporter à Discourse en termes d’USP et de positionnement à long terme. C’est-à-dire élaborer le cas d’affaire de l’adoption d’ActivityPub, en commençant par une phase d’idéation.

(Comment cela peut être le mieux mis en place - si vous êtes intéressé - je laisse cela en suspens, mais cela pourrait commencer simplement par un nouveau sujet AP ayant un wiki de résumé des cas d’usage collectés au-dessus et des personnes discutant d’idées de cas d’usage dans le thread)

11 « J'aime »

Pour votre information : Dansup, le développeur principal de Pixelfed, vient d’annoncer son intention d’ajouter le support des forums fédérés :

https://mastodon.social/@dansup/105425592966902917

5 « J'aime »

Arnold, qu’est-ce qui t’empêche de commander cela sous forme de plugin si tu as accès à des financements ?

Parfois, développer et valider une fonctionnalité dans un plugin favorise une adoption plus large et au cœur du projet.

Un bon exemple est l’extension Topic List Previews. Les aperçus avec vignettes étaient à l’origine purement ajoutés de manière artisanale. Aujourd’hui, Discourse prend en charge nativement les vignettes grâce à sa popularité démontrée.

@angus et moi avons développé cela jusqu’à un point où le cœur du projet a estimé que l’idée était assez mature et populaire pour être implémentée directement.

Une telle approche réduit les risques et peut aider à surmonter des obstacles pratiques avant d’intégrer la feuille de route du cœur du projet.

Juste une pensée…

9 « J'aime »

Il y avait déjà une proposition de financement sur le marché, qu’un membre de l’équipe Discourse a reprise, mais la proposition acceptée a ensuite été abandonnée. L’offre reste ouverte, mais elle nécessite qu’une entité européenne la reprenne. Cela pourrait être un membre européen de The Pavilion. Je serais ravi d’aider à rédiger la proposition, car réutiliser celle existante accélérerait certainement son aboutissement à un financement réussi.

5 « J'aime »

Nous pouvons tout à fait en discuter hors ligne pour voir comment cela pourrait être géré.

4 « J'aime »

Votre lien vers Dansup me rappelle les plugins ActivityPub pour WordPress disponibles ces dernières années. Similaire à cette personne, je les utilise sur mon propre WordPress depuis leur lancement : le plugin ActivityPub et le maintenant plutôt inactif Pterotype.

Votre site devient un acteur du fédérivers, comme @latest@meta.discourse.org. Vous pouvez ajouter une description à votre compte, et l’icône de votre site s’affiche comme photo de profil de votre utilisateur fédéré. Les publications apparaissent dans le fédérivers pour les autres utilisateurs, et leurs commentaires s’affichent sur notre site, en montrant leur icône et leur nom d’utilisateur fédérés.

Exemple de réponse :

@doug@mastodoon.social:
J'ai vraiment apprécié suivre ce fil sur la fédération ! Continuez ce bon travail

C’est vraiment agréable car cela s’affiche sur WordPress comme un simple commentaire, tout en étant aussi un véritable commentaire fédéré via ActivityPub.

edit : Découvrez Prismo, une variante fédérée de Lemmy/Reddit construite en Ruby / PostgreSQL, qui pourrait mieux correspondre à une conception pour Discourse.

3 « J'aime »

Bonjour @merefield,

Développer des plugins est certainement une option très viable. Dans mon exercice, j’ai proposé de réfléchir « comme si » Discourse avait été conçu dès le départ avec la fédération à l’esprit, afin d’explorer avec un esprit ouvert toutes les possibilités, sans se soucier pour le moment de ce qui est possible, réalisable ou irréalisable par rapport au produit et à l’écosystème actuels. Chacun des éléments que nous trouvons pourrait parfaitement se prêter à une implémentation sous forme de plugins.

Je travaille moi-même principalement sur différents aspects de ce Fediverse. Ma réponse émane à la fois d’un fan et promoteur enthousiaste de Discourse et d’un défenseur du Fediverse, que je considère, avec toutes ses innovations, comme _l’_opportunité de devenir le paysage des médias sociaux de nouvelle génération, piloté par les gens et plus humain.

Cependant, dans mon message ci-dessus, je voulais souligner qu’il existe un cas d’utilisation d’interopérabilité complètement indépendant de l’intégration du Fediverse, directement entre différentes communautés Discourse. PS : J’ai fait un suivi sur le forum SocialHub pour sensibiliser à cet aspect de la prise en charge d’ActivityPub : Positioning ActivityPub: De-Emphasize "Being Part of the Fediverse" as primary USP - Fediverse Futures - SocialHub

Merci, très apprécié. C’est une excellente idée, et j’espère que ce fil inspirera tout développeur de plugins à découvrir les possibilités.

:sparkling_heart:

Oui, j’adore. Ces projets peuvent être une belle source d’inspiration pour ce qui pourrait exister dans le type de Discourse dont parle @merefield, lorsqu’on se concentre sur la prise en charge du Fediverse.

4 « J'aime »

Nous avons conclu par le passé que la fédération Discourse-Discourse était entièrement sans intérêt ; nous disposons déjà d’une interopérabilité de base via OpenGraph, qui semble suffisante. Si quelqu’un a un cas d’usage convaincant, je suis preneur, mais je n’en ai encore vu aucun présenté. Vous n’avez parlé que des possibilités techniques et non des fonctionnalités produit que cette technologie permet réellement.

4 « J'aime »

De bons points ! Si l’objectif est de synchroniser un post sur un forum avec un post sur un autre forum Discourse… vous pouvez déjà utiliser matterbabble avec matterbridge.

1 « J'aime »

Non, vous avez raison. C’est ce que je proposions de faire (dans mon TL;DR avec « élaborer le cas d’affaire de l’adoption d’ActivityPub, en commençant par une phase d’idéation »).

Puisque cette proposition de brainstorming va bien au-delà du sujet de ce fil, et qu’elle ne se réfère pas non plus à une seule fonctionnalité ou RFC, mais plutôt à une Vision, j’ai créé un sujet séparé dans la catégorie #community :

5 « J'aime »

Veuillez consulter une proposition pour structurer un cas d’usage métier qui pourrait servir de point de départ pour convaincre @riking de l’intérêt d’implémenter le support d’ActivityPub dans Discourse :slight_smile: @merefield, souhaitez-vous rejoindre la conversation là-bas ? – Ce serait bien plus simple si AP était pris en charge, bien sûr !

4 « J'aime »

Pardonnez-moi si c’est incorrect, mais pourquoi ne pas convertir les flux RSS en ActivityPub avec feed2toot ? Je vois qu’il prend en charge Mastodon et Pleroma. Discourse génère par défaut des flux RSS pour les catégories et les groupes. Le support des flux RSS est également intégré dans Hubzilla et Friendica.

Ne serait-ce pas seulement « unidirectionnel » ? « Sortant » de Discourse vers les instances ActivityPub, mais pas l’inverse.

@hellekin Pardon, mais je ne vois pas vraiment le « cas d’usage » ici. Je veux dire, pourquoi le faire, quels sont les avantages, etc.

En relisant le fil de discussion et après avoir exploré Community has no boundary: Discourse-as-a-Fabric - ideation & brainstorm et commencé à réfléchir sur Shaping Up a Business Use-Case for ActivityPub in Discourse - Fediverse Futures - SocialHub, je réalise que personne n’a demandé de détailler les raisons ici, ce qui est, je suppose, un oubli de ma part et de celle des autres partisans d’ActivityPub. Désolé pour cela.

Pourriez-vous fournir plus d’informations sur ce qui empêche Discourse d’approfondir les fonctionnalités de fédération, et quelles seraient les domaines intéressants où la communauté ActivityPub pourrait vous fournir plus d’informations et de soutien ?

3 « J'aime »