2010-05-15 2 views
7

Я почти готов загрузить свой первый пакет в Hackage!От каких версий пакетов зависит мой пакет Haskell?

У меня есть это в моем hstest.cabal:

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

Я понимаю, что это плохая форма, чтобы просто список пакетов, который мой пакет зависит; вместо этого я должен указать, какие версии этих пакетов необходимы.

Версии я смонтированные

  • база = 4.1.0.0
  • MTL = 1.1.0.2
  • каталог = 1.0.0.3
  • GHC = 6.10.3
  • ghc- пути = 0,1,0,5
  • random = 1.0.0.1
  • QuickCheck = 1.2.0.0

Есть ли простой способ узнать, какие самые ранние приемлемые версии каждого из этих пакетов действительно нужны моему пакету? (т. е. без установки множества устаревших версий и тестирования их по одному?)

Какие будущие версии этих пакетов можно считать, что мой пакет может зависеть?

ответ

5

Есть простой способ выяснить, что самые ранние приемлемые версии каждого из этих пакетов мой пакет на самом деле нужно

Нет, нет инструмента для этого.

Какие будущие версии этих пакетов я могу предположить, что мой пакет может зависеть?

Самый безопасный способ - следовать за the package versioning policy, в котором говорится, что они полагаются только на расширяющие API версии. Это версии формы: A.B.*. Как политики государства:

Чтобы свести к минимуму поломки, когда новые версии пакета будут освобождены, вы можете использовать зависимостей, которые не чувствительны к незначительным изменениям версии (например, Foo> = 1.2.1 & & < 1,3).

Так что вы могли бы сделать что-то вроде:

QuickCheck >= 1.2 && < 1.3 

Теперь, тестирование может выявить более низкие или более высокие оценки на какие функции вы на самом деле использовать.

Смежные вопросы