You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current rake script cannot fail the build on Asciidoctor warnings/errors. We cannot use the version of Asciidoctor we're currently using, because that does not have the necessary flag (--failure-level=LEVEL. This flag is available from Asciidoctor 1.5.7.0, but using >1.5.7.0 version without further changes to the book will break cross-reference links.
Speed up build error feedback time by using the fast html build first. Only build the epub, mobi and pdf files if the html build passes.
Which version of the book is affected?
Problem is with the Travis CI, source code on master.
Describe the bug:
The Travis CI build is passing, while the output of build log contains warnings from Asciidoctor build
The Travis CI build should fail when Asciidoctor logs a warning when running bundle exec rake book:build.
Steps to reproduce:
Open pull request with a Asciidoctor style error, like missing a newline before a unordered list (Example: Create section: branch renaming #1476 pull request).
Travis CI runs bundle exec rake book:build.
Asciidoctor logs a WARNING.
Travis CI passes.
GitHub lets you merge bad stuff.
Expected behavior:
Open pull request with a Asciidoctor style error, like missing a newline before a unordered list (Example: Create section: branch renaming #1476 pull request).
Travis CI runs bundle exec rake book:build.
Asciidoctor logs a WARNING.
Warning is caught by the Travis CI in some way.
Travis CI fails.
GitHub stop your from merging bad stuff because the test is failing.
Additional context:
I noticed that pull #1490 is fixing something that should not have been allowed past the Travis CI build.
--failure-level=LEVEL
The minimum logging level that triggers a non-zero exit code (failure). If this option is not set (default: FATAL), the program exits with exit code zero even if warnings or errors have been logged.
If you want the processor to fail when the document contains a missing attribute, set the attribute-missing attribute to warn and pass the --failure-level=WARN option to the processor.
ERROR Errors do not stop conversion, but the output document will almost certainly be wrong.
FAILURE Failures are fatal; no output document will be produced.
WARNING Warnings do not stop conversion, but they indicate possible problems, and the output may not be what you were expecting.
Attempt at fixing this:
WARNINGS:
It might be possible to fix this, by letting Asciidoctor fail when the .html build of the book contains errors. ⚠️ Do not change the params variable in the rake file, as that applies to all 4 of the builds.
🐛 The asciidoctor-pdf program may not use the logger: asciidoctor/asciidoctor#2003 (comment) and may crash when using --failure-level=WARN.
I couldn't find a --failure-level=ERROR in the official documentation, this was mentioned here though: asciidoctor/asciidoctor#2003 (comment). So it might exist, or it might not exist.
Alternatively, you can also close this issue as wont-fix. That's also OK. I wanted to flag the issue, so that the maintainer can decide on what to do. 👍
Executive summary/TL:DR:
The current rake script cannot fail the build on Asciidoctor warnings/errors. We cannot use the version of Asciidoctor we're currently using, because that does not have the necessary flag (
--failure-level=LEVEL. This flag is available from Asciidoctor 1.5.7.0, but using >1.5.7.0 version without further changes to the book will break cross-reference links.Proposed way to resolve this:
@jnavilla.Which version of the book is affected?
Problem is with the Travis CI, source code on
master.Describe the bug:
The Travis CI build is passing, while the output of build log contains warnings from
Asciidoctor buildThe Travis CI build should fail when Asciidoctor logs a warning when running
bundle exec rake book:build.Steps to reproduce:
bundle exec rake book:build.Expected behavior:
bundle exec rake book:build.Additional context:
I noticed that pull #1490 is fixing something that should not have been allowed past the Travis CI build.
Example of a build which has a Asciidoctor warning but a passing Travis CI build:
https://travis-ci.org/github/progit/progit2/builds/718311991
Line 319 has the first warning (it issues the same warning 3 times):
My research into a possible fix:
I found out that Asciidoctor gained the ability to error out on a given failure level (asciidoctor/asciidoctor#2003):
From Asciidoctor manual about processing
From the Asciidoctor user manual, handle missing or undefined attributes
From the Asciidoctor user manual Appendix D: Application messages
Attempt at fixing this:
WARNINGS:
It might be possible to fix this, by letting Asciidoctor fail when the .html build of the book contains errors.
⚠️ Do not change the params variable in the rake file, as that applies to all 4 of the builds.
🐛 The asciidoctor-pdf program may not use the logger: asciidoctor/asciidoctor#2003 (comment) and may crash when using
--failure-level=WARN.I would first try changing this line into:
and see where that gets us.
I couldn't find a
--failure-level=ERRORin the official documentation, this was mentioned here though: asciidoctor/asciidoctor#2003 (comment). So it might exist, or it might not exist.Alternatively, you can also close this issue as wont-fix. That's also OK. I wanted to flag the issue, so that the maintainer can decide on what to do. 👍