Details
-
Type:
Story
-
Status: In Review
-
Resolution: Unresolved
-
Fix Version/s: None
-
Labels:
-
Story Points:4
-
Epic Link:
-
Team:Data Release Production
-
Urgent?:No
Description
Pipelines are defined in YAML files, rather than Python code, so we can't use our usual Sphinx-based tooling to generate documentation for them. This ticket will provide tooling (in pipe_base) and a real-world demonstration of its use (in drp_pipe) that builds rST docs from those YAML files for Sphinx to compile.
In this first version, I'll use SCons to invoke these tools; that should ensure that the generated rST files are installed with the rest of the package when documenteer's stack-docs finds it later. It may be cleaner to call the same tooling directly from a Sphinx plugin in the future, but I'll leave that for another ticket (aside from trying to avoid tying the tools too closely to SCons).
Initial doc content will include:
- writing the pipeline in "expanded" form (see
DM-33027), and including the resulting config and YAML files in rST pages via literalinclude; - writing and rendering GraphViz diagrams for the full pipeline and each task, and including those in the rST pages with image directives.
There's a lot more we could do, but I'll create separate tickets for the rest. Everything described above has actually already been done on DM-30891 branches; this ticket exists just to split that functionality out for separate review and merge.
Attachments
Issue Links
- blocks
-
DM-33035 Add subset information to pipeline doc builds
- To Do
-
DM-33036 Improve graph visualization in pipeline doc builds
- To Do
-
DM-33037 Generate docs from pipeline initOutput datasets
- To Do
- is blocked by
-
DM-30891 Create drp_pipe and move all DRP pipeline definitions there
- Done
-
DM-32711 Implement RFC-802, add analysis_drp to lsst_distrib
- Done
-
DM-33027 Add pipeline graph class and experimental support for writing pipelines in expanded form
- Done
- relates to
-
DM-33527 Update Task Topic Type documentation for PipelineTasks
- To Do
-
DM-28280 Documenting Butler DatasetTypes
- To Do
-
DM-6655 Webpage of flags produced by various stack products
- To Do
-
DM-32817 Change usage of ButlerURI to ResourcePath
- Done
- mentioned in
-
Page Loading...
Jonathan Sick, this is a holiday review request where merging is blocked by other tickets anyway: absolutely no rush!
So, this ticket is a follow-up to our community discussion on pipeline docs, but it's more of a minimum viable product than a sketch, as I think it will give us something that works (and can be built on; see linked tickets) until if you have some time to think about how to integrate this more cleanly with the doc build.
Changes are in four PRs; note that many of these are sitting on top of a few other tickets that are being reviewed in parallel, so the PR base isn't always main:
DM-30891, which is one of those reviewed-in-parallel tickets.Finally, you can see a local pipelines.lsst.io build of these branches here: https://lsst.ncsa.illinois.edu//~jbosch/DM-33034/modules/lsst.drp.pipe/index.html
I was a bit disappointed to see in that doc build how few of the PipelineTask class links work there, but it looks like that's a combination of two preexisting problems, not something specific to this ticket:
1. Many upstream packages don't include important modules in their doc builds at all - some combination of their __all__, __init__.py, and index.rst lists need to be updated.
2. The docs I'm building here link to the Python task classes, as if they were regular Python classes, and that works when (1) isn't in play (check out the HSC/RC2 pipeline and the jointcal task for working link). But there doesn't seem to be any linkage from that class API reference page to the special Task doc page (or maybe there isn't one in this case?). Those Task pages also seem to generally be in better shape in terms of whether they exist at all upstream, but I don't see how to link to them (and ideally I think one would link to them in the same way one would link to any Python class, and the class and Task docs would be one and the same, but maybe that's not the case).
I'd be interested in your thoughts on how best to do (2); I think (1) is just grunt work, and I'll create a ticket for the specific problems I've spotted.
You can also find the SCons-generated rST files that went into this build on the NCSA machines, at /project/jbosch/tkt/DM-33034/drp_pipe/doc.