Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Component/s: Stack Documentation and UX
-
Labels:None
-
Story Points:3.9
-
Epic Link:
-
Team:SQuaRE
Description
To bridge Doxygen-generated C++ reference documentation into pipelines.lsst.io, a Sphinx-based site, we know we want to use Breathe. However, we don't know the best way to build out the API reference site. We don't want a monolithic page with all APIs, instead, we want one-page-per-API, like we do the Python docs.
One approach to building out this page hierarchy is with exhale, an additional Sphinx extension that builds generates doxygen-like namespace browsing of a C++ API. This ticket is to demo that approach and see if it's an appropriate solution for the LSST Science Pipelines documentation.
Attachments
Issue Links
- relates to
-
DM-23094 Implement C++ reference documentation for pipelines.lsst.io using "Doxylink"
- Done
-
DM-22823 Remove accidental Doxygen comments for namespace lsst
- Done
-
DM-22461 Create Sphinx "autocppapi" extension in Documenteer
- Done
-
DM-22499 Trial generating C++ documentation for pipelines.lsst.io using Breathe's breathe-apidoc tool
- Done
Krzysztof Findeisen, I have a prototype build of the Science Pipelines documentation that includes a C++ reference: https://pipelines.lsst.io/v/DM-22500/index.html
This is using mostly off-the-shelf tooling (Doxygen, breathe, and exhale), along with a Doxygen build that's driven by Documenteer itself, rather than sconsUtils and lsstDoxygen.
There are limitations in this presentation of the C++ API reference, but our main question right now is:
Is this API reference sufficient to replace our standalone Doxygen HTML site for the purpose of providing a C++ API reference?
The main page that exhale generates is at https://pipelines.lsst.io/v/DM-22500/cpp-api/index.html
There are standalone pages for namespaces (e.g. https://pipelines.lsst.io/v/DM-22500/cpp-api/namespace_lsst__afw__table.html#namespace-lsst-afw-table) and things like classes (https://pipelines.lsst.io/v/DM-22500/cpp-api/classlsst_1_1afw_1_1table_1_1_schema.html#exhale-class-classlsst-1-1afw-1-1table-1-1-schema).
There are also pages for each header file, though they currently aren't linking properly in the upload to LSST the Docs.
Another oddity is that cross-links go to this page https://pipelines.lsst.io/v/DM-22500/cpp-api/namespace/namespacelsst.html rather than the individual standalone pages. This means that API definitions are being duplicated.
Finally, I had to exclude include/lsst/afw/geom/SpanSet.h and include/lsst/afw/geom/SpanSetFunctorGetters.h from the Doxygen build because they're causing Sphinx failures related to https://github.com/svenevs/exhale/issues/51