From 51aa0aa69b704e91b92ccd50b7e71636362d62df Mon Sep 17 00:00:00 2001 From: Ethan Davidson <31261035+EthanThatOneKid@users.noreply.github.com> Date: Wed, 14 Oct 2026 10:31:46 -0700 Subject: [PATCH] chore(release): 0.7.0 Bumps every shared version surface to 0.7.0 and writes the 0.7.0 changelog. Also updates the three version pins the checklist missed (wiki_mcp.md example JSON, mcp_test.ts, graph_cache_test.ts version + fingerprint hash) and names them in AGENTS.md. The merge publishes to JSR; the v0.7.0 tag publishes npm, PyPI, and the GitHub release. --- AGENTS.md | 2 +- CHANGELOG.md | 36 ++++++++++++++++++++++++++++++++++++ deno.json | 2 +- docs/wiki/wiki.md | 2 +- docs/wiki/wiki_mcp.md | 2 +- docs/wiki/wiki_render.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- pyproject.toml | 2 +- src/wiki/version.ts | 2 +- tests/graph_cache_test.ts | 4 ++-- tests/mcp_test.ts | 2 +- 12 files changed, 49 insertions(+), 13 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f0c4ba32..14961d72 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -104,7 +104,7 @@ The Deno `Wiki` API is the in-process library surface; the npm package exposes t ### Release workflow -A release is cut by pushing a `v` tag after updating the shared version surfaces: `package.json`, `package-lock.json`, `deno.json`, `pyproject.toml`, `src/wiki/version.ts`, and `docs/wiki/wiki.md`. `tests/version_test.ts` checks their agreement. Update `CHANGELOG.md`, regenerate docs SPARQL blocks with `deno run -A src/wiki/cli.ts -c docs/wiki.yml render`, format and validate the docs wiki, then tag the version. +A release is cut by pushing a `v` tag after updating the shared version surfaces: `package.json`, `package-lock.json`, `deno.json`, `pyproject.toml`, `src/wiki/version.ts`, and `docs/wiki/wiki.md`. `tests/version_test.ts` checks their agreement. Three more places pin the version and are not generated: the `example shape` JSON in `docs/wiki/wiki_mcp.md`, and the version and manifest-fingerprint assertions in `tests/mcp_test.ts` and `tests/graph_cache_test.ts` (the manifest includes `VERSION`, so the fingerprint hash changes on every bump). Update `CHANGELOG.md`, regenerate docs SPARQL blocks with `deno run -A src/wiki/cli.ts -c docs/wiki.yml render`, format and validate the docs wiki, then tag the version. `@wazoo/wiki` is registered on JSR and linked to `wazootech/wiki`, so the GitHub OIDC publish works. `.github/workflows/publish-jsr.yml` publishes the version that reaches `main`, after the `CI` workflow succeeds on that commit; a tag is not required, and a `main` push whose version is already on JSR is a no-op. It is gated on the repository variable `JSR_PUBLISH_ENABLED=true`. `.github/workflows/release.yml` runs on a `v` tag and verifies versions, builds the Deno standalone binaries for all six `deno compile` targets, then publishes the GitHub Release assets and `wazootech-wiki` to npm with provenance and to PyPI through Trusted Publishing. The PyPI wheels are built from the published release assets after `SHA256SUMS` verifies them, so a wheel never ships before, or differently from, its release binary. The platform wheels upload before the binary-less fallback, so an index caught mid-upload never lists the fallback alone (#347). The PyPI job is gated on the repository variable `PYPI_PUBLISH_ENABLED=true` and on a `pypi` environment trusted by the PyPI project. Do not publish packages by hand. diff --git a/CHANGELOG.md b/CHANGELOG.md index c2ea4839..486b8396 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,41 @@ # Changelog +## 0.7.0 — 2026-10-14 + +### Added + +- `@wazoo/wiki/theme` exports `buildThemedSite`, a whole-site build driver that + owns the page walk, the page shell (table of contents, infobox, backlinks, + categories, metadata panels), `%wiki.*%` substitution, the output tree, and + asset copying, so a theme supplies only its layouts, its token values, and its + highlighter ([#409](https://github.com/wazootech/wiki/issues/409)). + `escapeHtml`, `safeJson`, and `substitute` are exported alongside it to compose + token values. This repository's own `docs/build.ts` is now a 93-line theme over + the driver, down from 791 lines, and builds byte-identical output. +- `renderLayout` and `renderPageLayout` accept an `extraTokens` map for a theme + that computes layout slots itself, instead of reimplementing the substitution + loop ([#407](https://github.com/wazootech/wiki/issues/407)). The three + built-in slots remain the default; a key that collides with a built-in slot + wins, values are inserted verbatim, and an unknown `%wiki.*%` spelling is left + in place. + +### Changed + +- Documentation: the H1 is the page headline — repeating it as `headline` + frontmatter is redundant — and this repository's docs wiki enables + `lint.redundant_frontmatter` after removing the 74 repeated keys + ([#401](https://github.com/wazootech/wiki/issues/401)). +- Documentation: the template registry names the single `wikipedia` template; + the eleven retired template paths no longer resolve + ([#411](https://github.com/wazootech/wiki/issues/411)). + +### Fixed + +- `wiki file new` no longer writes a `headline` frontmatter key that only + repeats the H1 it just wrote and would then be flagged by + `lint.redundant_frontmatter` ([#402](https://github.com/wazootech/wiki/issues/402)). + `name`, `schema:name`, and a headline that differs from the H1 are kept. + ## 0.6.0 — 2026-10-11 ### Added diff --git a/deno.json b/deno.json index bbe48576..4cc583f0 100644 --- a/deno.json +++ b/deno.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/denoland/deno/main/cli/schemas/config-file.v1.json", "nodeModulesDir": "auto", "name": "@wazoo/wiki", - "version": "0.6.0", + "version": "0.7.0", "license": "MIT", "exports": { ".": "./src/wiki/mod.ts", diff --git a/docs/wiki/wiki.md b/docs/wiki/wiki.md index efdfcd1d..e52cfdf3 100644 --- a/docs/wiki/wiki.md +++ b/docs/wiki/wiki.md @@ -1,7 +1,7 @@ --- type: schema:SoftwareApplication name: wiki -softwareVersion: 0.6.0 +softwareVersion: 0.7.0 description: Command-line interface for querying, validating, and publishing semantic markdown wikis. codeRepository: https://github.com/wazootech/wiki --- diff --git a/docs/wiki/wiki_mcp.md b/docs/wiki/wiki_mcp.md index 133e2575..c4f71f66 100644 --- a/docs/wiki/wiki_mcp.md +++ b/docs/wiki/wiki_mcp.md @@ -89,7 +89,7 @@ Example shape: ```json { - "version": "0.6.0", + "version": "0.7.0", "config": "docs/wiki.yml", "inputs": ["docs/wiki"], "namespaces": { diff --git a/docs/wiki/wiki_render.md b/docs/wiki/wiki_render.md index f583c3de..aa270d6e 100644 --- a/docs/wiki/wiki_render.md +++ b/docs/wiki/wiki_render.md @@ -88,7 +88,7 @@ ORDER BY ?name | [Linked_Markdown](Linked_Markdown.md) | Linked_Markdown | | | [Obsidian](Obsidian.md) | Obsidian | | | [Vivary](Vivary.md) | Vivary | 0.4.2 | -| [wiki](wiki.md) | wiki | 0.6.0 | +| [wiki](wiki.md) | wiki | 0.7.0 | diff --git a/package-lock.json b/package-lock.json index 94838f16..b7615897 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wazootech-wiki", - "version": "0.6.0", + "version": "0.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "wazootech-wiki", - "version": "0.6.0", + "version": "0.7.0", "license": "MIT", "dependencies": { "deno": "2.9.6" diff --git a/package.json b/package.json index 0832db63..16932cf4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wazootech-wiki", - "version": "0.6.0", + "version": "0.7.0", "description": "Clean, pure, idiomatic CLI for managing a semantic LLM wiki", "repository": { "type": "git", diff --git a/pyproject.toml b/pyproject.toml index 13b751c4..ce42590e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ build-backend = "hatchling.build" [project] name = "wazootech-wiki" -version = "0.6.0" +version = "0.7.0" description = "The Wiki CLI as a native binary, with a typed Python API for running it" readme = "python/README.md" license = "MIT" diff --git a/src/wiki/version.ts b/src/wiki/version.ts index 79c3019d..09942aaa 100644 --- a/src/wiki/version.ts +++ b/src/wiki/version.ts @@ -7,4 +7,4 @@ * Kept as a literal rather than read from `deno.json` at runtime so that * `deno compile` binaries need no filesystem access to report their version. */ -export const VERSION = "0.6.0"; +export const VERSION = "0.7.0"; diff --git a/tests/graph_cache_test.ts b/tests/graph_cache_test.ts index 2ef298ab..d52194ce 100644 --- a/tests/graph_cache_test.ts +++ b/tests/graph_cache_test.ts @@ -108,7 +108,7 @@ Deno.test("the manifest describes each contributing file", async () => { await withTempDir((root) => { const { config } = wiki(root); const manifest = wikiManifest(config); - assertEquals(manifest.version, "0.6.0"); + assertEquals(manifest.version, "0.7.0"); assertEquals(manifest.files.length, 1); assertEquals(manifest.files[0]!.path, "wiki/page.md"); assertEquals(manifest.files[0]!.size > 0, true); @@ -408,7 +408,7 @@ Deno.test("the manifest orders paths by standard string order", async () => { // The manifest includes VERSION, so a version bump changes this hash. assertEquals( wikiFingerprint(config), - "430acc47df0a01822d15b69cdb851432c9e46011282ae7d6815933797ffff414", + "fa71b23d2dc65ab36c86015e445e74b4abee2a17b0e8a6689fbb59e2fdecb41c", ); }); }); diff --git a/tests/mcp_test.ts b/tests/mcp_test.ts index cac81c4a..007df47f 100644 --- a/tests/mcp_test.ts +++ b/tests/mcp_test.ts @@ -49,7 +49,7 @@ Deno.test("describeWiki reports factual config, graph, namespace, and vocabulary try { const description = await describeWiki(makeWiki(root)); - assertEquals(description.version, "0.6.0"); + assertEquals(description.version, "0.7.0"); assertEquals(description.config, "wiki.yaml"); assertEquals(description.inputs, ["wiki"]); assert(description.graph.triples > 0);