Skip to content

Bump cat_tools floor to 0.3.0, wire CI to the git-source override - #25

Open
jnasbyupgrade wants to merge 1 commit into
Postgres-Extensions:fix-cat-tools-installfrom
jnasbyupgrade:pin-cat-tools-0.3.0-tag
Open

Bump cat_tools floor to 0.3.0, wire CI to the git-source override#25
jnasbyupgrade wants to merge 1 commit into
Postgres-Extensions:fix-cat-tools-installfrom
jnasbyupgrade:pin-cat-tools-0.3.0-tag

Conversation

@jnasbyupgrade

@jnasbyupgrade jnasbyupgrade commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Redesigned alongside PR #10's redesign, splitting cleanly: #10 is the
install-mechanism override (CAT_TOOLS_GIT_REF/CAT_TOOLS_SKIP_INSTALL,
defaults empty/unchanged); this PR is the actual version decision.

What this PR does

  • Bumps META.in.json/META.json's declared cat_tools floor from 0.2.1
    to 0.3.0 -- extension_drop.sql calls
    cat_tools.routine__parse_arg_types_text(), which only exists starting at
    cat_tools 0.3.0. PGXN's published listing is stuck at a stale 2017 0.2.1
    lacking it, so a plain pgxn install extension_drop now fails cleanly at
    dependency-resolution time instead of installing successfully and breaking
    later, obscurely, at CREATE EXTENSION time.
  • Sets CAT_TOOLS_GIT_REF: 0.3.0 at .github/workflows/ci.yml's workflow
    level
    (not per-job), so every job that builds the extension -- including
    jobs in other stacked PRs that already read this value via
    make print-CAT_TOOLS_GIT_REF (e.g. the pg_tle job) -- picks it up
    automatically with no further changes needed there.
  • Updates RELEASE.md's release-blocking guardrail: the real signal for
    "is a release actually cuttable" is now whether ci.yml's
    CAT_TOOLS_GIT_REF is set to a non-empty value, not whether the Makefile
    merely declares the variable -- it always does now, as a normally-empty
    opt-in override, so its mere existence isn't a useful signal anymore.

Verified locally (PG17)

  • CAT_TOOLS_GIT_REF=0.3.0 make install (the real path CI exercises):
    installs cat_tools 0.3.0 from git, then installs extension_drop itself,
    end to end.
  • Confirmed environment-variable precedence works as needed: an exported
    CAT_TOOLS_GIT_REF correctly overrides the Makefile's ?= (empty)
    default -- verified via make -n before and after exporting it.

@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: 4890b0ad-aa24-415f-b7d5-a6436a912195

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.

The version decision this repo actually needs, separated from PR Postgres-Extensions#10's
install-mechanism change. extension_drop.sql calls
cat_tools.routine__parse_arg_types_text(), which only exists starting
at cat_tools 0.3.0 -- PGXN's published listing is stuck at a stale
2017 0.2.1 lacking it. Bumping META's declared floor makes a plain
`pgxn install extension_drop` fail cleanly at dependency-resolution
time instead of installing successfully and breaking later at
CREATE EXTENSION time.

Sets CAT_TOOLS_GIT_REF=0.3.0 at ci.yml's workflow level (not per-job),
so every job that builds the extension -- including ones in other
stacked PRs that already read this value via
`make print-CAT_TOOLS_GIT_REF` -- picks it up automatically.

Updates RELEASE.md's release-blocking guardrail: the real signal is
now whether ci.yml's CAT_TOOLS_GIT_REF is actually set to a non-empty
value, not whether the Makefile merely declares the variable (it
always does now, as a normally-empty opt-in override).
@jnasbyupgrade
jnasbyupgrade force-pushed the pin-cat-tools-0.3.0-tag branch from fa14f58 to b9a135c Compare August 5, 2026 23:11
@jnasbyupgrade jnasbyupgrade changed the title Pin cat_tools to the 0.3.0 tag now that it exists Bump cat_tools floor to 0.3.0, wire CI to the git-source override Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Claude finished @jnasbyupgrade's task in 3m 6s —— View job


Claude's review

Todo list:

  • Gather context (diff, changed files, CLAUDE.md)
  • Understand the request (code review per /code-review)
  • Review changed files: .github/workflows/ci.yml, META.in.json, META.json, RELEASE.md
  • Post review feedback

Note on scope: the actual diff (git diff origin/fix-cat-tools-install...HEAD) doesn't touch MakefileCAT_TOOLS_GIT_REF already existed there (default empty) from the prior PR. This PR's one commit (b9a135c) instead (1) bumps the cat_tools floor in META.in.json/META.json from 0.2.10.3.0, (2) sets CAT_TOOLS_GIT_REF: 0.3.0 as a workflow-level env: in ci.yml, and (3) adds a release guardrail to RELEASE.md. The PR description's "What changed" section (which says Makefile's CAT_TOOLS_GIT_REF moved from master to 0.3.0) doesn't match this — worth updating the description so reviewers aren't looking for a Makefile change that isn't there.

Findings

1. Stale cat_tools>=0.2.1 pin left in the Makefile's pgxn install fallback — Makefile:40

This PR's purpose is bumping the cat_tools floor to 0.3.0 (per META.in.json/META.json), but the else branch of the cat_tools target still runs:

pgxn install 'cat_tools>=0.2.1' --sudo;

This branch is exactly the path RELEASE.md's new guardrail section describes reverting to once CAT_TOOLS_GIT_REF is unset again. If someone removes the CI override later without also noticing this literal string, pgxn install would happily accept a cat_tools that doesn't have routine__parse_arg_types_text (needed by sql/extension_drop.sql:38), silently reintroducing the exact bug RELEASE.md documents (PRs #6/#7). The PR's own body even quotes the intended end state as pgxn install 'cat_tools>=0.3.0' --sudo, so this looks like an oversight rather than intentional.

Fix this →

2. README.md:7 still advertises the old floor

Requires [cat_tools](https://pgxn.org/dist/cat_tools/) >= 0.2.1.

Same issue as above, user-facing this time — should read >= 0.3.0 to match META.in.json/META.json.

Fix this →

What looked right

  • ci.yml's workflow-level env: placement is correct YAML and applies to all jobs (lint, test matrix, all-checks-passed), matching the stated intent of not needing a per-job copy.
  • RELEASE.md's new "Critical" section is clear, and correctly points at checking ci.yml's actual value rather than the Makefile's variable existence — good given CAT_TOOLS_GIT_REF is now unconditionally defined (empty by default) in the Makefile.
  • META.in.json/META.json stay in sync with each other, and the X_comment update accurately reflects why 0.3.0 is now required (per the routine__parse_arg_types_text history already documented in RELEASE.md).
    · Branch: pin-cat-tools-0.3.0-tag

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