Pergunta

Estou quase pronto para enviar meu primeiro pacote para o Hackage!

Eu tenho isso no meu hstest.cabal:

Executable hstest
        Main-Is:        hstest.hs
        Build-Depends:  base, mtl, directory, ghc, ghc-paths, random, QuickCheck

Entendo que não é uma boa ideia simplesmente listar de quais pacotes meu pacote depende;em vez disso, devo indicar quais versões desses pacotes são necessárias.

As versões que instalei são

  • base = 4.1.0.0
  • mtl = 1.1.0.2
  • diretório = 1.0.0.3
  • gc = 6.10.3
  • caminhos-ghc = 0.1.0.5
  • aleatório = 1.0.0.1
  • Verificação rápida = 1.2.0.0

Existe uma maneira fácil de descobrir quais são as primeiras versões aceitáveis ​​de cada um desses pacotes que meu pacote realmente precisa?(ou seja,sem instalar muitas versões obsoletas e testá-las uma por uma?)

De quais versões futuras desses pacotes posso presumir que meu pacote pode depender?

Foi útil?

Solução

Existe uma maneira fácil de descobrir quais são as primeiras versões aceitáveis ​​de cada um desses pacotes que meu pacote realmente precisa

Não, não há ferramenta para isso.

De quais versões futuras desses pacotes posso presumir que meu pacote pode depender?

A maneira mais segura é seguir a política de versionamento de pacotes, que diz confiar apenas em versões de pacotes que estendem a API.Essas são versões do formulário: A.B.*.Como afirma a política:

Para minimizar quebras quando novas versões de pacotes são lançadas, você pode usar dependências que são insensíveis a pequenas alterações de versão (por exemplo,foo >= 1.2.1 && < 1.3).

Então você faria algo como:

 QuickCheck >= 1.2 && < 1.3

Agora, os testes podem revelar limites inferiores ou superiores sobre quais recursos você realmente usa.

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