¿Cómo se crea un archivo .tar.gz adecuado para su uso con `Cabal upload`?
-
24-09-2019 - |
Pregunta
La forma estándar para compartir una biblioteca de Haskell con otros programadores es crear un paquete de Cabal y subirlo a http: // hackage .haskell.org . He escrito una biblioteca Deseo compartir y
He creado con éxito un paquete de Cabal en línea utilizando las directrices para la creación de archivos de Cabal. He construido el paquete y lo instalé bien localmente fábrica. Ahora quiero subirlo a Hackage. Pero cabal upload
quiere un archivo .tar.gz. Hay resmas de la documentación de Cabal, y no puedo encontrar lo que se supone que debe ir en esta .tar.gz o cómo se supone que debo crearlo.
¿Quién sabe, o sabe donde puedo encontrar a cabo, cómo crear un .tar.gz que funcione correctamente con cabal upload
?
Solución
el wiki :
Dado que el código se cabalised, podemos crear un fichero con Cabal a instalar directamente (también se puede utilizar runhaskell Setup.hs sdist, pero se necesita 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 se requiere el archivo de licencia de existir. Empaqueta 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
en el fichero de .cabal tener todo incluido.
Otros consejos
O si usted está usando darcs,
darcs dist
Tenga en cuenta que cabal sdist
sólo se transmiten los archivos listados en el archivo .cabal
, por lo que puede que tenga que añadir READMEs otro tipo conforme extra-source-files:
Se puede comprobar usted tiene un archivo tar válido con
cabal check
que ejecuta las mismas pruebas que Hackage se ejecutará.