Repository navigation
v0.5.25
v0.5.25 — internal version label matches the tag (6 sources of truth aligned)
Every release tag v0.5.2..v0.5.23 shipped an OCI artifact whose
pgrdf.control had default_version = '0.5.1' and whose INSTALL
layout named the SQL file pgrdf--0.5.1.sql, regardless of the
GHCR tag. The .so was current per-release code, so
CREATE EXTENSION pgrdf; (no version pin) worked and installed
as 0.5.1. But CREATE EXTENSION pgrdf VERSION '0.5.X' for X!=1
failed with "extension has no installation script for version".
OCI-GERMINATION surfaced this on 2026-05-30.
v0.5.24 was the first attempted fix — orphaned because the
release.yml make dist (PGXN packaging) step caught a SIXTH
source of truth I'd missed: META.json. v0.5.25 is the first
release with ALL six sources aligned.
- Cargo.toml
version - pgrdf.control
default_version - compose/compose.yml SQL bind-mount line
- tests/regression/expected/00-smoke.out hardcoded literals
- META.json
version+provides.pgrdf.version(BOTH) - docs/06-installation.md + compose/README.md example output
All six at 0.5.25 in this release.
- Gate 0 (ci.yml regression on every push): verify-installed-
artifacts + 00-smoke catch Cargo.toml ↔ pgrdf.control ↔
compose.yml drift by actually using them. Always-on; ran on
EVERY push during the bumps and caught each missed source
one at a time. - Gate 1 (release.yml pre-build): Cargo.toml + pgrdf.control +
META.json (both fields) must equal ${GITHUB_REF_NAME#v}.
Aborts build before cargo pgrx package runs. - Gate 2 (release.yml post-build): SQL filename + control's
default_version in the Repacked tarball must equal the tag.
Aborts upload otherwise. - Gate 3 (oci-publish.yml post-publish smoke): pulls just-
published artifact via ORAS, boots clean postgres:17.4-
bookworm, runsCREATE EXTENSION pgrdf VERSION '0.5.25',
asserts pg_extension.extversion == 0.5.25 AND
pgrdf.version() == 0.5.25. Fail-fast: if smoke fails,
update-latest-md.yml never fires, LATEST.md stays at prior
version, the wrong-labeled tag exists as an orphan GHCR
digest but never gets advertised.
The Makefile's existing check-meta target (line 38) was
itself a gate — it's what caught the v0.5.24 META.json drift.
Now also surfaced at Gate 1 (pre-build, faster error).
sql/pgrdf--0.5.1--0.5.25.sql ships as a no-op bridge.
Existing 0.5.1-labeled installs can:
ALTER EXTENSION pgrdf UPDATE TO '0.5.25';
The pgrdf schema is byte-identical between 0.5.1 and 0.5.25;
the bridge exists only to make PostgreSQL accept the upgrade
path.
NOT retroactively re-cut. Per [[only-forward-never-revert]]:
- v0.5.1..v0.5.23 stay as historically-orphaned GHCR tags
with the wrong internal label. - v0.5.24 stays as a historically-orphaned GHCR tag where
build (17, *) succeeded but the release-overall job failed
at PGXN. The OCI artifacts for v0.5.24 never published. - v0.5.25 is the first release with the correct internal label
across all six sources AND the first to ship through the
full 4-gate stack cleanly.
_WIP/NOTIFIES.oci-germination.0.5.23.internal-version-stuck-at-
0-5-1.md is updated to reference v0.5.25. The user will pass
it to OCI-GERMINATION once this v0.5.25 chain settles green
and the live artifact has been re-verified end-to-end.
31 / 92 unchanged. This is hygiene + structural prevention,
not a roadmap task closure.
Refs: OCI-GERMINATION report 2026-05-30; PROVENANCE.md Rule 7;
_WIP/NOTIFIES.oci-germination.0.5.23.internal-version-stuck-at-
0-5-1.md