От каких версий пакетов мой пакет Haskell может зависеть?

Я почти готов загрузить свой первый пакет на Hackage!

У меня есть это в моем 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
  • случайный = 1.0.0.1
  • QuickCheck = 1.2.0.0

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

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

7
задан dave4420 15 May 2010 в 22:19
поделиться

1 ответ

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

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

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

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

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

Итак, вы должны сделать что-то вроде:

 QuickCheck >= 1.2 && < 1.3

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

5
ответ дан 7 December 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: