Skip to content

docs: add doxygen pages, deployed to GitHub Pages - #44

Merged
wdconinc merged 3 commits into
mainfrom
claude/doxygen-algorithms-page-da73ac
Oct 29, 2026
Merged

wdconinc merged 3 commits into
mainfrom
claude/doxygen-algorithms-page-da73ac

Conversation

@wdconinc

Copy link
Copy Markdown
Contributor

Briefly, what does this PR introduce?

A Doxygen API reference for algorithms, set up like the one for EDM4eic:

  • docs/Doxyfile.in, configured by CMake into build/Doxyfile. README.md is the main page. Since the headers have no doc comments yet, it documents all entities, includes source browsing, and draws class and include diagrams.
  • The doxygen-awesome sidebar theme (v2.5.0, MIT, vendored in docs/), with a custom header that links to this repo.
  • A GENERATE_DOCS CMake option (default OFF) that adds a docs target:
    cmake -B build -S . -DGENERATE_DOCS=ON
    cmake --build build --target docs
  • A build-docs CI job that runs in eic-shell, which already ships doxygen and graphviz, and uploads the HTML as a docs artifact on every run. A deploy-docs job publishes it to GitHub Pages from main.
  • README: a Documentation section, and <code>AlgorithmSvc</code> changed to backticks so the heading renders in doxygen.

Tested locally in eic_xl:nightly. The only doxygen warnings are about the fmt::formatter/fmt::is_range specializations in property.h, whose enclosing fmt namespace isn't in the input.

Before merging

Repository settings → Pages → Source must be set to GitHub Actions, or deploy-docs will fail on main.

What kind of change does this PR introduce?

  • Bug fix
  • New feature (documentation)
  • Breaking change

🤖 Generated with Claude Code

Generate an API reference with doxygen, with README.md as the main page
and the doxygen-awesome theme, similar to EDM4eic. The Doxyfile is
configured by CMake; the docs target is enabled with -DGENERATE_DOCS=ON.
CI builds the docs in eic-shell on every run and deploys them to GitHub
Pages from main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 29, 2026 02:31
Comment thread .github/workflows/linux-eic-shell.yml Fixed
Comment thread .github/workflows/linux-eic-shell.yml Fixed
Addresses the CodeQL actions/unpinned-tag alerts for
cvmfs-contrib/github-action-cvmfs and eic/run-cvmfs-osg-eic-shell in
all jobs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

An unresolved moderate finding remains, where an explicit GENERATE_DOCS=ON with missing Doxygen only emits a STATUS message and later causes a cryptic build failure on the docs target.

1 open issue
What changed in this PR

This PR adds a Doxygen-based API reference for the algorithms framework and wires it up for automated publishing to GitHub Pages, mirroring the setup used by EDM4eic. Since the headers currently lack doc comments, Doxygen is configured to document all entities with source browsing and class/include diagrams, themed with the vendored doxygen-awesome sidebar theme. It fits into the existing CMake build (via a new GENERATE_DOCS option and docs target) and the existing eic-shell CI workflow (via new build-docs/deploy-docs jobs).

Changes:

  • Added Doxygen config (docs/Doxyfile.in, configured by CMake), the vendored doxygen-awesome theme + custom header/CSS, and a GENERATE_DOCS CMake option that defines a docs target.
  • Added build-docs (artifact on every run) and deploy-docs (Pages publish from main) CI jobs.
  • Added a README "Documentation" section and switched the AlgorithmSvc heading to backticks for correct Doxygen rendering.
File Description
README.md Adds a Documentation section with local build steps; switches <code> to backticks so the heading renders in Doxygen.
docs/​Doxyfile.in CMake-templated Doxygen config; output build/docs/html, README as main page, diagrams enabled.
docs/​doxygen-custom/​header.html Custom HTML header with GitHub corner link and OpenGraph metadata.
docs/​doxygen-custom/​custom.css Small custom styles for the GitHub corner and project number spacing.
docs/​doxygen-awesome.css Vendored third-party theme (MIT) — not reviewed for style.
docs/​doxygen-awesome-sidebar-only.css Vendored third-party sidebar theme (MIT); --side-nav-fixed-width: 335px matches TREEVIEW_WIDTH.
CMakeLists.txt Adds GENERATE_DOCS option, configures the Doxyfile, and defines the docs custom target.
.github/​workflows/​linux-eic-shell.yml Adds build-docs and deploy-docs jobs; reuses existing env vars and action versions.

I found the PR to be in good shape overall. The output path (build/docs/html/) is consistent across the Doxyfile, CMake, CI artifact, and README; the workflow-level env variables and action versions are consistent with existing usage in the same file; and the vendored theme files are properly license-headered. I left one optional best-practices note on the CMake fallback message when Doxygen is missing.

Review effort: Balanced

Comment thread CMakeLists.txt Outdated
GENERATE_DOCS is opt-in, so fail at configure time when doxygen or dot
is missing instead of leaving the docs target undefined.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wdconinc
wdconinc merged commit 1226182 into main Oct 29, 2026
10 checks passed
@wdconinc
wdconinc deleted the claude/doxygen-algorithms-page-da73ac branch October 29, 2026 04:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants