Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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<VERSION>` 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<VERSION>` 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<VERSION>` 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.

Expand Down
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 1 addition & 1 deletion deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion docs/wiki/wiki.md
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
2 changes: 1 addition & 1 deletion docs/wiki/wiki_mcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ Example shape:

```json
{
"version": "0.6.0",
"version": "0.7.0",
"config": "docs/wiki.yml",
"inputs": ["docs/wiki"],
"namespaces": {
Expand Down
2 changes: 1 addition & 1 deletion docs/wiki/wiki_render.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |

<!-- sparql:end -->

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion src/wiki/version.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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";
4 changes: 2 additions & 2 deletions tests/graph_cache_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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",
);
});
});
Expand Down
2 changes: 1 addition & 1 deletion tests/mcp_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Loading