<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/.github/workflows/doxygen.yml, branch ci/doxygen</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Build the Doxygen reference in CI and fail on warnings</title>
<updated>2026-11-15T14:18:46+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-11-15T14:18:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b3c841b539755e12b706bf6d78f333b20747062c'/>
<id>b3c841b539755e12b706bf6d78f333b20747062c</id>
<content type='text'>
The Doxyfile had never run in CI, and its warnings went to a log file.

- It reads the headers only (*.hpp): Doxygen cannot match the explicit
  specializations of StringMaker and the PImpl constructors defined in the
  sources to their declarations, which gave ten of its twelve warnings.
- src/Progmasoft/Catch3/Internal/Preprocessor.hpp is left out: Doxygen reads
  priority_tag&lt;N&gt; deriving from priority_tag&lt;N - 1&gt; as a recursive class.
- WARN_AS_ERROR = FAIL_ON_WARNINGS, warnings on standard error.
- DOT_GRAPH_MAX_NODES = 200, so the include graph of All.hpp (103 nodes)
  is drawn; DOT_MULTI_TARGETS, which Doxygen 1.18 no longer knows, is gone.
- .github/workflows/doxygen.yml installs Doxygen and Graphviz, builds the
  reference and keeps the HTML.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Doxyfile had never run in CI, and its warnings went to a log file.

- It reads the headers only (*.hpp): Doxygen cannot match the explicit
  specializations of StringMaker and the PImpl constructors defined in the
  sources to their declarations, which gave ten of its twelve warnings.
- src/Progmasoft/Catch3/Internal/Preprocessor.hpp is left out: Doxygen reads
  priority_tag&lt;N&gt; deriving from priority_tag&lt;N - 1&gt; as a recursive class.
- WARN_AS_ERROR = FAIL_ON_WARNINGS, warnings on standard error.
- DOT_GRAPH_MAX_NODES = 200, so the include graph of All.hpp (103 nodes)
  is drawn; DOT_MULTI_TARGETS, which Doxygen 1.18 no longer knows, is gone.
- .github/workflows/doxygen.yml installs Doxygen and Graphviz, builds the
  reference and keeps the HTML.

Claude-Session: https://claude.ai/code/session_01Ji7xZMYjc4zankoc7hGBE1
</pre>
</div>
</content>
</entry>
</feed>
