Skip to content

feat(deps): OCI Akua-package deps — accept package.k as KclModule marker#39

Merged
robinbraemer merged 1 commit into
mainfrom
feat/oci-akua-package-deps
Apr 28, 2026
Merged

feat(deps): OCI Akua-package deps — accept package.k as KclModule marker#39
robinbraemer merged 1 commit into
mainfrom
feat/oci-akua-package-deps

Conversation

@robinbraemer

Copy link
Copy Markdown
Member

Summary

Closes spike-1 follow-up #481 (extracted from PR #34).

Test plan

  • cargo test -p akua-core --features oci-fetch --lib oci_fetcher::tests — 12/12 (new: extract_blob_unpacks_akua_published_plain_tar)
  • cargo test --workspace --all-features — green
  • cargo clippy --workspace --all-features — clean

`find_package_root` now accepts either `kcl.mod` (kpm-published)
or `package.k` (Akua-published) as a `KclModule` marker. Annotation
detection (`detect_package`) and filesystem detection (`detect_kind`)
already recognize `dev.akua.*` annotations + `akua.toml + package.k`
directories from PR #34; the missing piece was the cache-root
descent step that finalizes a fetched OCI artifact.

End result: `[dependencies] upstream = { oci = "...", version = "..." }`
where the artifact is an Akua-published OCI package now resolves
through to the cached directory and lands as a `KclModule` dep.

Also fixes a pre-existing test-only build break in `verbs/render.rs`
where the `args(...)` test helper was missing the `debug` field
added in PR #33.

Test plan:
- `cargo test -p akua-core --features oci-fetch --lib oci_fetcher::tests`
  — 12/12 (new: `extract_blob_unpacks_akua_published_plain_tar`)
- `cargo test --workspace --all-features` — green
- `cargo clippy --workspace --all-features` — clean
@robinbraemer robinbraemer merged commit d0e35f1 into main Apr 28, 2026
1 of 2 checks passed
@robinbraemer robinbraemer deleted the feat/oci-akua-package-deps branch April 28, 2026 13:25
@robinbraemer robinbraemer mentioned this pull request Apr 28, 2026
3 tasks
robinbraemer added a commit that referenced this pull request May 7, 2026
…scape

Per-code page meta descriptions and the index page summary divs were
re-escaping already-escaped HTML, turning `<alias>` into `&amp;lt;alias&amp;gt;`
which browsers render as the literal text `&lt;alias&gt;`. The body
content was always correct (it goes through renderInline once); only
the contexts that re-fed through `escape()` after `stripTags` broke.

Fix: stripTags now also unescapes &lt; / &gt; / &quot; / &#39; / &amp;
back to plain text after stripping tags, so downstream escape() runs
once on plain text rather than double-escaping HTML entities.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant