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}.
This commit is contained in:
parent
f9f73473d6
commit
614aa9d8ec
@ -141,6 +141,26 @@ def handle_args():
|
|||||||
required=False,
|
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(
|
parser.add_argument(
|
||||||
"-o", "--output",
|
"-o", "--output",
|
||||||
dest="output_dir",
|
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_log = os.path.join(ARGS.output_dir, ".latex_make.log")
|
||||||
SPHINX_MAKE_PDF_STDOUT = open(sphinx_make_pdf_log, "w", encoding="utf-8")
|
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--------------------------------------
|
# --------------------------------API DUMP--------------------------------------
|
||||||
|
|
||||||
# Lame, python won't give some access.
|
# Lame, python won't give some access.
|
||||||
@ -2473,6 +2513,9 @@ def main():
|
|||||||
|
|
||||||
rna2sphinx(SPHINX_IN_TMP)
|
rna2sphinx(SPHINX_IN_TMP)
|
||||||
|
|
||||||
|
if ARGS.changelog:
|
||||||
|
generate_changelog()
|
||||||
|
|
||||||
if ARGS.full_rebuild:
|
if ARGS.full_rebuild:
|
||||||
# Only for full updates.
|
# Only for full updates.
|
||||||
shutil.rmtree(SPHINX_IN, True)
|
shutil.rmtree(SPHINX_IN, True)
|
||||||
|
Loading…
Reference in New Issue
Block a user