CI: fold PG12+ update-to-current check into test, rename legacy job for clarity - #78
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 |
|
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 |
|
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 |
|
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). |
…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.
…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.
720b1f2 to
f208428
Compare
|
Claude finished @jnasbyupgrade's task in 2m 36s —— View job ReviewThis is a follow-up pass after the latest push (
Previously-flagged nit: fixed. The "Derive the supported-PostgreSQL-major lists" comment (ci.yml:194-198) now correctly reads "the Mechanics re-confirmed:
No functional issues found. This looks ready to merge. |
…n narrative The comment explained what update-scenario does but never said why it's not just make test-update. Add that contrast explicitly. Also drop the "Verified locally before folding it in" paragraph -- verifying a change works before committing is the job, not something to memorialize in a comment; call it out explicitly only when there's something non-obvious about how the thing needs to be tested.
|
Claude finished @jnasbyupgrade's task in 2m 4s —— View job Tasks
ReviewThis push ( I checked the new comment's claims against
Bug: stale cross-reference left dangling by this commit. The "Test strategy" summary block still says, at ci.yml:258-259:
But Everything else re-checked clean: no other reference to "verified locally" remains anywhere in the file, the rest of the "Test strategy" block and the other job comments are unaffected by this push, and the mechanics validated in the three earlier review rounds on this PR (job gating, matrix→scalar conversion, output wiring, coverage parity) are untouched by this comment-only commit. |
The "Test strategy" summary pointed at "that step's own comment for what was verified locally before folding it in" -- but that paragraph was removed in the prior commit. Drop the dangling reference.
|
Claude finished @jnasbyupgrade's task in 1m 56s —— View job Tasks
ReviewThis push ( Re-verified the full file for consistency, not just this diff:
No functional issues found, and no remaining staleness. This looks ready to merge (pending #77 already landed, per branch history it's in the log as |
Now that the PG12+ update-to-current check has folded into the `test` job, this job's only remaining purpose is the PG10-only legacy pre-0.2.2 update-script path -- its old name no longer distinguished it from the general "update test" now living in `test`. Rename the job and its display name, and update all comment references (ci.yml and CLAUDE.md's "CI jobs" section, which described the pre-fold matrix and needed updating regardless of the rename).
|
Claude finished @jnasbyupgrade's task in 2m 20s —— View job Tasks
ReviewThis push ( Verified against the committed state (
One non-blocking heads-up, outside the diff: renaming a job's No functional issues found. This looks ready to merge (per the PR description, pending #77 already landed — confirmed in the log as |
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 thetestjob'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. The old job now only covers PG10's legacy pre-0.2.2 install/update-script checks, its one remaining reason to exist, so it's renamedlegacy-extension-update-testto say so.What changed
testjob: added a step runningbin/test_existing update-scenario cat_tools_update 0.2.2right aftermake verify-results. Its comment explains why this isn't equivalent tomake test-update— update-scenario additionally plants and proves the dependency guard and structurally diffs the result against a fresh install before running the suite.extension-update-test→legacy-extension-update-test: renamed (job key and display name), and its PG12+ matrix leg dropped 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.testandlegacy-extension-update-testentries in the "Test strategy" summary, the cross-reference inpg-tle-test's own comment, and CLAUDE.md's "CI jobs" section (which described the pre-fold matrix).Background
This (plus #77, already merged) 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 check-relkind-source && make verify-results && bin/test_existing update-scenario cat_tools_update 0.2.2passes against a scratch cluster, mirroring the new CI step: no database-name collision, dependency-guard proof fires, structural diff reports identical, full suite passesmake lintclean