2010-04-06 14 views
6

Il modo standard per condividere una libreria Haskell con altri programmatori è creare un pacchetto Cabal e caricarlo su http://hackage.haskell.org. Ho scritto una libreria che desidero condividere e Ho creato con successo un pacchetto Cabal utilizzando le linee guida online per la creazione di file cabal. Ho creato il pacchetto e l'ho installato localmente. — funziona correttamente. Ora voglio caricarlo su Hackage. Ma cabal upload vuole un file .tar.gz. Ci sono risme della documentazione di Cabal, e non riesco a trovare quello che dovrebbe entrare in questo .tar.gz o come dovrei crearlo.Come posso creare un file .tar.gz adatto per l'uso con `cabal upload`?

Chi sa, o sa dove posso scoprire, come creare un .tar.gz che funzionerà correttamente con cabal upload?

+0

Un voto per chiudere? Questo è * così * in tema ... – Thomas

+1

@Thomas: Sei irritato con un poster che ha 3x il tuo rappresentante? Sul serio?! :-P Si inchina già ai tuoi anziani! :-P –

+0

Ero morto sul serio. Questa è sicuramente una domanda relativa alla programmazione, e sono rimasto sorpreso nel vedere che qualcuno aveva votato per chiuderlo come fuori tema. Inoltre, mi inchino. – Thomas

risposta

12

Da the wiki:

Dal momento che il codice è cabalised, possiamo creare un tarball con cabala-install direttamente (si può anche usare runhaskell Setup.hs sdist, ma è necessario il catrame sul sistema 1):

$ cabal sdist 
Building source dist for haq-0.0... 
Source tarball created: dist/haq-0.0.tar.gz 

Questo ha il vantaggio che Cabala farà un po 'più di controllo, e garantire che l'archivio ha la struttura che HackageDB aspetta. Si noti che richiede il file LICENSE per esistere. Riunisce i file necessari per costruire il progetto; per includere altri file (come ad esempio Test.hs nell'esempio di cui sopra, e la nostra README), abbiamo bisogno di aggiungere:

extra-source-files: Tests.hs README 

al file .cabal di avere tutto incluso.

+0

Perfetto! Grazie gentilmente Soprattutto per il tag extra-source-files! –

4

Oppure, se si sta utilizzando darcs,

darcs dist 

Nota che cabal sdist sarà solo raccogliere i file elencati nel file .cabal, quindi potrebbe essere necessario aggiungere file README ecc sotto extra-source-files:

È possibile controllare hai un tarball valido con

cabal check 

che esegue gli stessi test eseguiti da Hackage.

+0

Dimmi, come mai non hai fatto nessuna domanda? – SamB

+3

Lui è Dons. Lui sa tutto. – Thomas

+0

darcs. rrrrrrr. Ma grazie per il 'controllo della cabala'! –

Problemi correlati