Quelles sont les versions de paquets peuvent mon paquet Haskell dépendent?
Question
Je suis presque prêt à télécharger mon premier paquet à Hackage!
J'ai dans mon hstest.cabal
:
Executable hstest
Main-Is: hstest.hs
Build-Depends: base, mtl, directory, ghc, ghc-paths, random, QuickCheck
Je comprends que c'est une mauvaise forme simplement la liste qui emballe mon colis dépend; au lieu que je dois dire quelles versions de ces paquets sont nécessaires.
Les versions que j'ai installé sont
- base = 4.1.0.0
- mtl = 1.1.0.2
- Répertoire = 1.0.0.3
- GHC = 6.10.3
- GHC-chemins = 0.1.0.5
- aléatoire = 1.0.0.1
- QuickCheck = 1.2.0.0
Y at-il un moyen facile de savoir ce que les premières versions acceptables de chacun de ces paquets mon paquet réellement besoin? (À savoir sans installer beaucoup de versions obsolètes et de les tester un par un?)
Quelles versions futures de ces paquets peuvent je suppose que mon paquet peut dépendre?
La solution
Y at-il un moyen facile de savoir ce que les premières versions acceptables de chacun de ces paquets mon colis a réellement besoin
Non, il n'y a pas d'outil pour cela.
Quelles versions futures de ces paquets peuvent je suppose que mon paquet peut dépendre?
La meilleure façon est de suivre le paquet versioning politique, qui dit compter que sur l'API -extending versions des paquets. C'est des versions de la forme: A.B.*
. Comme les États de la politique:
Pour minimiser la rupture lorsque de nouvelles versions de paquets sont libérés, vous pouvez utiliser des dépendances qui sont insensibles aux variations mineures de version (par exemple foo> = 1.2.1 && <1.3).
Alors vous feriez quelque chose comme:
QuickCheck >= 1.2 && < 1.3
, le test peut révéler des bornes inférieures et supérieures sur les fonctionnalités que vous utilisez.