Исключен ли пакет из Stackage LTS из-за пропущенной зависимости? - PullRequest
0 голосов
/ 14 октября 2018

Я немного озадачен тем, как влияет зависимость от пакета, включая его в Stackage LTS;в частности, если

должен ли пакет A быть исключен из LTS-XY, особенно если

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Я скопирую / вставлю мой ответ на github


нужно ли исключать пакет А?

Нет,это не должно быть исключено.Вот почему:

, даже если единственная причина, по которой B исключен, связана с зависимостью набора тестов

В этом случае мы можем добавить B в план сборки и пометитьон находится в разделе skipped-tests, чтобы избежать вытягивания его зависимостей набора тестов.Это справедливо как для LTS, так и для ночных снимков.

(Однако предпочтительным вариантом действий будет устранение проблемы с зависимостью B, чтобы можно было запустить набор тестов.)


Чтобы уточнить, в ответ на ответ @ bergey:

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

Thisверно только для пакетов явно включены.Некоторые пакеты являются транзитивными зависимостями, которые включаются неявно и не обязательно соответствуют таким строгим стандартам.(Однако в будущем мы можем исключить концепцию неявного включения и вместо этого явно включить все пакеты.)

Также могут быть сделаны исключения, позволяющие включить пакет, даже если его набор тестов или его тесты имеют несовместимые ограничения зависимостей с snapsnot.

Конечно, предпочтительным способом является отсутствие необходимости делать такие исключения, и мы призываемвсе сопровождающие поддерживают все свои цели сборки в актуальном состоянии.

Наконец, позвольте мне заметить, что этот вопрос, вероятно, более подходит для стекового списка рассылки , который по общему признанию нехорошо разрекламированы или использованы.

0 голосов
/ 15 октября 2018

Да, для каждого пакета в данном снимке стека все его переходные зависимости также находятся в снимке.Кроме того, пакеты включаются только в том случае, если сопровождающий пакета согласен обновлять его в зависимости от его зависимостей.Подробнее об этом можно узнать в README на github . выдержка :

  • Все пакеты являются сборочными и тестируемыми из Hackage.Мы рекомендуем сценарий Stack Travis, который гарантирует, что пакет не является случайно неполным.
  • Все пакеты совместимы с новейшими версиями всех зависимостей (Вы можете найти ограничительные верхние границы, посетив http://packdeps.haskellers.com/feed?needle=PACKAGENAME).
  • Все пакеты в снимке совместимы с версиями библиотек, которые поставляются с GHC, используемым в снимке (дополнительная информация о мягких нижних границах).
...