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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top