Skip to content

docs: close issue backlog batch 2 (FAQ #81/#82, architecture doc, commit footer) - #558

Merged
Peefy merged 4 commits into
mainfrom
chore/issue-backlog-batch-2
Sep 25, 2026
Merged

Peefy merged 4 commits into
mainfrom
chore/issue-backlog-batch-2

Conversation

@Peefy

@Peefy Peefy commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

Batch 2 of the open-issue backlog cleanup (follow-up to #554). Verified with kcl 0.12.10; EN + zh-CN synced.

FAQ additions (docs/user_docs/support/faq-kcl.md)

Contributor docs

  • Architecture component dependency graph (closes [doc] component depency graph for developer doc #485): new docs/community/contribute/architecture.md mapping the kcl (Rust core) → lib → kcl-go → kpm/cli relationship, with a text diagram and a "where to send your PR" table.

Site

  • Commit hash in the doc footer (closes Add commit ID to the webpage footnote when updating the doc repo #93): a small wrapper around @docusaurus/plugin-content-docs (src/plugins/docGitCommit.js) attaches each doc's git commit (short hash + commit URL) at build time, and a swizzled DocItem/Footer renders it next to the existing "Last updated on … by …" line. Gracefully renders nothing when git info is unavailable (e.g. shallow clones).

Test plan

  • npm run build passes (en + zh-CN, all versions)
  • Built HTML footers show the correct short hash matching git log -1 --format=%h for the page's source file (checked current + 0.11/0.10 + zh-CN pages)

The kcl-lang.io install-script CI failed on macOS because getLatestRelease()
only used the GitHub REST /releases endpoint: on rate-limited CI runner
egress (60 req/hr unauthenticated) the pipeline yields an empty tag, the
script builds malformed download URLs, saves GitHub's 404 HTML page, and
dies with a confusing 'tar: Unrecognized archive format'.

Port the same hardening already applied to install-cli.sh
(7c475a0, fixes #550):

- getLatestRelease: three-layer discovery — follow the /releases/latest
  HTML redirect (no API rate limit), then REST /releases/latest, then the
  legacy /releases list.
- main: reject an empty release tag with an actionable error showing the
  'bash -s -- <version>' workaround.
- downloadFile: reject an empty tag (defense in depth) and use 'curl -f'
  so HTTP errors fail the download instead of saving the error page.
- installFile: sniff the artifact with 'tar -tzf' before unpacking so a
  non-gzip download reports a clear error instead of a tar failure.
…mit footer)

- FAQ #81: string format member function and its Python-style format
  spec subset, with verified examples (closes #24)
- FAQ #82: the kcl.yaml file list replaces CLI file args instead of
  merging with them (closes #90)
- community/contribute/architecture.md: component dependency graph
  across the kcl / lib / kcl-go / kpm / cli repos (closes #485)
- site: show the per-doc git commit hash next to the last-updated
  footer via a wrapped docs plugin (closes #93)

EN + zh-CN synced; examples verified with kcl 0.12.10.
@vercel

vercel Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
kcl-lang-io Ready Ready Preview Sep 25, 2026 9:08pm UTC

…es, libkcl)

The kcl-lang/kcl repo has been restructured: the compiler is now a set
of kcl-* Rust crates (kcl-lib, kcl-sema, kcl-evaluator, kcl-parser, ...)
and the shared library built by kcl-lib is libkcl.so/libkcl.dylib/kcl.dll
shipped via kcl-lang/lib. The old kclvm/kclvm_cli/libkclvm_cli_cdylib
names no longer exist.
…n docs

- rust-api.md (EN/zh): kclvm-runtime -> kcl-runtime
- rest-api.md (EN/zh): re-embed the complete service definition from the
  current crates/api/spec.proto (was gpyrpc.proto under kclvm/; rpc set
  and message fields have drifted, e.g. ValidateCodeArgs), update the
  BuiltinService/KclService excerpts and the proto source link
- plugin/overview.md (EN/zh): kclvm-{parser,loader,evaluator,runtime}
  -> kcl-* crates, matching the renamed Rust crates in kcl-lang/kcl
- zh go-api.md: relink all symbols from the removed kclvm.go to current
  files/lines (mirroring the EN doc), KclvmAbiVersion -> KclAbiVersion,
  drop the removed InitKclvmPath/InitKclvmRuntime sections
@Peefy
Peefy merged commit bd6a68c into main Sep 25, 2026
4 of 8 checks passed
@Peefy
Peefy deleted the chore/issue-backlog-batch-2 branch September 25, 2026 19:52

This branch was successfully deployed

1 active deployment
Preview — 4cd0c68f Deployed Sep 25, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment