Skip to content

Sync pgxntool to 2.2.0 - #51

Merged
jnasbyupgrade merged 8 commits into
Postgres-Extensions:masterfrom
jnasbyupgrade:pgxntool-2.2.0-sync
Jul 29, 2026
Merged

Sync pgxntool to 2.2.0#51
jnasbyupgrade merged 8 commits into
Postgres-Extensions:masterfrom
jnasbyupgrade:pgxntool-2.2.0-sync

Conversation

@jnasbyupgrade

Copy link
Copy Markdown
Contributor

Pulls the latest pgxntool release (2.2.0, up from 2.1.0) via git subtree pull, and updates the one place cat_tools referenced pgxntool internals directly: EXTENSION_VERSION_FILES was renamed to EXTENSION__CURRENT_VERSION__FILES in 2.2.0 (the old name implied it listed every version file for an extension; it only ever holds the current one), so Makefile, sql.mk, and the auto-generated control.mk are updated to match.

pgxntool 2.2.0 also adds a check-stale-expected target that now gates make test, failing if a test/expected/*.out file has no corresponding test/sql/*.sql. It caught two genuinely orphaned files -- test/expected/name_check.out and test/expected/name_check.out.diff, both leftover from before the test was renamed to name__check (test/sql/name__check.sql) -- which this PR removes.

The dev-only pgxntool/.claude/ and pgxntool/.github/ directories that git subtree pull brings in are pruned, same as after the 2.1.0 sync -- except pgxntool 2.2.0's update-setup-files.sh now does that pruning itself instead of needing a manual follow-up commit.

make, make test, make test-update, and make verify-results all pass locally (fresh and update load modes).

@coderabbitai

coderabbitai Bot commented Jul 29, 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: 812f2677-5f55-475f-a608-8493130b71ff

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.

b67064b Release 2.2.0 (#77)
d949d6d Fix stale README/CLAUDE.md docs; rename internal-only test shim (#76)
6d7822c ci: grant actions:write so bun cache save succeeds (#75)
2738f59 README.asc: fix stale docs, document undocumented API surface (#74)
d1d3bee Add make pgxntool-version to print the embedded pgxntool version (#73)
493a0f8 Fix parallel-build SQL corruption, remote hardcoding, and add safety checks (#61)
3b0e3de Fix make pgtle PGTLE_VERSION=X being silently ignored (#66)
21b35ef ci: skip paired-test-PR requirement for doc-only PRs (#71)
55efd03 Rename EXTENSION_VERSION_FILES to EXTENSION__CURRENT_VERSION__FILES (#69)
9d0a856 Fix pgtle.sh rejecting non-numeric version aliases like 'stable' (#57) (#63)
9c2f75f Docs: versioned SQL file tracking tradeoffs and update-testing pattern (#60)
c38cf2a ci: never check out fork PR head in claude-code-review pull_request_target job (#70)
aab8f2b pgtle_versions.md: fix wrong uninstall_extension() version claim (#59)
e2c9174 README.asc: make tag creates a git tag, not a branch (#58)
eb84bc6 Stamp 2.1.0
9fbe6f4 Fix results ordering, control file whitespace, ENABLE_* override, debug levels (Postgres-Extensions#31)
88bb4f2 Add Claude Code GitHub Actions workflows (Postgres-Extensions#41)
af5bbbb ci: pass repo owners to run-tests.yml for fork-account matching (Postgres-Extensions#40)
c7928af Fix repo-root guard to work inside a git worktree (Postgres-Extensions#39)
b062fca ci: point reusable test workflow at @master
b6cdbfd Add CI workflows and multi-session PR guard (Postgres-Extensions#33)
1ba0987 Stamp 2.0.3
1931cbe Fix pgxntool-sync remote and make it runnable without make (Postgres-Extensions#37)
8176304 Stamp 2.0.2
3e142ab Fix parse_control_file: remove comments before stripping quotes (Postgres-Extensions#27)
cacc301 Stamp 2.0.1
bf1db6b Fix bash 3.2 / Linux compatibility issues (Postgres-Extensions#26)
62d0fcb Fix broken ifeq for --load-language=plpgsql on PG < 13 (Postgres-Extensions#24)
121f0b3 Stamp 2.0.0
ad3ca7e Remove .source support; add test/install, test/build, and verify-results (Postgres-Extensions#18)
c010cf8 Fix bash 3.2 compatibility (Postgres-Extensions#23)
abeb9d3 Remove .source file support from pg_regress integration (Postgres-Extensions#22)
08c1879 Stamp 1.1.2
6e0dad2 Fix double --dbname bug that defeated unique test database names
639756c Stamp 1.1.1
6ba3176 Fix pg_tle exception handler and empty upgrade files (Postgres-Extensions#15)
3b8cb2a Stamp 1.1.0
550a901 Remove commit.md (maintained in pgxntool-test)
d73ca93 Add unique test database names to prevent conflicts (Postgres-Extensions#13)
9b344be Add update-setup-files.sh for 3-way merging after pgxntool-sync (#12)
ab7f6e2 Stamp 1.0.0
3a571ba Add pg_tle support and modernize test infrastructure (#11)
b96ea6d Add support for Claude code; build and doc improvements (#9)
e9c24de Fix pg_regress on versions > 12 (#5)

git-subtree-dir: pgxntool
git-subtree-split: b67064b16ca2eb30761c078511dc8c974938480f
…release

Update EXTENSION_VERSION_FILES references in Makefile/sql.mk to the
renamed EXTENSION__CURRENT_VERSION__FILES (pgxntool 2.2.0).
update-setup-files.sh now does this pruning itself (pgxntool 2.2.0), matching
the precedent from the 2.1.0 sync (previously done as a manual follow-up commit).
…or pgxntool 2.2.0; remove stale name_check.out cruft

pgxntool 2.2.0 renamed EXTENSION_VERSION_FILES to EXTENSION__CURRENT_VERSION__FILES
(the old name implied it listed every version file for an extension; it only ever
holds the current one). Updates Makefile, sql.mk, and RELEASE.md references, and
regenerates control.mk (auto-generated by pgxntool's control.mk.sh).

test/expected/name_check.out and its .diff were orphaned leftovers from before
the test was renamed to name__check (test/sql/name__check.sql); pgxntool 2.2.0's
new check-stale-expected target caught them and now gates make test on it.
pgxntool 2.2.0's check-stale-expected depends directly on installcheck and is
appended to TEST_DEPS before test-build/install/installcheck. Make resolves
that edge first, running the full suite before the extension is ever
installed on a fresh tree (reproduced in CI: schema "cat_tools" does not
exist for every test). Verified locally by removing the installed extension
files and cat_tools--*.control, then running a clean make test.

Filed upstream: Postgres-Extensions/pgxntool#79
…l's PGTLE_VERSION

Both pg-tle-test and pg-tle-binary-upgrade jobs set a job-level env var named
PGTLE_VERSION to pick which pg_tle release to git-clone and build -- unrelated
to pgxntool's own PGTLE_VERSION make variable (which pgtle.sh uses to select
which SQL version range to generate). GitHub Actions job env vars are real
process environment variables, so this leaked into every make invocation in
the job, including make run-pgtle.

pgxntool 2.2.0 fixed make pgtle failing to pass PGTLE_VERSION through to
pgtle.sh (it previously silently generated all ranges regardless), which
exposed this collision: make run-pgtle now honors the leaked PGTLE_VERSION=
1.5.2 and generates only pg_tle/1.5.2/, not the pg_tle/1.5.0+/ directory
run-pgtle's version-range lookup actually expects for pg_tle 1.5.2. Renamed
to PG_TLE_RELEASE. Reproduced and verified the fix locally: PGTLE_VERSION=1.5.2
make pgtle generates only pg_tle/1.5.2/; unset, it generates all three
canonical ranges including pg_tle/1.5.0+/.
…ng pg_tle bypass

My earlier fix (installcheck: install, unconditional) broke bin/test_existing's
TEST_EXISTING_DEPLOY=pgtle run_suite path, which deliberately calls testdeps +
installcheck directly to avoid ever filesystem-installing cat_tools. Reordering
TEST_DEPS instead does not work either: test's prerequisite list is expanded
immediately at the `test: $(TEST_DEPS)` rule's parse time inside base.mk,
before sql.mk ever runs, so reassigning TEST_DEPS afterward has no effect --
confirmed via `make test -d`, which still considered check-stale-expected
(and its installcheck prerequisite) before test-build/install even on the
reordered variable.

Guard the installcheck:install edge with TEST_EXISTING_DEPLOY: everywhere else
(plain `make test`, and `test_existing`'s non-pgtle test/verify-results
calls) still gets the fix; the pg_tle bypass, which never reaches
check-stale-expected in the first place (it never calls the `test` target),
keeps skipping install. Verified both paths with `make -p`: installcheck's
prerequisite list includes `install` normally, and omits it under
TEST_EXISTING_DEPLOY=pgtle.
…nvention

pgxntool/_.gitignore (the template setup.sh copies out as a project's
.gitignore, and update-setup-files.sh keeps 3-way-merged on every sync)
already lists both meta.mk and control.mk under 'Generated make files' --
and cat_tools' own .gitignore already matches that. But control.mk was
tracked in git anyway (predating that ignore rule, never cleaned up with
git rm --cached), so .gitignore had no effect on it and it kept getting
committed on top, including by the EXTENSION_VERSION_FILES rename earlier
in this PR. base.mk regenerates it via control.mk.sh on every build and
-includes it, so it's safe to stop tracking. Verified a clean checkout
(rm control.mk; make clean) still builds, regenerates it, and passes
the full suite.
@jnasbyupgrade
jnasbyupgrade merged commit 1788dc0 into Postgres-Extensions:master Jul 29, 2026
36 checks passed
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