CI: fold PG12+ update-to-current check into the test job, shrink extension-update-test to PG10-only - #78
Conversation
…le-upgrade-test The "Test strategy" summary listed job names in a manually space-padded "name -- description" column, which read like a Makefile target list or a formatted spec table rather than a plain comment. Restructured each entry as a small heading (the job name alone, minimally indented) with its description as ordinary wrapped prose underneath. Also documented pg-tle-test and pg-tle-upgrade-test, which this summary never mentioned even though both jobs already exist (added in PR Postgres-Extensions#47) -- and trimmed wordiness in the `test` job's own step comment. Comment-only: no job, matrix, or CI-behavior change.
…k extension-update-test to PG10-only extension-update-test's PG12+ leg ran on the exact same PostgreSQL majors as the `test` job (supported_pg, 12-18), but as its own matrix job: its own runner, container boot, checkout, apt-get, and `make install`, paid again per major, for a check that can run as one more step inside a container the `test` job already has running, already checked out, and already has cat_tools installed on disk in (installcheck, a TEST_DEPS prerequisite, already ran as a side effect of that job's own verify-results call). Folded `bin/test_existing update-scenario cat_tools_update 0.2.2` in as an additional call in the `test` job's "Test on PostgreSQL" step instead. Verified before folding it in, not assumed: ran `make check-relkind-source && make verify-results && bin/test_existing update-scenario cat_tools_update 0.2.2` in the same shell/cluster session (mirroring the new CI step exactly) against a scratch cluster. Confirmed no database-name collision (pg_regress's own throwaway db is named independently from `cat_tools_update`), the dependency-guard proof fires (twice -- once right after CREATE EXTENSION, once again after the full suite run), the structural-diff check (bin/structural_diff, from PR Postgres-Extensions#55) fires and reports the updated database structurally identical to a fresh install, and the full suite passes -- exit 0 end to end. extension-update-test now runs PG10 only, with no matrix at all (single source of truth: needs.changes.outputs.legacy_pg, not a hardcoded "10") -- its entire remaining purpose is the pre-0.2.2 legacy-script checks, the only place those scripts still load. Removed the now-dead `if: matrix.pg != '10'` / `if: matrix.pg == '10'` guards throughout that job (nothing left to guard against once there's no other leg) and the "Update 0.2.2 -> current" step (moved above). The `changes` job's `update_pg` output/derivation is removed too -- it had exactly one consumer, and that consumer is gone. Only the minimal comment updates needed to describe this diff: the `test` and `extension-update-test` entries in the Test strategy summary (added previously in Postgres-Extensions#77, which this is based on), and the cross-references in `pg-tle-test`'s own comment that pointed at extension-update-test for the update path it no longer covers. No coverage lost: the PG12+ update-to-current check still runs on the exact same 7 majors it always did (moved, not removed), the PG10 legacy checks are byte-for-byte unchanged, and every other job is untouched.
|
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 |
|
Claude finished @jnasbyupgrade's task in 3m 36s —— View job Claude finished the reviewTodo list
ReviewI traced through the whole workflow (not just the diff) to check the restructuring is coherent. The core mechanics check out:
One nit: the "Derive the supported-PostgreSQL-major lists" step's comment block ( Everything else — the |
Each entry's job name sat alone on its own line, unindented -- reads like a
Makefile target declaration rather than a reference to a CI job name, and
this repo's own Makefile has real hyphenated targets (test-long,
test-update, ...) a reader could easily conflate these with. Only one of
these names (test) even has a corresponding make target; formatting the
rest identically was actively misleading. Reworded each into an ordinary
prose sentence ("The `test` job runs...") so the name reads as a backticked
reference inside a sentence, not a declaration.
…scenario # Conflicts: # .github/workflows/ci.yml
|
Claude finished @jnasbyupgrade's task in 2m 48s —— View job Tasks
ReviewI re-verified the full workflow against the PR description (not just the diff). The mechanics are sound:
Still-open nit from the earlier pass on this PR: the "Derive the supported-PostgreSQL-major lists" step's comment ( One additional observation (not a bug, worth being aware of): folding the update-to-current check into Everything else — the |
…e-PG-lists comment extension-update-test no longer has a strategy: matrix (it's a single fixed PG10 leg now), so the "changes" job's own comment calling it a "matrix" alongside `test`/pg-upgrade-stepwise was stale. Also folded in the `pg-tle-test` mention this comment never had, matching the same job list `test`'s own consumers now cover.
|
Claude finished @jnasbyupgrade's task in 2m 21s —— View job Tasks
ReviewThis is the third pass on this PR (two earlier automated reviews already ran on prior pushes). The one nit those raised — stale Re-verified the mechanics from scratch against the current file, not just the diff:
Everything is internally consistent and matches the PR description. No functional issues found — this looks ready to merge (pending #77 landing first, per the PR description, so the diff shrinks to just the functional commit). |
extension-update-test's PG12+ leg (CREATE EXTENSION at 0.2.2, ALTER EXTENSION UPDATE to current, structural diff against a fresh install, then the full suite) used to run as its own separate matrix job. It's now folded into the
testjob's existing step instead, since that job already has a container/checkout/install running for the same PostgreSQL majors — a separate job was paying for all of that again for no added coverage.extension-update-testitself now only covers PG10's legacy pre-0.2.2 install/update-script checks, its one remaining reason to exist.Depends on #77
This branch is stacked on #77 (comment-only reformat of the "Test strategy" summary), merged first so this PR's own diff stays small and doesn't fight with that rewrite. Until #77 merges, this PR's diff includes both commits; once #77 merges into
master, this branch can be rebased and the diff will shrink to just the functional commit. Please merge #77 first.What changed
testjob: added a step runningbin/test_existing update-scenario cat_tools_update 0.2.2right aftermake verify-results.extension-update-test: dropped its PG12+ matrix leg entirely. It now runs on a single fixed major (PG10, vianeeds.changes.outputs.legacy_pg— single source of truth, not a hardcoded'10') with nostrategy: matrix:at all, and the now-deadif: matrix.pg != '10'/== '10'guards are gone.changesjob: removed theupdate_pgoutput/derivation — its only consumer is gone.testandextension-update-testentries in the "Test strategy" summary (CI: reformat Test strategy comment, document pg-tle-test/pg-tle-upgrade-test #77's reformatted version), and the cross-reference inpg-tle-test's own comment that pointed at extension-update-test for the update path it no longer covers.How it was verified
Ran
make check-relkind-source && make verify-results && bin/test_existing update-scenario cat_tools_update 0.2.2in one shell/cluster session (mirroring the new CI step exactly) against a scratch cluster before folding it in. Confirmed:cat_tools_update)Background
This (plus #77) is a clean rebuild, on current
master, of the schema-independent CI-fold value that used to be PR #75 — split at the maintainer's request into a docs-only PR (#77) and this functional-only one, since mixing them muddied review. #75 itself is now superseded/closed; see its closing comment. That work in turn traces back to PR #54 (closed without merging: its actual subject, aTEST_SCHEMAtest-harness dimension, turned out to be a non-starter since cat_tools' control file pinsrelocatable = false/schema = 'cat_tools').Test plan
make lintclean