В разделе зависимостей файла cabal:
Build-Depends: base >= 3 && < 5, transformers >= 0.2.0
Должен ли я делать что-то вроде
Build-Depends: base >= 3 && < 5, transformers >= 0.2.0 && < 0.3.0
(установление верхних ограничений на версии пакетов, от которых я зависит)
или нет?
Я приведу реальный пример: мой пакет "Список" в Hackage (список преобразователя и класса монад)
- Если я не установлю ограничение - мой пакет может сломаться из-за изменения "трансформаторов"
- Если я поставлю ограничение - пользователь, который использует «трансформеры», но использует более новую версию, не сможет использовать
lift
и liftIO
с ListT
, потому что это только экземпляр этих классов трансформаторов-0,2.х
Я полагаю, что приложения всегда должны устанавливать верхние пределы, чтобы они никогда не нарушались, поэтому этот вопрос касается только библиотек:
Должен ли я использовать верхний предел версии для зависимостей или нет?