Como faço para criar um arquivo .tar.gz adequado para uso com `Cabal Upload`?
-
24-09-2019 - |
Pergunta
A maneira padrão de compartilhar uma biblioteca Haskell com outros programadores é criar um pacote de cabala e fazer upload para http://hackage.haskell.org. Escrevi uma biblioteca que desejo compartilhar e criei com sucesso um pacote de CABAL usando as diretrizes on -line para criar arquivos de CABAL. Eu construí o pacote e o instalei localmente - trabalha bem. Agora eu quero enviá -lo para hackage. Mas cabal upload
quer um arquivo .tar.gz. Há resmas da documentação da cabala, e não consigo encontrar o que deveria entrar neste .tar.gz ou como devo criá -lo.
Quem sabe, ou sabe onde eu posso descobrir, como criar um .tar.gz que funcionará corretamente com cabal upload
?
Solução
A partir de o wiki:
Como o código é cabalizado, podemos criar um tarball com a instalação da cabala diretamente (você também pode usar o rannhaskell setup.hs sdist, mas você precisa de alcatrão no seu sistema 1):
$ cabal sdist
Building source dist for haq-0.0...
Source tarball created: dist/haq-0.0.tar.gz
Isso tem a vantagem de Cabal fará um pouco mais de verificação e garantir que o tarball tenha a estrutura que o HackagedB espera. Observe que ele exige que o arquivo de licença exista. Ele empacota os arquivos necessários para criar o projeto; Para incluir outros arquivos (como test.hs no exemplo acima e nosso readme), precisamos adicionar:
extra-source-files: Tests.hs README
ao arquivo .cabal para ter tudo incluído.
Outras dicas
Ou se você estiver usando darcs,
darcs dist
Observe que cabal sdist
só pegará arquivos listados no .cabal
Arquivo, então você pode precisar adicionar readmes etc. extra-source-files:
Você pode verificar você um tarball válido com
cabal check
que executa os mesmos testes que o hackage será executado.