Skip to content

Add workflow for generating C++ docs with Doxygen on GitHub Pages#3597

Open
jessica-mitchell wants to merge 59 commits intonest:mainfrom
jessica-mitchell:githubpages
Open

Add workflow for generating C++ docs with Doxygen on GitHub Pages#3597
jessica-mitchell wants to merge 59 commits intonest:mainfrom
jessica-mitchell:githubpages

Conversation

@jessica-mitchell
Copy link
Copy Markdown
Contributor

@jessica-mitchell jessica-mitchell commented Oct 8, 2025

This PR creates a CI workflow that will deploy the doxygen C++ docs to GitHub Pages or create the output HTML as artifacts. It also updates the documentation so now we have a dedicated developer_space folder in doc/ that has the C++ docs moved over from htmldoc and additional markdown files. Note that other docs about PyNEST, contributing to nest, git workflows are still in htmldoc. Some C++ files have already been updated so they work with doxygen - the BeginDoc section is now removed and proper doxygen comments are used to parse it correctly.

The workflow triggers in the following cases:

  1. On push (merge to master): if there is a change to
    • any cpp file
    • the doxgyen config file (fulldoc.conf.in)
    • the doxygen css (doxgyen-aweseome.css)
    • the workflow file
    • the files in developer_space
  2. On pull_request : if there the developer wants to they can trigger a workflow dispatch on their fork
    and the doxygen docs will be uploaded as an artifact. The caveat here is that GitHub only allows this to be triggered on default branches. But there is also the alternative of local build.

The developer documentation workflow description has been updated to explain this new feature. A screenshot might be added in a future PR to help find the artifact.

The workflow is set up so we always use the Doxygen config file and the css that is in master; this allows us to modify the type of content and the layout at any time and the changes will be deployed for all versions of the documentation.

Only main is deployed.

@terhorstd mentioned we might need to consider adding the pynestkernel.pyx which can be done at a future PR; only cpp/h files are processed at the moment.

@gtrensch gtrensch moved this from In progress to Review Required in Build system and CI Mar 20, 2026
@gtrensch gtrensch moved this from Review Required to In progress in Build system and CI Mar 20, 2026
Co-authored-by: Dennis Terhorst <terhorstd@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority T: Enhancement New functionality, model or documentation

Projects

Status: In progress
Status: In progress

Development

Successfully merging this pull request may close these issues.

3 participants