Sync pgxntool to 2.2.0 - #51
Merged
jnasbyupgrade merged 8 commits intoJul 29, 2026
Merged
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
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.
jnasbyupgrade
force-pushed
the
pgxntool-2.2.0-sync
branch
from
July 29, 2026 21:49
b783780 to
e65a979
Compare
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_FILESwas renamed toEXTENSION__CURRENT_VERSION__FILESin 2.2.0 (the old name implied it listed every version file for an extension; it only ever holds the current one), soMakefile,sql.mk, and the auto-generatedcontrol.mkare updated to match.pgxntool 2.2.0 also adds a
check-stale-expectedtarget that now gatesmake test, failing if atest/expected/*.outfile has no correspondingtest/sql/*.sql. It caught two genuinely orphaned files --test/expected/name_check.outandtest/expected/name_check.out.diff, both leftover from before the test was renamed toname__check(test/sql/name__check.sql) -- which this PR removes.The dev-only
pgxntool/.claude/andpgxntool/.github/directories thatgit subtree pullbrings in are pruned, same as after the 2.1.0 sync -- except pgxntool 2.2.0'supdate-setup-files.shnow does that pruning itself instead of needing a manual follow-up commit.make,make test,make test-update, andmake verify-resultsall pass locally (fresh and update load modes).