Skip to content

Update pgxntool to 2.0.3 - #15

Closed
jnasbyupgrade wants to merge 4 commits into
Postgres-Extensions:masterfrom
jnasbyupgrade:update-pgxntool-2.0.3
Closed

Update pgxntool to 2.0.3#15
jnasbyupgrade wants to merge 4 commits into
Postgres-Extensions:masterfrom
jnasbyupgrade:update-pgxntool-2.0.3

Conversation

@jnasbyupgrade

Copy link
Copy Markdown
Collaborator

Update vendored pgxntool subtree to 2.0.3

Pulls the pgxntool/ git subtree up to release 2.0.3 (canonical repo
https://github.com/Postgres-Extensions/pgxntool.git, tag release ==
tag 2.0.3, commit 1ba09874d22ec5b11d79bc6e83713ad4bb4ccc48).

After this change the pgxntool/ tree is byte-identical to canonical 2.0.3
(subtree tree object f3f0c3226c71c2b895572ca3749ad5171b017e88).

🚨 Fork divergence realigned (please confirm)

The previously-vendored pgxntool was not canonical-plus-hotpatch — it was a
diverged fork carrying extra/stale files and a .source-file test-handling
variation in base.mk. This PR resolves every pgxntool-owned file toward
canonical 2.0.3, dropping the fork-only divergence.

Fork-only files dropped (present in the old vendored copy, absent from
canonical 2.0.3):

  • pgxntool/.claude/commands/commit.md
  • pgxntool/.claude/settings.json
  • pgxntool/JSON.sh.LICENCE (British-spelling duplicate of JSON.sh.LICENSE)
  • pgxntool/make_results.sh

The fork's .source-file / test/input / test/output feature was already
unused in this repo (no such files/dirs exist here), so nothing repo-specific
was lost by dropping it.

Conflicts encountered during the subtree pull and how they were resolved
(all resolved toward canonical 2.0.3):

  • add/add: CLAUDE.md, lib.sh, pgtle.sh
  • content: HISTORY.asc, README.asc, README.html, base.mk

Canonical files newly added by the sync: pgxntool-sync.sh, run-test-build.sh,
update-setup-files.sh, verify-results-pgtap.sh.

SETUP_FILES merge result

Ran the standard post-sync SETUP_FILES 3-way reconciliation (SETUP_FILES =
_.gitignore:.gitignore, test/deps.sql:test/deps.sql; symlink
test/pgxntool -> ../pgxntool/test/pgxntool):

  • .gitignore — auto-updated from pgxntool/_.gitignore. The repo copy was
    identical to the pre-sync pgxntool version (no local modifications), so the new
    canonical version was taken cleanly.
  • test/deps.sql — pgxntool did not change this file; skipped.
  • test/pgxntool symlink — already present and pointing at the correct target.

Sanity check

make runs clean (exit 0) on the updated tree.

1ba0987 Stamp 2.0.3
1931cbe Fix pgxntool-sync remote and make it runnable without make (#37)
8176304 Stamp 2.0.2
3e142ab Fix parse_control_file: remove comments before stripping quotes (#27)
cacc301 Stamp 2.0.1
bf1db6b Fix bash 3.2 / Linux compatibility issues (#26)
62d0fcb Fix broken ifeq for --load-language=plpgsql on PG < 13 (#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 (#23)
abeb9d3 Remove .source file support from pg_regress integration (#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 (Postgres-Extensions#12)
ab7f6e2 Stamp 1.0.0
3a571ba Add pg_tle support and modernize test infrastructure (Postgres-Extensions#11)
b96ea6d Add support for Claude code; build and doc improvements (Postgres-Extensions#9)
e9c24de Fix pg_regress on versions > 12 (Postgres-Extensions#5)
REVERT: bed3604 Fix pg_regress on versions > 12 (Postgres-Extensions#5) (Postgres-Extensions#6)

git-subtree-dir: pgxntool
git-subtree-split: 1ba09874d22ec5b11d79bc6e83713ad4bb4ccc48
Pull pgxntool from https://github.com/Postgres-Extensions/pgxntool.git release
(tag 2.0.3, commit 1ba09874d22ec5b11d79bc6e83713ad4bb4ccc48).

Resolved all add/add and content conflicts toward canonical 2.0.3 and
dropped fork-only orphan files (.claude/, JSON.sh.LICENCE, make_results.sh).
The pgxntool/ subtree tree now matches canonical exactly (tree f3f0c32).
Auto-updated .gitignore from pgxntool/_.gitignore (repo copy was identical
to the pre-sync pgxntool version, so no local changes to preserve).
test/deps.sql unchanged; test/pgxntool symlink already correct.
@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@jnasbyupgrade, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 58 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 102b479d-bb53-428e-973c-3cc9c5c6ecac

📥 Commits

Reviewing files that changed from the base of the PR and between a8f77fe and fee89f7.

📒 Files selected for processing (19)
  • .gitignore
  • pgxntool/.claude/commands/commit.md
  • pgxntool/.claude/settings.json
  • pgxntool/CLAUDE.md
  • pgxntool/HISTORY.asc
  • pgxntool/JSON.sh.LICENCE
  • pgxntool/README.asc
  • pgxntool/README.html
  • pgxntool/_.gitignore
  • pgxntool/base.mk
  • pgxntool/build_meta.sh
  • pgxntool/lib.sh
  • pgxntool/make_results.sh
  • pgxntool/pgtle.sh
  • pgxntool/pgxntool-sync.sh
  • pgxntool/run-test-build.sh
  • pgxntool/setup.sh
  • pgxntool/update-setup-files.sh
  • pgxntool/verify-results-pgtap.sh
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@jnasbyupgrade

Copy link
Copy Markdown
Collaborator Author

@claude please review this PR.

@claude

claude Bot commented Jul 14, 2026

Copy link
Copy Markdown

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


Review: Update pgxntool to 2.0.3

  • Gather context (diff, commits, CLAUDE.md)
  • Understand request (review only)
  • Review diff for correctness/security/maintainability issues
  • Check build/test impact of dropped fork-only files
  • Post review feedback

I compared 3f557fe (pre-PR tip) against fee89f7 (HEAD) — 19 files, +1235/-280, matching the PR's stated diff exactly.

Summary

This is a clean vendor sync with no test_factory-specific logic touched. Everything under pgxntool/ traces to documented upstream fixes in pgxntool/HISTORY.asc (2.0.1–2.0.3), and the four dropped fork-only files are verifiably generic dev-tooling with no test_factory-specific content:

  • pgxntool/.claude/commands/commit.md / settings.json — reference a different project (pgxntool-test), not this repo.
  • pgxntool/JSON.sh.LICENCE — byte-for-byte duplicate of JSON.sh.LICENSE (confirmed via diff).
  • pgxntool/make_results.sh — superseded by the new inline results:/verify-results logic in base.mk, consistent with the upstream 2.0.0 removal of .source-file support (which this repo never used — no test/input/test/output dirs exist here).

Notable upstream behavior changes that now apply to this repo (all look correct)

  • pgxntool/pgtle.sh: exception handler fixed from undefined_object (42704) to no_data_found (P0002) to match what pgtle.uninstall_extension() actually raises; psql -v ON_ERROR_STOP=1 added so errors propagate; control-file parsing now strips trailing # comment before stripping quotes, fixing corruption of values like '1.0.0' # note; debug levels dropped from a flat 30 to graduated 1–4 (cosmetic, more usable); bash 3.2 compatibility fix via new array_not_empty() helper (replaces the invalid ${#arr[@]:-0} syntax — same bug your commit db4c018 had patched locally, now fixed correctly at the source).
  • pgxntool/base.mk: adds opt-in test-build/test/install features (auto-disabled here since test/build/ and test/install/ don't exist — verified no regression for this repo), a verify-results safeguard before make results, and a real fix for the $(call test, ...) macro (previously malformed as $($call test, ...), i.e. always evaluated as a literal string, never actually short-circuiting --load-language=plpgsql correctly for PG13+ version comparisons). Also generates a per-checkout-path unique CONTRIB_TESTDB name to avoid cross-project regression-db collisions.
  • .gitignore: two new ignore entries (test/build/sql/, test/install/schedule) — harmless since those dirs don't exist in this repo yet.

Verification limits

I was not able to run make/make test in this sandbox — git fetch and make both require approval that isn't available in this non-interactive session, so I relied on static diff review plus cross-checking each behavioral change against pgxntool/HISTORY.asc's changelog entries rather than executing the build. The PR description states make runs clean; I have no way to independently confirm that here.

Verdict

No correctness, security, or maintainability issues found in the diff itself. The fork-realignment is exactly what it claims to be — dropping generic/stale fork-only files and adopting canonical upstream fixes, several of which are strict improvements over what was previously vendored (notably the pgtle.sh exception-handling and bash 3.2 fixes). Nothing here touches sql/test_factory*.sql or repo-specific logic. Looks safe to merge, contingent on your own make test run (which you've noted passes).

jnasbyupgrade added a commit to jnasbyupgrade/test_factory that referenced this pull request Jul 15, 2026
eb84bc6 Stamp 2.1.0
9fbe6f4 Fix results ordering, control file whitespace, ENABLE_* override, debug levels (#31)
88bb4f2 Add Claude Code GitHub Actions workflows (#41)
af5bbbb ci: pass repo owners to run-tests.yml for fork-account matching (#40)
c7928af Fix repo-root guard to work inside a git worktree (#39)
b062fca ci: point reusable test workflow at @master
b6cdbfd Add CI workflows and multi-session PR guard (#33)
1ba0987 Stamp 2.0.3
1931cbe Fix pgxntool-sync remote and make it runnable without make (#37)
8176304 Stamp 2.0.2
3e142ab Fix parse_control_file: remove comments before stripping quotes (#27)
cacc301 Stamp 2.0.1
bf1db6b Fix bash 3.2 / Linux compatibility issues (#26)
62d0fcb Fix broken ifeq for --load-language=plpgsql on PG < 13 (#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 (#23)
abeb9d3 Remove .source file support from pg_regress integration (#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 (Postgres-Extensions#12)
ab7f6e2 Stamp 1.0.0
3a571ba Add pg_tle support and modernize test infrastructure (Postgres-Extensions#11)
b96ea6d Add support for Claude code; build and doc improvements (Postgres-Extensions#9)
e9c24de Fix pg_regress on versions > 12 (Postgres-Extensions#5)
REVERT: bed3604 Fix pg_regress on versions > 12 (Postgres-Extensions#5) (Postgres-Extensions#6)

git-subtree-dir: pgxntool
git-subtree-split: eb84bc6e87e21f2ced11ff1b8ddb4028b7c67c8f
jnasbyupgrade added a commit to jnasbyupgrade/test_factory that referenced this pull request Jul 16, 2026
eb84bc6 Stamp 2.1.0
9fbe6f4 Fix results ordering, control file whitespace, ENABLE_* override, debug levels (#31)
88bb4f2 Add Claude Code GitHub Actions workflows (#41)
af5bbbb ci: pass repo owners to run-tests.yml for fork-account matching (#40)
c7928af Fix repo-root guard to work inside a git worktree (#39)
b062fca ci: point reusable test workflow at @master
b6cdbfd Add CI workflows and multi-session PR guard (#33)
1ba0987 Stamp 2.0.3
1931cbe Fix pgxntool-sync remote and make it runnable without make (#37)
8176304 Stamp 2.0.2
3e142ab Fix parse_control_file: remove comments before stripping quotes (#27)
cacc301 Stamp 2.0.1
bf1db6b Fix bash 3.2 / Linux compatibility issues (#26)
62d0fcb Fix broken ifeq for --load-language=plpgsql on PG < 13 (#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 (#23)
abeb9d3 Remove .source file support from pg_regress integration (#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 (Postgres-Extensions#12)
ab7f6e2 Stamp 1.0.0
3a571ba Add pg_tle support and modernize test infrastructure (Postgres-Extensions#11)
b96ea6d Add support for Claude code; build and doc improvements (Postgres-Extensions#9)
e9c24de Fix pg_regress on versions > 12 (Postgres-Extensions#5)
REVERT: bed3604 Fix pg_regress on versions > 12 (Postgres-Extensions#5) (Postgres-Extensions#6)

git-subtree-dir: pgxntool
git-subtree-split: eb84bc6e87e21f2ced11ff1b8ddb4028b7c67c8f
jnasbyupgrade added a commit to jnasbyupgrade/test_factory that referenced this pull request Jul 29, 2026
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 (#31)
88bb4f2 Add Claude Code GitHub Actions workflows (#41)
af5bbbb ci: pass repo owners to run-tests.yml for fork-account matching (#40)
c7928af Fix repo-root guard to work inside a git worktree (#39)
b062fca ci: point reusable test workflow at @master
b6cdbfd Add CI workflows and multi-session PR guard (#33)
1ba0987 Stamp 2.0.3
1931cbe Fix pgxntool-sync remote and make it runnable without make (#37)
8176304 Stamp 2.0.2
3e142ab Fix parse_control_file: remove comments before stripping quotes (#27)
cacc301 Stamp 2.0.1
bf1db6b Fix bash 3.2 / Linux compatibility issues (#26)
62d0fcb Fix broken ifeq for --load-language=plpgsql on PG < 13 (#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 (#23)
abeb9d3 Remove .source file support from pg_regress integration (#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 (Postgres-Extensions#12)
ab7f6e2 Stamp 1.0.0
3a571ba Add pg_tle support and modernize test infrastructure (Postgres-Extensions#11)
b96ea6d Add support for Claude code; build and doc improvements (Postgres-Extensions#9)
e9c24de Fix pg_regress on versions > 12 (Postgres-Extensions#5)
REVERT: bed3604 Fix pg_regress on versions > 12 (Postgres-Extensions#5) (Postgres-Extensions#6)

git-subtree-dir: pgxntool
git-subtree-split: b67064b16ca2eb30761c078511dc8c974938480f
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