2010-05-15 12 views
7

¡Estoy casi listo para cargar mi primer paquete en Hackage!¿De qué versiones de paquetes puede depender mi paquete Haskell?

tengo esto en mi hstest.cabal:

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

entiendo que es de mala educación a la lista de los paquetes que mi paquete, simplemente depende; en su lugar, debo indicar qué versiones de estos paquetes se necesitan.

Las versiones que he instalado son

  • base = 4.1.0.0
  • MTL = 1.1.0.2
  • directorio = 1.0.0.3
  • GHC 6.10.3 =
  • ghc- paths = 0.1.0.5
  • random = 1.0.0.1
  • QuickCheck = 1.2.0.0

¿Hay alguna manera fácil de averiguar cuáles son las primeras versiones aceptables de cada uno de estos paquetes que realmente necesita mi paquete? (es decir, sin instalar muchas versiones obsoletas y probarlas una por una?)

¿En qué versiones futuras de estos paquetes puedo suponer que puede depender mi paquete?

Respuesta

5

¿Hay una manera fácil de descubrir lo que las primeras versiones aceptables de cada uno de estos paquetes de mi paquete realmente necesita

No, no hay ninguna herramienta para eso.

¿En qué versiones futuras de estos paquetes puedo suponer que mi paquete puede depender?

La manera más segura es seguir the package versioning policy, que dice que solo se basa en versiones de paquetes que se extienden API. Es decir versiones del formulario: A.B.*. A medida que la póliza:

para minimizar la rotura cuando las nuevas versiones de los paquetes se liberan, puede utilizar las dependencias que son insensibles a los cambios de versión de menor importancia (por ejemplo foo> = 1.2.1 & & < 1.3).

Por lo que haría algo como:

QuickCheck >= 1.2 && < 1.3 

Ahora, la prueba puede revelar los límites inferior o superior en las características que realmente se utilicen.

Cuestiones relacionadas