2013-07-15 24 views
8

Quindi, ho rilasciato una piccola libreria su Pypi, più come esercizio (per "vedere come è fatto") di qualsiasi altra cosa.Rilascio di un pacchetto python - dovresti includere doc e test?

Ho caricato la documentazione su readthedocs e ho una suite di test nel mio repository git.

Dato che immagino che chiunque sia interessato a eseguire il test probabilmente clonerà semplicemente il repository e il documento è già disponibile online, ho deciso di non includere le cartelle doc e test nel pacchetto rilasciato, ed ero solo chiedendosi se quella fosse la cosa "giusta" da fare.

So che le risposte a questa domanda saranno piuttosto soggettive, ma ho ritenuto che fosse un buon posto per chiedere un senso di ciò che la comunità considera la migliore pratica.

+0

Non riesco a trovare alcun PEP o sezione della documentazione di Setuptools che in realtà non dica nulla su test e documenti, ma il modello generale che vedo è che i pacchetti bundle test e non impacchettano la documentazione. – Blender

+0

Hmm. In genere mi aspettavo il contrario - mentre posso vedere il valore di includere la documentazione si può essere consultato offline, mi sembra che la maggior parte degli utenti regolari (cioè, persone che installeranno semplicemente la lib e la usino, assumendola semplicemente funziona, piuttosto che le persone interessate a hackerare le tue cose) probabilmente non eseguirò mai i test inclusi, quindi raggrupparli sembra uno (trascurabile, ma comunque) spreco per me. Grazie comunque per la risposta :) – astrognocci

+0

La documentazione di tali pacchetti è comunque generata dal codice sorgente, quindi basta fare 'help (funzione)' e la stessa documentazione viene estratta dalla docstring del metodo o modulo. – Blender

risposta

5

Non è necessario, ma è consigliato includere documentazione e test di unità nella confezione.

Per quanto riguarda la documentazione:

Vecchio stile o per meglio dire rilasci di origine della vecchia scuola del software open source contengono la documentazione, si tratta di uno standard (dare un'occhiata al software GNU, per (de facto?) esempio). La documentazione fa parte del codice e dovrebbe far parte della versione, semplicemente perché una volta scaricato il rilascio sorgente sei indipendente. Sei mai stato nella situazione in cui sei stato su un treno da qualche parte, dove dovevi dare una rapida occhiata alla documentazione del modulo X ma non disponevi di accesso a Internet? E poi hai realizzato con sollievo che i documenti sono già lì, a livello locale.

Un altro punto importante a questo proposito è che la documentazione che si associa al codice si applica sicuramente alla versione del codice. Codice e documenti sono sincronizzati.

Un'altra cosa in particolare per quanto riguarda Python: è possibile scrivere i documenti utilizzando Sphinx e quindi creare un bellissimo output HTML basato sull'origine della documentazione nel processo di installazione del pacchetto. Ho visto vari pacchetti Python fare esattamente questo.

test relativi a:

Immaginate i test sono in bundle nella versione sorgente e sono facili da eseguire da parte dell'utente (si dovrebbe documentare come fare). Quindi, se l'utente osserva un problema con il tuo codice che non è così facile da rintracciare, può semplicemente eseguire i test di unità nel suo ambiente e vedere se almeno quelli stanno passando. In caso contrario, probabilmente hai assunto un presupposto errato specificando il comportamento del tuo codice, che è utile conoscere. Quello che voglio dire è: può essere molto buono per te come sviluppatore se rendi molto semplice all'utente l'esecuzione di test unitari.

+0

Ho già usato la sfinge per la documentazione e l'ho ospitato su readthedocs, motivo per cui ho pensato di poterlo saltare. Ma il tuo punto ha molto senso, suppongo di essere stato troppo abituato ad avere semplicemente google in giro. Sono sicuro d'accordo sul versionarlo anche con il codice, anche se non sto facendo troppo bene per tenerlo aggiornato ... Diamine, grazie per il tuo contributo, suppongo che includerò solo entrambi d'ora in poi;) – astrognocci

+0

@astrognocci Dovresti accettare la risposta ora immagino ... – gaborous

Problemi correlati