Elenco di controllo per l'avvio di un progetto open source [chiuso]


51

Avviare un progetto open-source non è solo lanciare il codice sorgente su un repository pubblico e quindi essere soddisfatto. Dovresti avere documentazione tecnica (oltre all'utente), informazioni su come contribuire, ecc.

Se crei una lista di controllo su cose importanti da fare, cosa vorresti includere in essa?


1
+1 Buona domanda. Posso raccomandare: gawande.com/the-checklist-manifesto
JeffO

2
Consiglio il libro di Karl Fogel (uno degli autori originali di sovversione) Producendo software open source - come eseguire un progetto di software libero di successo È un libro di O'Reilly.
Michael,

La produzione di software open source di Karl Fogel dovrebbe aiutarti in questo. Il libro è disponibile interamente online.
Coyote21,

Risposte:


34

La cosa più importante è:

  • usa tu stesso il progetto e portalo in uno stato utile in cui ti piace usarlo. assicurati che il progetto funzioni ed sia utile.

Le cose che metterei nelle prime priorità sono:

  • avere un semplice "che cos'è?" sito Web con collegamenti ad alcuni forum di discussione (tramite e-mail o chat) e al repository del codice sorgente
  • assicurati che il codice si compili e di solito funzioni, non commettere patch di work-in-progress o half-ass sul ramo principale che rompono le cose, perché il lavoro di altre persone verrebbe interrotto
  • inserire un file di licenza nel repository di codice con una licenza ben nota e contrassegnare il proprietario del copyright (probabilmente tu o la tua azienda). non omettere la licenza, inventare una licenza o utilizzare una licenza oscura.
  • avere istruzioni su come contribuire, dire in un file HACKING o includerlo nel tuo README. Ciò dovrebbe includere dove inviare patch, come formattare patch, regole di rientro del codice, qualsiasi altra importante convenzione del progetto
  • avere istruzioni su come segnalare un bug
  • essere utile sulla mailing list o qualunque sia il tuo forum

Dopo quelle priorità direi:

  • documentazione (questo ti consente di lavorare sulla mailing list ... fare una FAQ dai post della tua lista è un inizio semplice)
  • prova a fare le cose in modo "normale" (non inventare il tuo sistema di costruzione o usarne uno strano, non usare il rientro a 1 spazio, non essere fastidiosamente eccentrico in generale perché aggiunge la curva di apprendimento)
  • promuovi il tuo progetto. marketing marketing marketing. Hai bisogno di alcuni blog e siti di notizie e cose del genere per coprirti, e poi quando le persone si mostrano interessate, devi parlare con loro ed essere sicuro che facciano funzionare e guardare le loro patch. Magari menziona il tuo progetto nei forum per progetti correlati.
  • rivedere e accettare sempre le patch il più rapidamente possibile umanamente. Immediatamente è perfetto. Più di un paio di giorni e stai perdendo molte persone.
  • rispondi sempre alle e-mail sul progetto il più rapidamente possibile umanamente.
  • creare un'atmosfera accogliente / positiva / divertente. non fare il cretino. dite per favore e grazie e distribuite lode. cacciare tutti i cretini che si presentano e iniziano ad avvelenare la comunità. cerca di incontrare persone di persona quando puoi e crea legami.

E i potenziali problemi legali? Come assicurarsi che l'implementazione non contenga inavvertitamente un algoritmo brevettato?
Den

Purtroppo non è possibile determinarlo. Dato un pezzo di codice non c'è modo di sapere quali termini di ricerca occorrono per individuare i brevetti pertinenti, motivo per cui i brevetti software sono un tale problema. A volte sai che esiste un brevetto applicabile, ma non ho mai sentito parlare di un modo per essere sicuri che non ci sia un brevetto applicabile. Difficile dimostrare un aspetto negativo. I brevetti sono un argomento abbastanza grande che probabilmente dovrebbero essere le loro stesse domande ...
Havoc P

17

Per i principianti, abbassare la barriera all'ingresso , questo significa:

  • semplifica l'installazione,
  • semplificare la modifica,
  • semplifica la ricerca del tuo progetto,
  • rendi semplice tutto ciò che vorresti fare.

Come?

  • Dai una risposta ad ogni domanda a cui puoi pensare nella tua documentazione,
  • Crea un sistema di compilazione facile da usare,
  • Pulisci il tuo codice, a nessuno piace lavorare sul codice spaghetti,
  • Crea qualcosa di cui le persone hanno bisogno.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.