Skip to content

Conversation

@woodtp
Copy link
Contributor

@woodtp woodtp commented Jan 15, 2026

Produce official documentation for PyORBIT. Automatically generates the Python API reference with sphinx-automodapi. To enable automatic documentation for the C++ part of the repo, a combination of Doxygen, Breathe, and Exhale is used.

Important

New dependencies included in a separate doc/environment.yml:

sphinx
doxygen
breathe  # sphinx-doxygen bridge
exhale   # automatic documentation of C++ library API
myst-parser  # markdown support
sphinx-copybutton  # turn on 'copy-to-clipboard' buttons in codeblocks.
sphinx-automodapi
sphinx-autodoc-typehints
graphviz

Todo

  • Quick Start/Installation instructions/examples/other static content
  • Figure out why sphinx.ext.autosummary works intermittently between the various orbit modules.
  • Extend to C++ portion of code base.
  • Setup HTML deployment to somewhere... lab-hosted? GitHub Pages?
    • CI/CD
  • Decide on a theme
  • Ship dependenciesrequirements.txt required to build docs.
  • How to handle documentation of python bindings to C++?

Current state is deployed from this feature branch to the following url:
https://pyorbit-collaboration.github.io

Wood, Tony added 20 commits January 12, 2026 12:37
Resolved an issue where some of the C++ side of PyORBIT was getting
documented twice. Ignored some macros that were causing errors while
building documentation. Documentated a couple of methods as examples.
Building and re-deploying on each PR may be problematic as the
github-pages environment is protected.
If things are really busy, the default 10 minutes is an insufficient
amount of time to wait in the queue.
Now docs can be built on pull request without attempting to publish to
Pages.
…ion.github.io

This reverts commit 5f422a4.

Deploy to pyorbit-collaboration/pyorbit-collaboration.github.io
… and separate markdown files for each pyorbit module
…ilable

When `__all__` is defined, `automodapi` uses it to inform for which
elements of the module docs should be generated. If for some reason
something defined in `__all__` is not actually importable, then the docs
will fail to compile. These adjustments make docs compilable for now.
Seeking guidance on whether this is the best way to proceed.
@woodtp woodtp self-assigned this Jan 15, 2026
@woodtp woodtp added the documentation Improvements or additions to documentation label Jan 15, 2026
@woodtp woodtp requested review from azukov and shishlo January 15, 2026 19:59
@woodtp
Copy link
Contributor Author

woodtp commented Jan 15, 2026

@azukov @shishlo, I ran into some issues compiling docs due to failing imports. I attempted to rectify that in 9684043, but I want to make sure that this is a reasonable solution.

@woodtp woodtp mentioned this pull request Jan 15, 2026
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants