2010-04-06 9 views
6

La forma estándar de compartir una biblioteca Haskell con otros programadores es crear un paquete Cabal y cargarlo en http://hackage.haskell.org. He escrito una biblioteca que deseo compartir, y He creado con éxito un paquete Cabal usando las pautas en línea para crear archivos cabal. Construí el paquete y lo instalé localmente. — funciona bien. Ahora quiero subirlo a Hackage. Pero cabal upload quiere un archivo .tar.gz. Hay resmas de documentación Cabal, y no puedo encontrar lo que se supone que debe entrar en este .tar.gz o cómo se supone que debo crearlo.¿Cómo creo un archivo .tar.gz adecuado para usar con `cabal upload?

¿Quién sabe, o sabe dónde puedo encontrar, cómo crear un .tar.gz que funcione correctamente con cabal upload?

+0

A vote to close? Esto es * así * sobre el tema ... – Thomas

+1

@Thomas: ¿Estás siendo sarcástico con un póster que tiene 3 veces tu representante? ¡¿Seriamente?! :-P ¡Inclina a tus mayores ya! :-P –

+0

Estaba hablando en serio. Esta es definitivamente una pregunta relacionada con la programación, y me sorprendió ver que alguien había votado para cerrarla como fuera de tema. Además, me inclino. – Thomas

Respuesta

12

De the wiki:

Dado que el código se cabalised, podemos crear un fichero con Cabal-instalar directamente (también se puede utilizar runhaskell Setup.hs sdist, pero se necesita de alquitrán en su sistema 1):

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

Esto tiene la ventaja de que Cabal hará un poco más de cheques, y asegurarse de que el paquete de archivos tiene la estructura que HackageDB espera. Tenga en cuenta que no requiere que el archivo LICENCIA exista. Paquetes de los archivos necesarios para construir el proyecto; para incluir otros archivos (como Test.hs en el ejemplo anterior, y nuestra README), tenemos que añadir:

extra-source-files: Tests.hs README 

al archivo .cabal tener todo incluido.

+0

¡Perfecto! Gracias amablemente Especialmente para la etiqueta extra-source-files! –

4

O si está usando darcs,

darcs dist 

Tenga en cuenta que cabal sdist sólo se transmiten los archivos listados en el archivo .cabal, así que puede que tenga que añadir READMEs etc bajo extra-source-files:

Puede comprobar Tiene un tarball válido con

cabal check 

que ejecuta las mismas pruebas que Hackage ejecutará.

+0

Diga, ¿cómo es que no ha hecho ninguna pregunta? – SamB

+3

Él es dons. El sabe todo. – Thomas

+0

darcs. rrrrrrr. ¡Pero gracias por 'cabal check'! –

Cuestiones relacionadas