Skip to content

0.3.0 -> stable - #81

Merged
jnasbyupgrade merged 1 commit into
Postgres-Extensions:masterfrom
jnasbyupgrade:stable-pseudo-version
Aug 4, 2026
Merged

0.3.0 -> stable#81
jnasbyupgrade merged 1 commit into
Postgres-Extensions:masterfrom
jnasbyupgrade:stable-pseudo-version

Conversation

@jnasbyupgrade

@jnasbyupgrade jnasbyupgrade commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Per RELEASE.md steps 4/7: default_version moves from the just-released 0.3.0 to the permanent stable pseudo-version, so routine source edits on master regenerate sql/cat_tools--stable.sql.in instead of corrupting the frozen 0.3.0 install script.

  • cat_tools.control / META.in.json: default_version -> stable.
  • sql/cat_tools--0.3.0--stable.sql.in: seeded, empty -- the live update script future fixes extend.
  • sql/cat_tools--stable.sql.in: gitignored, not tracked (pure derived output, no real version to anchor it).
  • HISTORY.asc: new STABLE section opened for the next release.
  • RELEASE.md: clarified (once, in step 4) that .sql.in install scripts are always tracked and stable is the one exception -- step 7 now just references that instead of restating it.
  • CLAUDE.md: added rule 6 to "SQL file conventions" cross-referencing this exception to pgxntool's own "don't gitignore a skipped version" guidance, since stable isn't a skipped version (a one-time transient case) but a permanently-current one (would be re-diffed every commit if tracked, for no test-coverage gain).

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5f367d94-1702-4e02-9c9c-13c6e001e4bf

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @jnasbyupgrade's task in 2m 49s —— View job


Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

Reviewed the mechanical version-flip (cat_tools.control, META.in.json/META.jsonstable), the new HISTORY.asc STABLE section, the new accumulator update script sql/cat_tools--0.3.0--stable.sql.in, and the generated sql/cat_tools--stable.sql.in:

  • sql/cat_tools--stable.sql.in is byte-identical to sql/cat_tools--0.3.0.sql.in (confirmed via diff) — expected, since no source content has changed since the 0.3.0 release yet.
  • Naming (cat_tools--<prev>--<new>.sql.in) and structure match the existing update-script convention (e.g. sql/cat_tools--0.2.3--0.3.0.sql.in).
  • META.in.json/META.json were updated together with matching version fields, consistent with pgxntool's "edit META.in.json, META.json is generated from it" convention.
  • HISTORY.asc's new STABLE section matches the wording prescribed in RELEASE.md's step 7.
  • Per CLAUDE.md's "SQL file conventions" Add support for Postgres 12 - 17 #5, no version-specific file was hand-edited — the new stable install script and the update script are both newly generated/added, and the frozen 0.3.0 files are untouched.

Note: I wasn't able to run make/git write commands in this sandboxed session (approval-gated), so I relied on static diff review plus the extensive verification already documented in the PR description (make verify-results, update-path testing, structural diff, checksum comparison).

@jnasbyupgrade
jnasbyupgrade force-pushed the stable-pseudo-version branch from c23104d to 1cd205f Compare August 4, 2026 23:06
@jnasbyupgrade jnasbyupgrade changed the title Adopt a permanent stable pseudo-version between releases 0.3.0 -> stable Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

Claude finished @jnasbyupgrade's task in 4m 5s —— View job


Reviewing PR #81

  • Gather context (diff, changed files, CLAUDE.md rules)
  • Review mechanical version-flip changes (cat_tools.control, META.in.json/META.json)
  • Review HISTORY.asc new STABLE section
  • Review new update script sql/cat_tools--0.3.0--stable.sql.in
  • Review generated sql/cat_tools--stable.sql.in handling
  • Review RELEASE.md and sql/.gitignore changes
  • Post final review feedback

Code review

PR description is now out of sync with the diff (needs fixing before merge). The
description says:

sql/cat_tools--stable.sql.in is generated and tracked like any other per-version
install script.

but the current diff does the opposite — sql/.gitignore (+4 lines) adds
cat_tools--stable.sql.in to the ignore list, and the file is not tracked. This isn't a
stale leftover from a prior push either — RELEASE.md's new wording is internally
consistent with the gitignored approach (RELEASE.md:75: "...unrelated to
sql/cat_tools--stable.sql.in, which is gitignored... precisely because it's pure derived
output with no independent value..."). So the code was intentionally revised since the
description was written, and the description's opening paragraph — which, per this repo's
CLAUDE.md, becomes the squash commit message — needs to be updated to match, or the merged
commit message will describe behavior the code doesn't have.

Worth a second look: this deviates from pgxntool's own documented convention, though for
articulable reasons.
pgxntool/README.asc ("Don't .gitignore a Skipped Version — rm
It Once", around line 405) explicitly says not to .gitignore an omitted version's
generated install script, and to rm it once instead — a .gitignore entry is framed as
"perpetual clutter" for a file that's normally only transiently present after a version
bump. stable doesn't fit that description cleanly (it's not a one-time transient leftover
— it's the permanently current version between releases, so unlike a normal skipped
version it would be re-regenerated and re-diffed on every single source edit if tracked,
with zero incremental test-coverage value since CI already builds+tests a fresh install
from source on every push regardless of whether the copy is committed). That reasoning is
sound, but:

  • CLAUDE.md's "SQL file conventions" section (rules 0–4) doesn't mention this exception at
    all — a reader following just CLAUDE.md would expect version-specific install scripts to
    be tracked by default and could reasonably flag the new sql/.gitignore line as a
    violation of pgxntool's convention. Given pgxntool's README has an explicit callout that
    this exact topic ("CAUTION: This is especially relevant for AI coding agents...") is easy
    to get wrong without the rationale spelled out, it'd be worth adding a short note to
    CLAUDE.md's SQL file conventions cross-referencing the sql/.gitignore comment/RELEASE.md
    rationale, so this doesn't need to be re-derived (or mistakenly "fixed") later.

Everything else checks out:

  • cat_tools.control / META.in.json / META.json version flips to stable are
    consistent with each other, and META.json was regenerated to match META.in.json
    (pgxntool convention: never hand-edit META.json).
  • HISTORY.asc's new top STABLE section is correctly placed above the frozen 0.3.0
    entry.
  • sql/cat_tools--0.3.0--stable.sql.in is a genuinely empty file (0 bytes) — correct, since
    no source changes have landed since 0.3.0 shipped, and per CLAUDE.md's terminology rule
    this is an "update script," tracked per rule 3.
  • No frozen sql/cat_tools--0.3.0.sql[.in] files were touched, consistent with CLAUDE.md
    rule 5 (never hand-edit a non-current version file) and pgxntool's "never hand-edit an old
    version file" guidance.
  • .gitignore's new entry is scoped precisely to cat_tools--stable.sql.in (not a broader
    glob), so it doesn't accidentally hide the 0.3.0--stable update script or any other
    tracked per-version file.

I wasn't able to run make/git write commands in this sandboxed session (approval-gated
for some git plumbing commands), so this is a static review of the diff plus the extensive
verification already documented in the PR description (make verify-results, update-path
testing, structural diff, checksum comparison).

@jnasbyupgrade
jnasbyupgrade force-pushed the stable-pseudo-version branch from 1cd205f to a5a3d99 Compare August 4, 2026 23:17
This is the same stamping mechanics as any version bump, just to a permanent `stable` token instead of a real number, so ordinary source edits on master regenerate `sql/cat_tools--stable.sql.in` instead of corrupting the just-released `0.3.0` install script. The one new wrinkle: `sql/cat_tools--stable.sql.in` is pure derived output (identical to cat_tools.sql.in) with no real version to anchor it, so it's gitignored rather than tracked, unlike a real release's install script.

`sql/cat_tools--0.3.0--stable.sql.in` is the live update script future fixes extend; it starts empty since nothing has changed since 0.3.0. RELEASE.md's step 7 cleanup bullet was also fixed -- it wrongly implied removing a released version's own tracked install file, which should never happen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jnasbyupgrade
jnasbyupgrade force-pushed the stable-pseudo-version branch from a5a3d99 to 56f7efe Compare August 4, 2026 23:21
@jnasbyupgrade
jnasbyupgrade merged commit 3a1b1a4 into Postgres-Extensions:master Aug 4, 2026
1 of 2 checks passed
@jnasbyupgrade
jnasbyupgrade deleted the stable-pseudo-version branch August 4, 2026 23:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant