Skip to content

Add PG19 (19beta1) and bump PG minors via apt#222

Open
ihalatci wants to merge 2 commits into
masterfrom
add-pg19beta1-via-apt
Open

Add PG19 (19beta1) and bump PG minors via apt#222
ihalatci wants to merge 2 commits into
masterfrom
add-pg19beta1-via-apt

Conversation

@ihalatci

Copy link
Copy Markdown
Contributor

Adds PostgreSQL 19 (beta1) to the CI image set and bumps the PG16/17/18
minors to 16.14 / 17.10 / 18.4.

How PG19 is installed

PG19 beta1 is published on apt.postgresql.org under the per-major
19 component for bookworm (e.g.
postgresql-19 19~beta1-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 mainbookworm-pgdg main 19) in the images that
build PG19 — extbuilder, exttester, failtester and
pgupgradetester — and adds PG19=19~beta1 to PG_VERSIONS. The
existing grep/sed/awk version-resolution logic handles the ~beta1
string unchanged; the rendered image tag is 19beta1 (the ~ is
stripped by the existing sed 's/~//').

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
beta1 is on apt, the ~400 lines of source-build machinery in #218 are
unnecessary; this PR installs PG19 exactly like the other majors.

Notes

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.
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
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
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
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