Skip to content

Commit d84bb0e

Browse files
committed
docs(api): stamp the python-sdk version on every generated reference page
gen_api_docs.py now reads the installed cldk version (importlib.metadata) and emits a `cldk <version>` PyPI badge next to the source badge plus an explicit "API reference generated from cldk <version>." line in each generated block. Regenerated against cldk 1.2.0, so the version a reader is looking at is now unambiguous and updates automatically on each release-driven regeneration.
1 parent 1713735 commit d84bb0e

5 files changed

Lines changed: 48 additions & 7 deletions

File tree

scripts/gen_api_docs.py

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from __future__ import annotations
2121

2222
import argparse
23+
import importlib.metadata
2324
import re
2425
import sys
2526
from pathlib import Path
@@ -374,9 +375,33 @@ def get_object(root, dotted: str):
374375
)
375376

376377

377-
def build_body(root, page: dict) -> str:
378+
def cldk_version() -> str:
379+
"""The version of the installed `cldk` these pages were generated from."""
380+
try:
381+
return importlib.metadata.version("cldk")
382+
except importlib.metadata.PackageNotFoundError:
383+
return ""
384+
385+
386+
def version_badge(version: str) -> str:
387+
"""A shields.io badge stating the python-sdk version, linked to PyPI."""
388+
if not version:
389+
return ""
390+
safe = version.replace("-", "--")
391+
return (
392+
f"[![cldk {version}]"
393+
f"(https://img.shields.io/badge/cldk-{safe}-3776AB?logo=pypi&logoColor=white)]"
394+
f"(https://pypi.org/project/cldk/{version}/)"
395+
)
396+
397+
398+
def build_body(root, page: dict, version: str = "") -> str:
378399
"""The generated symbol reference body (no frontmatter)."""
379-
out: list[str] = [GITHUB_BADGE, ""]
400+
badge = version_badge(version)
401+
header = f"{GITHUB_BADGE} {badge}" if badge else GITHUB_BADGE
402+
out: list[str] = [header, ""]
403+
if version:
404+
out += [f"_API reference generated from cldk {version}._", ""]
380405
multi = len(page["sections"]) > 1
381406
for heading, dotted in page["sections"]:
382407
module = get_object(root, dotted)
@@ -470,9 +495,16 @@ def main() -> int:
470495
)
471496
return 1
472497

498+
version = cldk_version()
499+
if version:
500+
print(f"generating from cldk {version}")
501+
else:
502+
print("warning: could not determine the cldk version (is it installed?)",
503+
file=sys.stderr)
504+
473505
args.out.mkdir(parents=True, exist_ok=True)
474506
for page in PAGES:
475-
body = build_body(root, page)
507+
body = build_body(root, page, version)
476508
dest = args.out / page["file"]
477509
text = inject_or_create(dest, page, body)
478510
mode = "injected into" if dest.exists() and MARK_START in dest.read_text(encoding="utf-8") else "wrote"

src/content/docs/reference/python-api/core.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ The full generated reference follows.
140140

141141
<!-- AUTO-GENERATED by scripts/gen_api_docs.py, do not edit by hand. -->
142142

143-
[![Source on GitHub](https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)](https://github.com/codellm-devkit/python-sdk)
143+
[![Source on GitHub](https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)](https://github.com/codellm-devkit/python-sdk) [![cldk 1.2.0](https://img.shields.io/badge/cldk-1.2.0-3776AB?logo=pypi&logoColor=white)](https://pypi.org/project/cldk/1.2.0/)
144+
145+
_API reference generated from cldk 1.2.0._
144146

145147
Core CLDK module.
146148

src/content/docs/reference/python-api/java.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,9 @@ follows.
106106

107107
<!-- AUTO-GENERATED by scripts/gen_api_docs.py, do not edit by hand. -->
108108

109-
[![Source on GitHub](https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)](https://github.com/codellm-devkit/python-sdk)
109+
[![Source on GitHub](https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)](https://github.com/codellm-devkit/python-sdk) [![cldk 1.2.0](https://img.shields.io/badge/cldk-1.2.0-3776AB?logo=pypi&logoColor=white)](https://pypi.org/project/cldk/1.2.0/)
110+
111+
_API reference generated from cldk 1.2.0._
110112

111113
## Analysis
112114

src/content/docs/reference/python-api/python.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,9 @@ follows.
123123

124124
<!-- AUTO-GENERATED by scripts/gen_api_docs.py, do not edit by hand. -->
125125

126-
[![Source on GitHub](https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)](https://github.com/codellm-devkit/python-sdk)
126+
[![Source on GitHub](https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)](https://github.com/codellm-devkit/python-sdk) [![cldk 1.2.0](https://img.shields.io/badge/cldk-1.2.0-3776AB?logo=pypi&logoColor=white)](https://pypi.org/project/cldk/1.2.0/)
127+
128+
_API reference generated from cldk 1.2.0._
127129

128130
## Analysis
129131

src/content/docs/reference/python-api/typescript.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ graph = analysis.get_call_graph() # -> networkx.DiGraph
5353

5454
<!-- AUTO-GENERATED by scripts/gen_api_docs.py, do not edit by hand. -->
5555

56-
[![Source on GitHub](https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)](https://github.com/codellm-devkit/python-sdk)
56+
[![Source on GitHub](https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)](https://github.com/codellm-devkit/python-sdk) [![cldk 1.2.0](https://img.shields.io/badge/cldk-1.2.0-3776AB?logo=pypi&logoColor=white)](https://pypi.org/project/cldk/1.2.0/)
57+
58+
_API reference generated from cldk 1.2.0._
5759

5860
## Analysis
5961

@@ -958,3 +960,4 @@ A variable / const / let declaration.
958960
| `end_column` | `int` | |
959961

960962
<!-- CLDK:API:END -->
963+

0 commit comments

Comments
 (0)