Skip to content

Commit 1a95f3a

Browse files
committed
Update webpage
Signed-off-by: Rahul Krishna <rkrsn@ibm.com>
1 parent fe119ca commit 1a95f3a

10 files changed

Lines changed: 54 additions & 100 deletions

File tree

astro.config.mjs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ export default defineConfig({
123123
{
124124
icon: "github",
125125
label: "CLDK on GitHub",
126-
href: "https://github.com/codellm-devkit/python-sdk",
126+
href: "https://github.com/codellm-devkit",
127127
},
128128
{
129129
icon: "seti:python",
@@ -198,16 +198,6 @@ export default defineConfig({
198198
link: "https://github.com/codellm-devkit/typescript-sdk",
199199
attrs: { "data-cldk-icon": "typescript", target: "_blank", rel: "noopener noreferrer" },
200200
},
201-
{
202-
label: "Rust SDK",
203-
slug: "contributing/rust-frontend",
204-
attrs: { "data-cldk-icon": "rust" },
205-
},
206-
{
207-
label: "Go SDK",
208-
slug: "reference/go-sdk",
209-
attrs: { "data-cldk-icon": "go" },
210-
},
211201
],
212202
},
213203
{
@@ -217,7 +207,6 @@ export default defineConfig({
217207
{ label: "codeanalyzer-python", slug: "backends/codeanalyzer-python", attrs: { "data-cldk-icon": "python" } },
218208
{ label: "codeanalyzer-java", slug: "backends/codeanalyzer-java", attrs: { "data-cldk-icon": "java" } },
219209
{ label: "codeanalyzer-ts", slug: "backends/codeanalyzer-ts", attrs: { "data-cldk-icon": "typescript" } },
220-
{ label: "codeanalyzer-go", slug: "backends/codeanalyzer-go", attrs: { "data-cldk-icon": "go" } },
221210
],
222211
},
223212
{

scripts/gen_api_docs.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,9 +357,17 @@ def get_object(root, dotted: str):
357357
MARK_END = "<!-- CLDK:API:END -->"
358358

359359

360+
# A GitHub badge linking to the python-sdk source, shown atop every API page.
361+
GITHUB_BADGE = (
362+
"[![Source on GitHub]"
363+
"(https://img.shields.io/badge/source-codellm--devkit%2Fpython--sdk-181717?logo=github&logoColor=white)]"
364+
"(https://github.com/codellm-devkit/python-sdk)"
365+
)
366+
367+
360368
def build_body(root, page: dict) -> str:
361369
"""The generated symbol reference body (no frontmatter)."""
362-
out: list[str] = []
370+
out: list[str] = [GITHUB_BADGE, ""]
363371
multi = len(page["sections"]) > 1
364372
for heading, dotted in page["sections"]:
365373
module = get_object(root, dotted)

src/content/docs/backends.mdx

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: The codeanalyzer backends
33
description: "CLDK is a thin Python frontend over a family of standalone language analyzers: the codeanalyzer-* backends. Here's how that split works and where each one lives."
44
---
55

6-
import { CardGrid, LinkCard, Aside } from "@astrojs/starlight/components";
6+
import { Badge, CardGrid, LinkCard, Aside } from "@astrojs/starlight/components";
77

88
The Python SDK you call is deliberately thin. The heavy lifting (parsing source, resolving symbols, building call graphs) happens in a family of **standalone language analyzers**, one per language, collectively the `codeanalyzer-*` backends. Each one emits the same shape of typed JSON, and the SDK facade deserializes it into the models you query.
99

@@ -23,11 +23,33 @@ This separation is what lets one `analysis` API span languages: the facade never
2323
The SDK manages the backend for you: auto-downloading the Java JAR, provisioning the Python analyzer in a virtualenv. These pages are for when you want to understand (or contribute to) what's happening underneath.
2424
</Aside>
2525

26-
## The backends
26+
This is the **backend** layer. For the SDKs that consume it, see the [SDKs overview](/reference/sdks/).
27+
28+
## Maturity tiers
29+
30+
<Badge text="Mature" variant="success" /> production-ready &nbsp;·&nbsp; <Badge text="Medium" variant="tip" /> usable, gaps remain &nbsp;·&nbsp; <Badge text="Help wanted" variant="danger" /> contributors wanted &nbsp;·&nbsp; <Badge text="Stub" variant="default" /> not started
31+
32+
## Backends (analyzers)
33+
34+
The `codeanalyzer-*` tools that parse a language and serialize the canonical symbol-table and call-graph schema every frontend reads.
35+
36+
| Language | Analyzer | Maturity |
37+
| --- | --- | --- |
38+
| **Java** | [codeanalyzer-java](/backends/codeanalyzer-java/) | <Badge text="Mature" variant="success" /> |
39+
| **Python** | [codeanalyzer-python](/backends/codeanalyzer-python/) | <Badge text="Mature" variant="success" /> |
40+
| **TypeScript** | [codeanalyzer-ts](/backends/codeanalyzer-ts/) | <Badge text="Medium" variant="tip" /> |
41+
| **JavaScript** | via [codeanalyzer-ts](/backends/codeanalyzer-ts/) | <Badge text="Medium" variant="tip" /> |
42+
| **Go** | Not started | <Badge text="Help wanted" variant="danger" /> <Badge text="Stub" variant="default" /> |
43+
| **Rust** | Not started | <Badge text="Help wanted" variant="danger" /> <Badge text="Stub" variant="default" /> |
44+
| **C** | Not started | <Badge text="Help wanted" variant="danger" /> <Badge text="Stub" variant="default" /> |
45+
| **C++** | Not started | <Badge text="Help wanted" variant="danger" /> <Badge text="Stub" variant="default" /> |
46+
| **C#** | Not started | <Badge text="Help wanted" variant="danger" /> <Badge text="Stub" variant="default" /> |
47+
48+
## Built backends
2749

2850
<CardGrid>
2951
<LinkCard title="codeanalyzer-python" description="Jedi-based semantic analysis with optional CodeQL call-graph augmentation; ships the canonical Py* schema." href="/backends/codeanalyzer-python/" />
3052
<LinkCard title="codeanalyzer-java" description="The deepest backend: WALA + Javaparser, producing symbol tables, call graphs, hierarchy, and CRUD analysis." href="/backends/codeanalyzer-java/" />
3153
<LinkCard title="codeanalyzer-ts" description="The TypeScript analyzer: the backend exists today; Python SDK support is on the way." href="/backends/codeanalyzer-ts/" />
32-
<LinkCard title="codeanalyzer-go" description="Coming soon. A planned Go analyzer that emits the same canonical analysis JSON." href="/backends/codeanalyzer-go/" />
54+
<LinkCard title="Add a backend" description="Help wanted. Go, Rust, C, C++, and C# are unbuilt. A backend that speaks the canonical JSON lights the language up across every SDK." href="/contributing/add-language-backend/" />
3355
</CardGrid>

src/content/docs/backends/codeanalyzer-go.mdx

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/content/docs/reference/go-sdk.mdx

Lines changed: 0 additions & 26 deletions
This file was deleted.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ The full generated reference follows.
114114

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

117+
[![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)
118+
117119
Core module
118120

119121
## `CLDK`

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ title: Python API Reference
33
description: "The CLDK Python SDK: the CLDK factory, the per-language analysis facades, and the typed data models they return."
44
---
55

6+
[![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)
7+
68
Every CLDK program follows the same shape: construct a `CLDK` object for a
79
language, ask it for an `analysis` facade over your project, then call typed
810
methods that return data models.

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ follows.
8585

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

88+
[![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)
89+
8890
## Analysis
8991

9092
Java module

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ follows.
109109

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

112+
[![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)
113+
112114
## Analysis
113115

114116
Python module
Lines changed: 11 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
22
title: SDKs
3-
description: "CLDK frontends (language SDKs) and backends (codeanalyzer-* analyzers), with a per-layer maturity tier for each language. Every SDK consumes the same canonical analysis JSON the backends emit."
3+
description: "CLDK frontends (the language SDKs you write against), with a maturity tier for each. Every SDK consumes the same canonical analysis JSON the codeanalyzer backends emit."
44
---
55

66
import { Aside, Badge, CardGrid, LinkCard } from "@astrojs/starlight/components";
77

88
A CLDK **SDK** (a *frontend*) is an ergonomic `analysis` API over the canonical JSON that the [codeanalyzer backends](/backends/) produce. Because the backends do all the language analysis, every SDK inherits every backend for free: the same call graphs, symbol tables, and reachability, exposed through the idioms of your language.
99

10-
## Maturity tiers
10+
This is the **frontend** layer. For the analyzers behind it, see the [backends overview](/backends/).
1111

12-
CLDK has two layers, each tracked independently: **frontends** (language SDKs that expose the `analysis` API) and **backends** (the `codeanalyzer-*` analyzers that emit the canonical JSON).
12+
## Maturity tiers
1313

14-
<Badge text="Mature" variant="success" /> production-ready &nbsp;·&nbsp; <Badge text="Medium" variant="tip" /> usable, gaps remain &nbsp;·&nbsp; <Badge text="Alpha" variant="caution" /> experimental &nbsp;·&nbsp; <Badge text="WIP" variant="note" /> in progress &nbsp;·&nbsp; <Badge text="Low" variant="default" /> early &nbsp;·&nbsp; <Badge text="Help needed" variant="danger" /> contributors wanted
14+
<Badge text="Mature" variant="success" /> production-ready &nbsp;·&nbsp; <Badge text="Alpha" variant="caution" /> experimental &nbsp;·&nbsp; <Badge text="Help wanted" variant="danger" /> contributors wanted &nbsp;·&nbsp; <Badge text="Stub" variant="default" /> not started
1515

1616
## Frontends (SDKs)
1717

@@ -21,25 +21,9 @@ The SDK you write against. Each is an ergonomic `analysis` API over the canonica
2121
| --- | --- | --- |
2222
| **Python** | [codellm-devkit/python-sdk](https://github.com/codellm-devkit/python-sdk) | <Badge text="Mature" variant="success" /> |
2323
| **TypeScript** | [codellm-devkit/typescript-sdk](https://github.com/codellm-devkit/typescript-sdk) | <Badge text="Alpha" variant="caution" /> |
24-
| **Rust** | In design | <Badge text="WIP" variant="note" /> |
25-
| **Java** | In design | <Badge text="WIP" variant="note" /> |
26-
| **Go** | In design | <Badge text="WIP" variant="note" /> |
27-
28-
## Backends (analyzers)
29-
30-
The `codeanalyzer-*` tools that parse a language and serialize the canonical symbol-table and call-graph schema every frontend reads.
31-
32-
| Language | Analyzer | Maturity |
33-
| --- | --- | --- |
34-
| **Java** | [codeanalyzer-java](/backends/codeanalyzer-java/) | <Badge text="Mature" variant="success" /> |
35-
| **Python** | [codeanalyzer-python](/backends/codeanalyzer-python/) | <Badge text="Mature" variant="success" /> |
36-
| **TypeScript** | [codeanalyzer-ts](/backends/codeanalyzer-ts/) | <Badge text="Medium" variant="tip" /> |
37-
| **JavaScript** | via [codeanalyzer-ts](/backends/codeanalyzer-ts/) | <Badge text="Medium" variant="tip" /> |
38-
| **C** | Planned | <Badge text="Low" variant="default" /> |
39-
| **C++** | Planned | <Badge text="Low" variant="default" /> |
40-
| **Go** | [codeanalyzer-go](/backends/codeanalyzer-go/) | <Badge text="Help needed" variant="danger" /> |
41-
| **Rust** | Planned | <Badge text="Help needed" variant="danger" /> |
42-
| **C#** | Planned | <Badge text="Help needed" variant="danger" /> |
24+
| **Java** | Not started | <Badge text="Help wanted" variant="danger" /> <Badge text="Stub" variant="default" /> |
25+
| **Rust** | Not started | <Badge text="Help wanted" variant="danger" /> <Badge text="Stub" variant="default" /> |
26+
| **Go** | Not started | <Badge text="Help wanted" variant="danger" /> <Badge text="Stub" variant="default" /> |
4327

4428
## Pick an SDK
4529

@@ -51,19 +35,14 @@ The `codeanalyzer-*` tools that parse a language and serialize the canonical sym
5135
/>
5236
<LinkCard
5337
title="TypeScript SDK"
54-
description="Experimental. A TypeScript/Node frontend over the same canonical analysis JSON. Track progress on GitHub."
38+
description="Experimental (alpha). A TypeScript/Node frontend over the same canonical analysis JSON. Track progress on GitHub."
5539
href="https://github.com/codellm-devkit/typescript-sdk"
5640
/>
5741
<LinkCard
58-
title="Rust SDK"
59-
description="Coming soon. A planned Rust frontend; see the roadmap and starting points for how a second native SDK inherits every backend."
42+
title="Add a frontend"
43+
description="Help wanted. A new frontend inherits every backend for free; see the roadmap and starting points for a native SDK."
6044
href="/contributing/rust-frontend/"
6145
/>
62-
<LinkCard
63-
title="Go SDK"
64-
description="Coming soon. A planned Go frontend over the same canonical analysis JSON."
65-
href="/reference/go-sdk/"
66-
/>
6746
</CardGrid>
6847

6948
<Aside type="tip" title="Adding a language pack">
@@ -78,4 +57,4 @@ Each SDK speaks the same `analysis` vocabulary because they all read the one sch
7857
- The core methods (`get_symbol_table`, `get_call_graph`, `get_callers`, `get_callees`, and friends) return the same typed models.
7958
- Adding a backend lights the new language up across **every** SDK at once.
8059

81-
The [Python SDK](/reference/python-api/) is stable and the place to start. The [TypeScript SDK](https://github.com/codellm-devkit/typescript-sdk) is experimental and evolving. A Rust frontend is on the roadmap, see [Add a Rust frontend](/contributing/rust-frontend/) for the design.
60+
The [Python SDK](/reference/python-api/) is stable and the place to start. The [TypeScript SDK](https://github.com/codellm-devkit/typescript-sdk) is experimental and evolving. The Java, Rust, and Go frontends are unbuilt: see [Add a Rust frontend](/contributing/rust-frontend/) for the shape a native SDK takes.

0 commit comments

Comments
 (0)