Add PG19 (19beta3) to the CI images - #222
Merged
Merged
Conversation
PG19 beta1 is published on apt.postgresql.org under the per-major "19" component for bookworm, so enable that component in the extbuilder, exttester, failtester and pgupgradetester images and add PG19=19~beta1 to PG_VERSIONS (the image tag renders as 19beta1). Also bump the PG16/17/18 minors to 16.14 / 17.10 / 18.4. Exclude PG19 from the citus-upgrade image set (no released Citus supports PG19 yet) by filtering it out of CITUS_UPGRADE_PG_VERSIONS by name instead of relying on head(1) line ordering.
postgresql-19-wal2json is not yet published on apt for PG19 beta1, which broke the exttester image build. Split wal2json into its own best-effort apt-get install so the image builds before the package lands, while released majors still get it.
ibrahim halatci (ihalatci)
added a commit
to citusdata/citus
that referenced
this pull request
Jun 13, 2026
Enable PG19beta1 across the downstream test matrices now that the build job proves it compiles: - test-citus, test-citus-failure, test-citus-cdc: add pg19_version - test-arbitrary-configs: add pg19_version to the matrix - test-pg-upgrade: add 18->19 and 16->19 upgrade pairs - params: bump pg19_version/upgrade_pg_versions 19devel -> 19beta1 - params: point image_suffix at the PG19beta1 the-process images (-dev-33b3cf5, built from citusdata/the-process#222) test-citus-upgrade is left at PG16/PG17 (no released Citus supports PG19). Closes #8615
ibrahim halatci (ihalatci)
added a commit
to citusdata/citus
that referenced
this pull request
Jun 16, 2026
Enable PG19beta1 across the downstream test matrices now that the build job proves it compiles: - test-citus, test-citus-failure, test-citus-cdc: add pg19_version - test-arbitrary-configs: add pg19_version to the matrix - test-pg-upgrade: add 18->19 and 16->19 upgrade pairs - params: bump pg19_version/upgrade_pg_versions 19devel -> 19beta1 - params: point image_suffix at the PG19beta1 the-process images (-dev-33b3cf5, built from citusdata/the-process#222) test-citus-upgrade is left at PG16/PG17 (no released Citus supports PG19). Closes #8615
ibrahim halatci (ihalatci)
added a commit
to citusdata/citus
that referenced
this pull request
Jun 18, 2026
Turns on the PG19beta1 columns across the downstream Build & Test matrices now that the `build` job already proves PG19 compiles under `-Werror` and the ruleutils port (#8602) lands the runtime/regress fixes those suites depend on. ### Changes (`.github/workflows/build_and_test.yml`) - `test-citus`, `test-citus-failure`, `test-citus-cdc`: add `pg19_version` to the `pg_versions` array. - `test-arbitrary-configs`: add `pg19_version` to `matrix.pg_version`. - `test-pg-upgrade`: add the `18 -> 19` and `16 -> 19` upgrade pairs (adjacent + oldest -> newest, consistent with the existing 16->17 / 17->18 / 16->18 set). - `params`: bump `pg19_version` / `upgrade_pg_versions` from `19devel` to `19beta1`, and point `image_suffix` at the PG19beta1-enabled the-process images (`-dev-33b3cf5`, built from citusdata/the-process#222). ### Deliberately not changed - `test-citus-upgrade` stays at PG16/PG17 — no released Citus binary supports PG19, so there is nothing to upgrade *from*. ### Dependencies - Image set: citusdata/the-process#222 (PG19beta1 via apt) — **green**, images published under `-dev-33b3cf5`. - Runtime/regress fixes: ruleutils port #8602 plus the runtime/regress sub-issues must be on `pg19-support` for the new cells to pass. Closes #8615 Part of #8597
Advance the PG19 test images from beta 1 to beta 2 while preserving the existing image plumbing and version set from PR #222. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 94b3043d-c41e-4150-9786-35afa213d3e9
Resolve the version-list and upgrade-image conflicts by retaining the PG19 beta 2 pin and exclusion while taking the latest Citus upgrade versions from master. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 94b3043d-c41e-4150-9786-35afa213d3e9
PGDG does not publish a PostgreSQL 19 wal2json package yet. Build the upstream PG19-compatible revision from source for PG19 images while retaining packaged installs for released majors. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 94b3043d-c41e-4150-9786-35afa213d3e9
Use the PGDG beta 3 packages for all PostgreSQL 19 test images while preserving the existing PG19-compatible wal2json source revision. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 94b3043d-c41e-4150-9786-35afa213d3e9
PG16 16.14->16.15, PG17 17.10->17.11, PG18 18.4->18.6. PG19 stays on 19~beta3, which is still the latest PG19 pre-release. Upstream skipped 18.5, so 18.6 is the next PG18 minor after 18.4. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This PR is scoped to PG19 support. The 16.15 / 17.11 / 18.6 minor bump will land separately on master so the two concerns can be reviewed and reverted independently.
Alper Kocatas (alperkocatas)
approved these changes
Aug 20, 2026
Alper Kocatas (alperkocatas)
left a comment
There was a problem hiding this comment.
Review Result
No blocking issues found in PR #222.
The final diff against master consistently:
- Adds PostgreSQL
19~beta3to the image matrix. - Enables PGDG’s
19apt component in all relevant images. - Builds
wal2jsonfrom a pinned revision only for PG19. - Excludes PG19 from Citus upgrade images while retaining it in PostgreSQL upgrade testing.
- Preserves the existing PG16/17/18 versions.
Validation performed:
- All 17 applicable checks passed on reviewed SHA
66a6787, including every PG19 image and the combinedpgupgradetester. - Confirmed PGDG publishes the required beta3 server, client, development, and debug packages.
- Confirmed the PostgreSQL beta3 and pinned
wal2jsonsource archives are available. make -ngenerated the expected PG19 arguments and19beta3image tag.git diff --checkpassed.- The worktree remains clean.
Residual risk is limited to runtime behavior after consuming the images; this repository’s CI verifies successful image construction but does not appear to run an explicit wal2json logical-decoding smoke test.
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.
Adds PostgreSQL 19 (beta3) to the CI image set.
The PG16/17/18 minors are intentionally left at master's current values
(16.14 / 17.10 / 18.4). Bumping them to the 2026-08-14 releases is a
separate concern and will land as its own PR against master, so that
PG19 support and the minor bump can be reviewed — and reverted —
independently.
How PG19 is installed
PG19 beta3 is published on
apt.postgresql.orgunder the per-major19component for bookworm (e.g.postgresql-19 19~beta3-1.pgdg12+1, plus-client-19,-server-dev-19,-19-dbgsym, andlibpq5/libpq-devat the sameversion). This PR simply enables that component
(
bookworm-pgdg main->bookworm-pgdg main 19) in the images thatbuild PG19 —
extbuilder,exttester,failtesterandpgupgradetester— and addsPG19=19~beta3toPG_VERSIONS. Theexisting
grep/sed/awkversion-resolution logic handles the~beta3string unchanged; the rendered image tag is
19beta3(the~isstripped by the existing
sed 's/~//').wal2json on PG19
There is no
postgresql-19-wal2jsonpackage yet, so for PG19 only,exttesterbuilds wal2json from a pinned upstream revision. All othermajors continue to install the distro package unchanged.
citus-upgrade exclusion
No released Citus binary supports PG19 yet, so PG19 is filtered out of
CITUS_UPGRADE_PG_VERSIONSby name (grep -v '^PG19=') rather thanrelying on
head(1)line ordering. This keepscitusupgradetestertargets at PG16/17/18 and is robust to reordering
PG_VERSIONS.Supersedes #218
This replaces #218, which sourced PG19 from a pinned upstream git ref
because at the time only
19devel(unpackaged) was available. Now thata beta is on apt, the ~400 lines of source-build machinery in #218 are
unnecessary; this PR installs PG19 exactly like the other majors.
Notes
requirements.txtfiles are intentionally untouched — the pyOpenSSLCVE sync already landed on master (Sync Citus image requirements to close pyOpenSSL CVE alerts #219).
image_suffixis regenerated on every push to this branch; usethe suffix from the latest
build-test-imagesrun when wiring up theCitus
build_and_test.ymlPG19 test matrix.Tracks citusdata/citus#8597.