Files
mscclpp/docs
Qinghua Zhou ed565ceb33 Fix missing directory of document for new tag v0.9.0 (#776)
The v0.9.0 conf.py (introduced in #775) dynamically loads the version
from python/mscclpp/_version.py.

This file is generated at build time by setuptools_scm and is listed in
.gitignore — it is never committed to the repo. Earlier tags (v0.8.0 and
below) used a hardcoded release (e.g., "v0.8.0") in conf.py, so they had
no dependency on generated files.
sphinx-multiversion checks out each tag using git archive, which only
extracts committed files.
Since _version.py is not committed, the v0.9.0 checkout is missing it,
and conf.py crashes on import. All future tags will have this same
problem.

**Three changes:**
1. docs/build_multiversion.py (new): A wrapper around
sphinx-multiversion that monkey-patches copy_tree to generate
_version.py in each tag checkout after extraction. The version string is
parsed from the tag name (e.g., v0.9.0 → __version__ = "0.9.0").
2. Makefile: The multiversion target now calls build_multiversion.py
instead of sphinx-multiversion directly.
3. conf.py: Added a fallback so that if _version.py doesn't exist, it
reads the version from the VERSION file instead. This makes conf.py
resilient for any future scenario where _version.py is missing.

**Testing**
Verified locally:
• make multiversion now successfully builds all 11 versions (v0.4.0
through v0.9.0)
• v0.9.0 docs are correctly generated under _build/html/v0.9.0/
Version selector shows v0.9.0 as latest
2026-04-08 17:59:05 -04:00
..
2026-01-21 20:32:24 -08:00
2026-04-07 13:37:02 -07:00
2025-08-11 10:34:29 -07:00
2026-02-03 10:13:20 -08:00
2025-10-23 00:34:53 +00:00
2025-10-23 00:34:53 +00:00
2025-12-19 15:17:08 -08:00
2023-11-22 12:58:04 -08:00
2025-08-07 15:37:37 -07:00
2026-01-21 20:32:24 -08:00
2026-02-03 10:13:20 -08:00
2024-10-18 06:08:31 +00:00
2025-08-07 15:37:37 -07:00

How to build docs

  1. Install doxygen.

    $ sudo apt-get install doxygen graphviz
    
  2. Install Python packages below. If you install them on the user's local, you need to include ~/.local/bin to $PATH (to use sphinx-build).

    $ sudo python3 -m pip install -r ./requirements.txt
    
  3. Create Doxygen documents.

    $ doxygen
    
  4. Create Sphinx documents.

    $ make html
    
  5. Done. The HTML files will be on _build/ directory.