[Bf-blender-cvs] [499649e58e7] cycles_oneapi: Py API Doc: add runtime changelog generation to `sphinx_doc_gen.py`.

Bastien Montagne noreply at git.blender.org
Wed Jun 29 10:38:40 CEST 2022


Commit: 499649e58e7b19d12c533f0400adb33f2c70699d
Author: Bastien Montagne
Date:   Wed Jun 15 15:43:13 2022 +0200
Branches: cycles_oneapi
https://developer.blender.org/rB499649e58e7b19d12c533f0400adb33f2c70699d

Py API Doc: add runtime changelog generation to `sphinx_doc_gen.py`.

Optionally use `sphinx_changelog_gen.py` to dump current version of the
API in a JSON file, and use closest previous one listed in given index
file to create a changelog RST page for Sphinx.

Part of {T97663}.

===================================================================

M	doc/python_api/sphinx_doc_gen.py

===================================================================

diff --git a/doc/python_api/sphinx_doc_gen.py b/doc/python_api/sphinx_doc_gen.py
index 8d4320917fc..4f27b662c60 100644
--- a/doc/python_api/sphinx_doc_gen.py
+++ b/doc/python_api/sphinx_doc_gen.py
@@ -141,6 +141,26 @@ def handle_args():
         required=False,
     )
 
+    parser.add_argument(
+        "--api-changelog-generate",
+        dest="changelog",
+        default=False,
+        action='store_true',
+        help="Generate the API changelog RST file "
+        "(default=False, requires `--api-dump-index-path` parameter)",
+        required=False,
+    )
+
+    parser.add_argument(
+        "--api-dump-index-path",
+        dest="api_dump_index_path",
+        metavar='FILE',
+        default=None,
+        help="Path to the API dump index JSON file "
+        "(required when `--api-changelog-generate` is True)",
+        required=False,
+    )
+
     parser.add_argument(
         "-o", "--output",
         dest="output_dir",
@@ -514,6 +534,26 @@ if ARGS.sphinx_build_pdf:
         sphinx_make_pdf_log = os.path.join(ARGS.output_dir, ".latex_make.log")
         SPHINX_MAKE_PDF_STDOUT = open(sphinx_make_pdf_log, "w", encoding="utf-8")
 
+
+# --------------------------------CHANGELOG GENERATION--------------------------------------
+
+def generate_changelog():
+    import importlib.util
+    spec = importlib.util.spec_from_file_location("sphinx_changelog_gen",
+                                                  os.path.abspath(os.path.join(SCRIPT_DIR, "sphinx_changelog_gen.py")))
+    sphinx_changelog_gen = importlib.util.module_from_spec(spec)
+    spec.loader.exec_module(sphinx_changelog_gen)
+
+    API_DUMP_INDEX_FILEPATH = ARGS.api_dump_index_path
+    API_DUMP_ROOT = os.path.dirname(API_DUMP_INDEX_FILEPATH)
+    API_DUMP_FILEPATH = os.path.abspath(os.path.join(API_DUMP_ROOT, BLENDER_VERSION_DOTS, "api_dump.json"))
+    API_CHANGELOG_FILEPATH = os.path.abspath(os.path.join(SPHINX_IN_TMP, "change_log.rst"))
+
+    sphinx_changelog_gen.main(("--", "--indexpath", API_DUMP_INDEX_FILEPATH, "dump", "--filepath-out", API_DUMP_FILEPATH))
+
+    sphinx_changelog_gen.main(("--", "--indexpath", API_DUMP_INDEX_FILEPATH, "changelog", "--filepath-out", API_CHANGELOG_FILEPATH))
+
+
 # --------------------------------API DUMP--------------------------------------
 
 # Lame, python won't give some access.
@@ -2473,6 +2513,9 @@ def main():
 
     rna2sphinx(SPHINX_IN_TMP)
 
+    if ARGS.changelog:
+        generate_changelog()
+
     if ARGS.full_rebuild:
         # Only for full updates.
         shutil.rmtree(SPHINX_IN, True)



More information about the Bf-blender-cvs mailing list