Что делает `stack пикша --skip ‹pkgname›`?

После невозможности запустить stack haddock в моем проекте из-за того, что один пакет вызывает его зависание (см. Как показать ход выполнения `stack haddock`? ) Я попытался пропустить этот пакет с

stack haddock --skip haskell-src-exts

Но все равно пытается пикшу haskell-src-exts (и зависает). Что должен делать --skip?


person dspyz    schedule 19.10.2018    source источник


Ответы (1)


--skip был введен в стеке 1.6.1, чтобы избежать создания определенного компонента проекта. Компонент соответствовал набору тестов, исполняемому файлу или набору тестов. Поскольку реализована поддержка рюкзаков, это также должно включать библиотеки.

От stack build --help

--skip ARG Пропустить данный компонент, можно указать несколько раз

Документы более подробно описаны.

Например, пакет my-package может содержать библиотеку, исполняемый файл my-executable и два набора тестов (unit-tests и integration-tests). Чтобы построить и запустить тесты, вы можете запустить stack test. Добавление --skip integration-tests приведет к тому, что компонент integration-tests не будет ни собран, ни запущен.

К сожалению, текущая версия стека (ветвь 1.9) не поддерживает пропуск пикши для отдельных зависимостей, хотя в ближайшем будущем что-то подобное должно появиться. Я столкнулся с точно такой же проблемой (с haskell-src-exts). На данный момент я предлагаю пропустить все зависимости пикши (--no-haddock-deps).

Вы можете вызвать хэддок с stack exec -- haddock, если хотите передать в хэддок аргументы, которые не работают с флагом стека --haddock-arguments.

person David Baynard    schedule 31.10.2018
comment
Спасибо. Итак, чтобы было ясно, это пропускает исполняемые/тестовые цели и т. д.? но не пропустит ничего, что зависит от того, что вы пытаетесь построить? - person dspyz; 31.10.2018
comment
Это правильно. Одна тонкость касается зависимостей этих пропущенных целей; Я расследую. - person David Baynard; 01.11.2018