Creare un plugin per Discourse che pubblichi contenuti da file specifici all’interno di un repository direttamente in un argomento
Il caso d’uso previsto per un plugin di questo tipo è gestire i contenuti prima su GitHub (con controllo versione, issue, pull request, ecc.), mantenendo però sempre sincronizzato l’head con un argomento specifico
I casi d’uso includono manuali, una knowledge base o repository di idee
Nello specifico, il nostro caso d’uso interno è l’utilizzo di Discourse come hub per la conoscenza, ma desideriamo un controllo più fine sull’aggiornamento e la modifica dei contenuti; da qui l’idea di integrare il flusso Git
Alcune note aggiuntive
Deve funzionare solo con file .md
Saremmo molto felici se il progetto venisse open sourced (copriremo noi i costi iniziali di sviluppo)
Entro quando deve essere completato?
La tempistica non è immediata, ma entro i prossimi mesi
Qual è il tuo budget, in USD, che puoi offrire per questo compito?
Non è ancora chiaro l’ambito del progetto, quindi sarà necessario definirlo prima.
Cosa manca a Discourse in questo ambito? Discourse può essere migliorato per soddisfare le tue esigenze, così da non dover più usare GitHub?
Hai menzionato le pull request, quindi forse la necessità è quella di poter richiedere modifiche che vengano poi esaminate e approvate da qualcun altro prima che la modifica venga definitiva? Immagino che si possa fare in un “modo Discourse” rispondendo al post per richiedere una revisione o assegnandolo a qualcuno dopo aver apportato la modifica. Ho avuto qualche successo impostando un timer sui topic per cancellare automaticamente le risposte, così il topic non viene appesantito da molte piccole risposte.
Un’altra idea sarebbe utilizzare il plugin policy. Un gruppo potrebbe essere notificato quando un topic viene modificato e invitato a confermare di aver letto e accettato la modifica.
Detto questo, penso che sia un’idea davvero ottima e mi piacerebbe vederla implementata. La vedo utile anche per Meta! Abbiamo molti topic qui sui repository GitHub e sarebbe bello vedere gli aggiornamenti ai file readme.md di quei repository nell’OP, così non dovranno essere mantenuti in due posti diversi.
Per Discourse for Teams potrebbe essere una funzione utile anche per i team che usano molto GitHub, in modo da poter continuare a usare Teams come “unica fonte di verità” per i riferimenti, senza che tutti debbano accedere continuamente a GitHub. Immagino che potrebbe far parte del plugin code review o esserne un complemento.
La cosa più importante qui è il branching. La motivazione di fondo è che esiste un meccanismo che permette di creare un ramo, migliorarlo, revisionarlo e poi unirarlo. Allo stesso modo, consente a un revisore di seguire un processo simile, apportando modifiche minori al ramo stesso, offrendo un controllo più preciso sulle variazioni.
Anche se mi piacerebbe molto che fosse così, le parti mancanti sono un po’ complesse:
Branching
Unione delle modifiche con un solo clic
È un ottimo trucco per chiunque non dia tanto peso all’aspetto del branching come faccio io in questo caso.
Sembra che potrebbe essere estremamente utile in molti modi. Ogni volta che troverò la persona giusta da assumere per questo, mi piacerebbe collaborare un po’. Forse questo strumento potrebbe alla fine diventare un plugin “ufficiale”! (si può solo sperare).
Se il caso d’uso principale riguarda i file .md e un linguaggio comune, penso comunque che Discourse abbia un grande vantaggio: è conversazionale e permette alle persone di dialogare realmente tra loro in linguaggio semplice. Come hai detto, generalmente si desidera che la conversazione sulla conoscenza avvenga su Discourse. Quindi, ritengo che valga la pena esaminare come mantenere la maggior parte di tutto proprio lì; altrimenti, si rischia di distogliere l’attenzione e il focus da ciò che si vorrebbe come piattaforma principale.
Potrei immaginare una configurazione del genere:
Readme.md come argomento wiki su Discourse, sincronizzato con GitHub
Discussioni su questo Readme come post di follow-up su Discourse, eliminati regolarmente (simile all’attuale configurazione su meta)
File e cartelle aggiuntivi in un repository gestiti su GitHub con il branching. La struttura attuale del repository potrebbe essere sincronizzata con Discourse, in modo che appaia insieme al post wiki come una tabella dei contenuti.