Come si crea un file .tar.gz adatto per l'uso con `cabala upload`?
-
24-09-2019 - |
Domanda
Il metodo standard per condividere una libreria Haskell con altri programmatori è quello di creare un pacchetto di 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 on-line per la creazione di file cabala. Ho costruito il pacchetto e installato localmente funziona bene. Ora voglio caricarlo Hackage. Ma cabal upload
vuole un file .tar.gz. Ci sono risme di documentazione Cabal, e non riesco a trovare quello che dovrebbe andare in questo .tar.gz o come dovrei crearla.
Chi lo sa, o sa dove posso trovare, come creare un .tar.gz che funziona correttamente con cabal upload
?
Soluzione
il wiki :
Dato che il codice è cabalised, possiamo creare un tarball con cabala-installare direttamente (si può anche usare runhaskell Setup.hs sdist, ma è necessario un tar 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 il tarball ha la struttura che HackageDB aspetta. Si noti che richiede il file di licenza esistere. Si confeziona il backup dei 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
per il file .cabal di avere tutto incluso.
Altri suggerimenti
Se si sta utilizzando darcs,
darcs dist
Si noti 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 verificare che hai un tarball valido
cabal check
che corre gli stessi test che Hackage verrà eseguito.