Every release MUST refresh the version/release references below. The library code
ships from metaobjectsdev/metaobjects, but documentation and the public sites
live in three repos and drift independently — a version bump is not "done" until
this whole list is walked.
Companion to RELEASING.md (npm/TS) and
RELEASING-java.md (Maven Central). Two version lines, one release:
npm / NuGet / PyPI carry the shared number (1.0.0 at the 1.0 cut) and Maven Central
carries the same minor.patch on npm major + 7 (8.0.0). Do not hardcode either
major anywhere — the previous 0.x / 7.x spelling of this sentence outlived its truth
by exactly one release.
Tip: the fastest way to not miss anything is to grep the previous version across each repo (see Quick scan) — this list is the map, the grep is the safety net.
-
README.md— per-port version rows (npm + Maven Central). -
CHANGELOG.md— add the release entry. -
CLAUDE.md— the## Statussection (version line + "Last refreshed" date). -
docs/llms/llms.txt— the "Shipping at<npm>… and<maven>…" line, the## Implementations (npm … / Maven Central …)header, the per-port version lines, and the install snippets. -
docs/llms/llms-full.txt— same version touch-points asllms.txt. -
docs/ports/typescript.md— npm version + install snippet. -
docs/ports/typescript-client.md— npm version (if referenced). -
docs/ports/csharp.md— the<PackageReference … Version="…"/>snippets. -
docs/ports/java.md— Maven<version>+ artifact list. -
docs/ports/kotlin.md— Maven<version>. -
docs/ports/python.md— PyPI version +pip install. -
docs/features/extending-with-providers.md— no version edit any more. Its "Cross-port parity status" table readsShippedfor all five ports with no version scope, so there is no "as of<ver>" marker left to refresh (checked at the 1.0 cut). Re-add one here only if parity ever becomes version-scoped again. -
docs/RELEASING.md/docs/RELEASING-java.md— the "currently<ver>" notes. - Grep the docs for "UNRELEASED" / "on
main, shipping in the next". A capability documented before it ships carries that hedge on purpose, and it becomes a lie the moment the cut lands.agent-context/skills/metaobjects-authoring/SKILL.mdcarries one today for the Kotlin builder (#365) — flip it to the shipped version and regeneratefixtures/agent-context-conformance/in the same commit. -
.github/workflows/publish-*.yml— no version edits by design. All four publish workflows read the version from the committed manifest (package.json/ pom /Directory.Build.props/pyproject.toml), so none hardcodes one. Re-check only if someone adds a version string back; thepublish-csharp.ymlworkflow_dispatchdescription carried one until0.21.6and had silently drifted seven releases stale. -
agent-context/— NO version edits on a bump, by design. Themeta initLLM-context source is version-agnostic: Maven examples use${metaobjects.version}and there are no hardcoded npm versions. Only touch it when a feature or API changed (not a version number), and re-verify its accuracy when you do.
Nothing on this list is a version edit any more, and that is the point — every version-bearing byte the site serves is copied or injected at deploy time from THIS repo, pinned to the newest npm-line release tag. What the release owes the site is a push, not an edit. Confirm rather than change:
-
www/llms.txt/www/llms-full.txt— gitignored there, copied from this repo'sdocs/llms/at deploy. Fix them here (§A), never in the site repo. -
www/assess.md— gitignored there, copied from this repo'sagent-context/skills/metaobjects-fit-assessment/SKILL.md(its body, from the first top-level heading) at deploy. Fix it here. -
www/index.htmland every other page — the four registry coordinates plusmetamodelare injected into any element carryingdata-registry="…", and the derived counts (fixtures,corpora,baseTypes) into any element carryingdata-count="…", both fromexamples/showcase/site-payload.json. The numbers in the committed HTML are placeholders; editing them changes nothing that ships. - A NEW placeholder key must reach a release tag BEFORE the page that uses it.
The pages deploy on push from the site repo; the payload and the injector come from
the pinned release tag. So a page carrying a
data-registry/data-countkey that the pinned tag's payload has never heard of makes the injector throw — and that step sits before "Upload artifact", so it takes down the whole site deploy, unrelated prose edits included. Order: land the key in this repo → cut a release → then add the placeholder to the page. Never the reverse. - The tag pin resolves to the release you just cut.
deploy.ymlwalks the release tags newest-first and takes the one whoseserver/typescript/packages/cli/package.jsonis versioned as the tag — that is what identifies the npm line, since the legacy JVM-onlyv7.xtags still sort above it. Read thepinned to metaobjects vX.Y.Zline in the deploy log; a wrong pin publishes a stale site with every step green. - Preview exactly what a deploy would render, without touching the site checkout:
bun run site:preview --site <site-repo>/www --strict. - Deploys automatically via
.github/workflows/deploy.ymlon push to the default branch. A push IS a deploy — there is no staging.
- Version-agnostic by design — the marketing copy carries no version numbers, so a version bump needs no change here. Only revise on a messaging change.
- Build/deploy:
npm run deploy(Eleventy build →wrangler pages deploy dist), or its.github/workflows/deploy.yml.
From the release branch, grep the previous version to catch anything this list misses:
# this repo (metaobjects) — the only repo where a version is hand-written
grep -rn "<previous-npm-version>\|<previous-maven-version>" README.md CHANGELOG.md CLAUDE.md docs/
# the coordinates the site will serve — one file, five values
jq .registries examples/showcase/site-payload.jsonAny hit outside CHANGELOG.md / historical docs/superpowers/** / spec/decisions/**
(which intentionally preserve old versions) is a doc that still needs revising.
Do not grep the site repo's www/. Its version numbers are placeholders and its
mirrors are gitignored build output, so that grep reports hits nobody should fix and
misses the one thing that can actually be wrong — which release tag the deploy pins to.