2015-09-22 12 views
20

Ho annotato il mio codice in stile Haddock e desidero generare documentazione in grado di navigare. Poiché sto anche usando lo stack, voglio integrare la generazione della documentazione nel flusso di lavoro. Tuttavia, non sono ancora stato in grado di generare nulla di utile.Generazione di documentazione per il mio codice con Haddock e stack

posso correre

stack haddock 

e sarà generare la documentazione nello stile che voglio (si trovano in profondità all'interno ~/.stack/), ma sembra solo per generare la documentazione per i pacchetti che dipendono da, piuttosto che per la il mio codice personale

Quando eseguo

stack haddock --help 

ho l'impressione che posso usare l'argomento aggiuntivo --haddock per generare la documentazione per il mio progetto e --no-haddock-deps di lasciare fuori la documentazione per le mie dipendenze. Tuttavia, quando corro

stack haddock --haddock --no-haddock-deps 

niente sembra accadere. Se I stack clean per prima cosa ricompilerà tutto il mio codice ma non viene generato alcun output che sembra riguardare in alcun modo la documentazione.

Come soluzione intermedia Inoltre ho provato a fare funzionare Haddock di per sé, vale a dire

haddock my-source.hs 

ma poi ho un errore che non riesce a trovare un modulo il file dipende da (che viene installato localmente da stack). Questo mi dà l'impressione che la generazione della documentazione dovrà passare attraverso lo stack in qualche modo. Ho cercato, ma non ho trovato alcuna spiegazione relativa alla configurazione dei miei file .cabal e stack.yaml per la documentazione.

TL; DR

Come posso usare stack e Haddock per generare la documentazione per il codice nel mio pacchetto?

+2

il tuo progetto un file eseguibile o una libreria? Penso che lo stack generi solo documenti per le librerie al momento (per chi stampa il percorso dei documenti dopo il comando, o lo si può vedere da 'stack path'), vedi qui: https: // github.com/commercialhaskell/stack/issues/729 (compresa la soluzione suggerita per la creazione di documenti per i file eseguibili con "cabal eglefino"). –

+0

@ RüdigerHanke: Bene, grazie. Con questo collegamento, ho risolto il problema, utilizzando effettivamente "eglefino di cabala" e la soluzione alternativa suggerita. Se vuoi scriverlo come risposta, lo accetterò, altrimenti potrò scrivere la soluzione da solo. (Il mio progetto è un eseguibile.) –

risposta

12

In base allo this ticket sul tracker degli errori dello stack, Stack può attualmente solo creare documentazione per le librerie, ma non per gli eseguibili.

Cabal può essere configurato per lavorare con i database dello stack con questo comando:

cabal configure --package-db=clear --package-db=global --package-db=$(stack path --snapshot-pkg-db) --package-db=$(stack path --local-pkg-db) 

dopo il quale è possibile eseguire cabal haddock --executables per generare la documentazione.

A proposito, stack haddock è solo una scorciatoia per stack build --haddock, quindi non è necessario scrivere stack haddock --haddock.

+0

Non ho ancora capito bene il SO edit system:/Forse sto impazzendo ma ero abbastanza sicuro quando ho suggerito la modifica che il comando 'cabal configure' non era ancora nel tuo post . Ora la cronologia delle modifiche dice che lo era, rendendo la modifica priva di significato. Comunque grazie per la risposta e sentitevi liberi di modificare la modifica ... –

+2

@SamvanHerwaarden Credo per alcuni minuti dopo che una risposta è stata postata, l'autore può modificarla senza che compaia nella cronologia. Forse è quello che è successo qui. –

+0

L'esecuzione del comando 'cabal configure ...' restituisce un errore di 'cabal: ghc-pkg dump failed' per me. –

Problemi correlati