Skip to content

Add PG19 (19beta3) to the CI images - #222

Merged
ibrahim halatci (ihalatci) merged 8 commits into
masterfrom
add-pg19beta1-via-apt
Aug 20, 2026
Merged

Add PG19 (19beta3) to the CI images#222
ibrahim halatci (ihalatci) merged 8 commits into
masterfrom
add-pg19beta1-via-apt

Conversation

@ihalatci

@ihalatci ibrahim halatci (ihalatci) commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Adds PostgreSQL 19 (beta3) to the CI image set.

Major Was Now
19 19~beta3 (new)

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.org under the per-major
19 component for bookworm (e.g.
postgresql-19 19~beta3-1.pgdg12+1, plus -client-19,
-server-dev-19, -19-dbgsym, and libpq5/libpq-dev at the same
version). This PR simply enables that component
(bookworm-pgdg main -> bookworm-pgdg main 19) in the images that
build PG19 — extbuilder, exttester, failtester and
pgupgradetester — and adds PG19=19~beta3 to PG_VERSIONS. The
existing grep/sed/awk version-resolution logic handles the ~beta3
string unchanged; the rendered image tag is 19beta3 (the ~ is
stripped by the existing sed 's/~//').

wal2json on PG19

There is no postgresql-19-wal2json package yet, so for PG19 only,
exttester builds wal2json from a pinned upstream revision. All other
majors 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_VERSIONS by name (grep -v '^PG19=') rather than
relying on head(1) line ordering. This keeps citusupgradetester
targets 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 that
a 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.txt files are intentionally untouched — the pyOpenSSL
    CVE sync already landed on master (Sync Citus image requirements to close pyOpenSSL CVE alerts #219).
  • The dev image_suffix is regenerated on every push to this branch; use
    the suffix from the latest build-test-images run when wiring up the
    Citus build_and_test.yml PG19 test matrix.

Tracks citusdata/citus#8597.

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
@ihalatci ibrahim halatci (ihalatci) changed the title Add PG19 (19beta1) and bump PG minors via apt Add PG19 (19beta2) and bump PG minors via apt Jul 16, 2026
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
@ihalatci ibrahim halatci (ihalatci) changed the title Add PG19 (19beta2) and bump PG minors via apt Add PG19 (19beta3) and bump PG minors via apt Aug 15, 2026
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>
@ihalatci ibrahim halatci (ihalatci) changed the title Add PG19 (19beta3) and bump PG minors via apt Add PG19 (19beta3) and bump PG minors to 16.15 / 17.11 / 18.6 Aug 15, 2026
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.
@ihalatci ibrahim halatci (ihalatci) changed the title Add PG19 (19beta3) and bump PG minors to 16.15 / 17.11 / 18.6 Add PG19 (19beta3) to the CI images Aug 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Result

No blocking issues found in PR #222.

The final diff against master consistently:

  • Adds PostgreSQL 19~beta3 to the image matrix.
  • Enables PGDG’s 19 apt component in all relevant images.
  • Builds wal2json from 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 combined pgupgradetester.
  • Confirmed PGDG publishes the required beta3 server, client, development, and debug packages.
  • Confirmed the PostgreSQL beta3 and pinned wal2json source archives are available.
  • make -n generated the expected PG19 arguments and 19beta3 image tag.
  • git diff --check passed.
  • 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.

@ihalatci
ibrahim halatci (ihalatci) merged commit eacda93 into master Aug 20, 2026
19 checks passed
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.

3 participants