Я почти готов загрузить свой первый пакет на Hackage!
У меня есть это в моем hstest.cabal
:
Executable hstest
Main-Is: hstest.hs
Build-Depends: base, mtl, directory, ghc, ghc-paths, random, QuickCheck
Я понимаю, что это - невоспитанность для простого списка, который упаковывает мой пакет, зависит от; вместо этого я должен заявить, какие версии этих пакетов необходимы.
Версии, которые я установил,
Существует ли простой способ узнать то, в чем самых ранних приемлемых версиях каждого из этих пакетов на самом деле нужен мой пакет? (т.е. не устанавливая много устаревших версий и тестируя их один за другим?)
Какие будущие версии этих пакетов я могу предположить, что мой пакет может зависеть от?
Есть ли простой способ узнать, какие самые ранние приемлемые версии каждого из этих пакетов действительно нужны моему пакету
Нет, для этого нет инструмента.
От каких будущих версий этих пакетов, как я могу предположить, может зависеть мой пакет?
Самый безопасный способ - следовать политике управления версиями пакетов , которая требует полагаться только на версии пакетов, расширяющие API . То есть варианты формы: A.B. *
. Согласно политике:
Чтобы свести к минимуму поломку при выпуске новых версий пакетов, вы можете использовать зависимости, которые нечувствительны к изменениям второстепенных версий (например, foo> = 1.2.1 && <1.3).
Итак, вы должны сделать что-то вроде:
QuickCheck >= 1.2 && < 1.3
Теперь тестирование может выявить нижнюю или верхнюю границу того, какие функции вы действительно используете.