Я пробовал вызвать haddock
через стек, используя следующие команды:
stack haddock --no-haddock-deps --haddock-internal webservice:lib
stack haddock --haddock-arguments "--odir=/tmp/haddock" --no-haddock-deps --haddock-internal webservice:lib
stack haddock --haddock-arguments "--odir=/tmp/haddock --no-warnings" --no-haddock-deps --haddock-internal webservice:lib
stack haddock --haddock-arguments "--odir=/tmp/haddock --no-warnings --no-print-missing-docs" --no-haddock-deps --haddock-internal webservice:lib
И каждый раз ближе к концу добычи пикши замечаю следующее:
Documentation created:
.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/doc/html/webservice/index.html,
Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3: can't find source for QCTest in
.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/doc/html/webservice/webservice.txt
.stack-work/dist/x86_64-linux/Cabal-2.2.0.1/build/webservice-test/webservice-test-tmp,
Preprocessing test suite 'webservice-test' for webservice-0.1.0.0..
test, src
-- While building custom Setup.hs for package webservice-0.1.0.0 using:
/home/vl/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-2.2.0.1 haddock --html --hoogle --html-location=../$pkg-$version/ --haddock-option=--hyperlinked-source --internal --haddock-option=--odir=/tmp/haddock --haddock-option=--no-warnings --haddock-option=--no-print-missing-docs --haddock-option=--hoogle --haddock-option=--quickjump
Process exited with code: ExitFailure 1
Документация webservice:lib
, похоже, была создана, но haddock
все же выходит с 1
, таким образом полностью нарушая мои сценарии CI.
Изменить - вывод отладки:
Команда:
stack haddock --haddock-arguments "--odir=/tmp/haddock -v3 --no-haddock-hyperlink-source" --no-haddock-deps --haddock-internal webservice:lib
Выход:
Warning: Unable to find a known
candidate for the Cabal entry
Keys, but did find:
* Keys.hs.sample If you are
using a custom preprocessor for
this module with its own file
extension, consider adding the
file(s) to your .cabal under
extra-source-files.
webservice-0.1.0.0: build (lib)
Preprocessing library for webservice-0.1.0.0..
Building library for webservice-0.1.0.0..
ignoring (possibly broken) abi-depends field for packages
webservice-0.1.0.0: haddock
Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3:
'/home/vl/.stack/programs/x86_64-linux/ghc-8.4.3/bin/haddock' exited with an
error:
-- While building custom Setup.hs for package webservice-0.1.0.0 using:
/home/vl/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-2.2.0.1 haddock --html --hoogle --html-location=../$pkg-$version/ --haddock-option=--hyperlinked-source --internal --haddock-option=--odir=/tmp/haddock --haddock-option=-v3 --haddock-option=--no-haddock-hyperlink-source
Process exited with code: ExitFailure 1
@Alec спасибо за предложение помощи. К сожалению, webservice
- это частный / проприетарный код, и я не смогу поделиться им публично. Любая другая отладочная информация, которой я могу поделиться?
Я не слишком знаком с stack
, но должен быть какой-то способ передать -v3
базовому вызову Cabal. Вы, вероятно, получите больше результатов (так что будет легче приблизительно определить, когда произошел segfault). Кроме того, просто безумное предположение об ошибке, с которой вы можете столкнуться: попробуйте передать --no-haddock-hyperlink-source
и посмотрите, удастся ли что-то ...
@Alec Я добавил к вопросу некоторые отладочные данные. Это хоть как-то помогает? Кстати, исправлена ли ошибка (которую вы подозреваете)? Как обновить пикшу?
Не совсем, я думал о --cabal-verbose
(я бы хотел, чтобы стек рекламировал эту опцию немного больше). Ошибка, о которой я думаю, исправлена. Обновить версию Haddock не так просто, как кажется. Если вы действительно этого хотите, самый простой способ - это собрать / установить Haddock из исходников. Вам нужно будет проверить ветку, соответствующую используемой вами версии GHC. Даже после этого я не уверен, как указать стеку использовать этот двоичный файл haddock
(с cabal
вы бы использовали --with-haddock
) ...
Похоже, Пикша нарушает правила. В последней версии Haddock есть несколько ошибок, которые могут вызвать это.
webservice
- это опубликованный пакет, чтобы я мог его воспроизвести?