Lift the pre-release freeze — releases resume and the plugin contract goes live #82

Merged
lilleman merged 3 commits from release-v0.1.0 into main 2026-08-20 22:49:24 +02:00
Owner

Turns the pre-announcement regime off ahead of tagging v0.1.0, and cuts the version count from three to two.

Lifting the freeze

  • auto-release loses its AUTO_RELEASE variable gate and runs again. That variable was never actually set, so the job had been skipping.
  • HOST_API_VERSION stops being frozen at 1.0.0; from now on it moves per README → Contract versioning. The constant stays 1.0.0 — that is the contract as released.
  • Drops the two deviation bullets that were explicitly time-boxed to the freeze, and re-anchors the rules that referenced it. Both couplings the release bullet carried already live in mirror.yml and README → CI/CD.
  • README-dockerhub.md pinned larvit/plainpages:0.0.2, a tag that no longer exists; now 0.1.0.

Fewer sources of truth

  • Removes the version field from package.json and e2e-tests/package.json. Both are private, unpublished, read by nothing, and never written back to by the release path — they would have gone stale the first time auto-release cut a tag. npm documents name/version as optional when not publishing. Verified: npm ci still works in both the app image and the Playwright runner.
  • The release version now lives in exactly one place (the git tag), and the plugin contract in one other (HOST_API_VERSION).

Scoping Release-Bump
updateType rates the dependency's own semver jump, not its effect on Plainpages, and the trailer was unscoped — so Renovate updating itself bumped the product's minor. It is now an allowlist over the surfaces that reach a running Plainpages: the root manifest's runtime deps, the Dockerfile base, and compose.yml's services. devDependencies, E2E, CI tooling and examples/** carry no trailer and ride the next patch.

Verified without waiting on a Renovate night: the config validator is strict (it rejects unknown packageRules keys by path), and a full --dry-run against a copy of the repo confirms the real manager/packageFile/depType of all 31 extracted deps — 18 escalate, 13 do not. The one genuinely pending update, renovate/renovate 44.33.2 → 44.36.0, matches no rule, which is the intended outcome.

node is pinned to one version across the Dockerfile, dev, E2E and CI, and Renovate moves them in a single branch whose commitBody would otherwise depend on upgrade order — an explicit rule makes any node bump product-affecting.

Note on merge order: once this lands, auto-release is live. Tag v0.1.0 before the next Renovate run, or an empty tag list resolves to v0.0.0 and the first release becomes v0.0.1.

Turns the pre-announcement regime off ahead of tagging v0.1.0, and cuts the version count from three to two. **Lifting the freeze** - `auto-release` loses its `AUTO_RELEASE` variable gate and runs again. That variable was never actually set, so the job had been skipping. - `HOST_API_VERSION` stops being frozen at 1.0.0; from now on it moves per README → Contract versioning. The constant stays 1.0.0 — that is the contract as released. - Drops the two deviation bullets that were explicitly time-boxed to the freeze, and re-anchors the rules that referenced it. Both couplings the release bullet carried already live in `mirror.yml` and README → CI/CD. - `README-dockerhub.md` pinned `larvit/plainpages:0.0.2`, a tag that no longer exists; now 0.1.0. **Fewer sources of truth** - Removes the `version` field from `package.json` and `e2e-tests/package.json`. Both are `private`, unpublished, read by nothing, and never written back to by the release path — they would have gone stale the first time `auto-release` cut a tag. npm documents name/version as optional when not publishing. Verified: `npm ci` still works in both the app image and the Playwright runner. - The release version now lives in exactly one place (the git tag), and the plugin contract in one other (`HOST_API_VERSION`). **Scoping Release-Bump** `updateType` rates the *dependency's* own semver jump, not its effect on Plainpages, and the trailer was unscoped — so Renovate updating **itself** bumped the product's minor. It is now an allowlist over the surfaces that reach a running Plainpages: the root manifest's runtime deps, the `Dockerfile` base, and `compose.yml`'s services. devDependencies, E2E, CI tooling and `examples/**` carry no trailer and ride the next patch. Verified without waiting on a Renovate night: the config validator is strict (it rejects unknown `packageRules` keys by path), and a full `--dry-run` against a copy of the repo confirms the real `manager`/`packageFile`/`depType` of all 31 extracted deps — 18 escalate, 13 do not. The one genuinely pending update, `renovate/renovate` 44.33.2 → 44.36.0, matches no rule, which is the intended outcome. `node` is pinned to one version across the Dockerfile, dev, E2E and CI, and Renovate moves them in a single branch whose `commitBody` would otherwise depend on upgrade order — an explicit rule makes any node bump product-affecting. **Note on merge order:** once this lands, `auto-release` is live. Tag v0.1.0 before the next Renovate run, or an empty tag list resolves to `v0.0.0` and the first release becomes v0.0.1.
lilleman added 1 commit 2026-08-20 22:02:37 +02:00
lilleman added 1 commit 2026-08-20 22:04:25 +02:00
Rewrap the auto-release paragraph
CI / full-gate (push) Successful in 2m58s
24007b15f3
lilleman added 1 commit 2026-08-20 22:43:39 +02:00
Scope Release-Bump to the surfaces that ship, and drop the inert package.json versions
CI / full-gate (push) Successful in 3m7s
Mirror / github-mirror (push) Successful in 6s
Release / retag-image (push) Successful in 21s
1f61235e88
lilleman merged commit 1f61235e88 into main 2026-08-20 22:49:24 +02:00
lilleman deleted branch release-v0.1.0 2026-08-20 22:49:24 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: larvit/plainpages#82