From 9af9bdf8ce720431d346f69ccfb05bafa8461073 Mon Sep 17 00:00:00 2001 From: ihalatci Date: Sat, 13 Jun 2026 07:30:07 +0000 Subject: [PATCH 1/4] Add PG19 (19beta1) and bump PG minors via apt 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. --- circleci/images/Makefile | 7 +++++-- circleci/images/PG_VERSIONS | 7 ++++--- circleci/images/extbuilder/Dockerfile | 3 ++- circleci/images/exttester/Dockerfile | 3 ++- circleci/images/failtester/Dockerfile | 3 ++- circleci/images/pgupgradetester/Dockerfile | 3 ++- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/circleci/images/Makefile b/circleci/images/Makefile index 6b91a55..f7242d6 100644 --- a/circleci/images/Makefile +++ b/circleci/images/Makefile @@ -16,8 +16,11 @@ PG_UPGRADE_TESTER_VERSION=$(shell echo ${PG_VERSIONS}|tr ' ' '-'|sed 's/~//g') STYLE_CHECKER_TOOLS_VERSION=0.8.33 -# Upgrade tests for the PG major versions from PG_VERSIONS file -CITUS_UPGRADE_PG_VERSIONS=$(shell head PG_VERSIONS|cut -c 6-|tr '\n' ' ') +# Upgrade tests for the PG major versions from PG_VERSIONS file. +# PG19 is excluded because no Citus release supports it yet; filter it +# out by name so reordering PG_VERSIONS does not silently change which +# major is dropped. +CITUS_UPGRADE_PG_VERSIONS=$(shell grep -v '^PG19=' PG_VERSIONS|cut -c 6-|tr '\n' ' ') # 12.1.10 is the latest release of Citus 12 when the test is expanded to cover Citus 12 CITUS_UPGRADE_VERSIONS_16=v12.1.12 # Latest minor version of Citus 13 diff --git a/circleci/images/PG_VERSIONS b/circleci/images/PG_VERSIONS index 98c38dc..d3c9b29 100644 --- a/circleci/images/PG_VERSIONS +++ b/circleci/images/PG_VERSIONS @@ -1,3 +1,4 @@ -PG16=16.13 -PG17=17.9 -PG18=18.3 +PG16=16.14 +PG17=17.10 +PG18=18.4 +PG19=19~beta1 diff --git a/circleci/images/extbuilder/Dockerfile b/circleci/images/extbuilder/Dockerfile index d703a28..ade1bcd 100644 --- a/circleci/images/extbuilder/Dockerfile +++ b/circleci/images/extbuilder/Dockerfile @@ -48,7 +48,8 @@ set -eux # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +# The "19" component carries the PG19 beta packages, which are not in "main" yet. +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main 19" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 4af0f75..c1ea268 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -153,7 +153,8 @@ set -eux # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +# The "19" component carries the PG19 beta packages, which are not in "main" yet. +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main 19" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update diff --git a/circleci/images/failtester/Dockerfile b/circleci/images/failtester/Dockerfile index ac68c87..2b76ef3 100644 --- a/circleci/images/failtester/Dockerfile +++ b/circleci/images/failtester/Dockerfile @@ -54,7 +54,8 @@ RUN <<'EOF' # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +# The "19" component carries the PG19 beta packages, which are not in "main" yet. +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main 19" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update diff --git a/circleci/images/pgupgradetester/Dockerfile b/circleci/images/pgupgradetester/Dockerfile index 9e0237d..dbc908d 100644 --- a/circleci/images/pgupgradetester/Dockerfile +++ b/circleci/images/pgupgradetester/Dockerfile @@ -55,7 +55,8 @@ set -eux # install key and repositories curl -sf https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - -echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >> /etc/apt/sources.list.d/postgresql.list +# The "19" component carries the PG19 beta packages, which are not in "main" yet. +echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main 19" >> /etc/apt/sources.list.d/postgresql.list echo "deb https://apt-archive.postgresql.org/pub/repos/apt bookworm-pgdg-archive main" >> /etc/apt/sources.list.d/postgresql.list apt-get update From 33b3cf5b731557a3cc8780ab1adbbc4c0baf0e76 Mon Sep 17 00:00:00 2001 From: ihalatci Date: Sat, 13 Jun 2026 07:37:48 +0000 Subject: [PATCH 2/4] exttester: install wal2json best-effort for pre-release PG majors 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. --- circleci/images/exttester/Dockerfile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index c1ea268..2ee0369 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -169,8 +169,12 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-${PG_MAJOR}=${pgdg_version} \ postgresql-client-${PG_MAJOR}=${pgdg_version} \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ - postgresql-server-dev-${PG_MAJOR}=${pgdg_version} \ - postgresql-${PG_MAJOR}-wal2json + postgresql-server-dev-${PG_MAJOR}=${pgdg_version} + +# wal2json is not always published for pre-release majors (e.g. PG19 beta), so +# install it best-effort to avoid breaking the build before the package lands. +apt-get install -y --no-install-recommends postgresql-${PG_MAJOR}-wal2json \ + || echo "WARNING: postgresql-${PG_MAJOR}-wal2json not available for PG${PG_MAJOR}, continuing without it" apt-get install -y --no-install-recommends -t bookworm libdbd-pg-perl From faa4d917f49677aa2ab16751e7165de11ec3d63f Mon Sep 17 00:00:00 2001 From: Ibrahim Halatci Date: Thu, 16 Jul 2026 19:09:27 +0300 Subject: [PATCH 3/4] Pin PostgreSQL 19 beta 2 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 --- circleci/images/PG_VERSIONS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circleci/images/PG_VERSIONS b/circleci/images/PG_VERSIONS index d3c9b29..debcadf 100644 --- a/circleci/images/PG_VERSIONS +++ b/circleci/images/PG_VERSIONS @@ -1,4 +1,4 @@ PG16=16.14 PG17=17.10 PG18=18.4 -PG19=19~beta1 +PG19=19~beta2 From 416304722a7068aea381a515c4404bf62cbb19e0 Mon Sep 17 00:00:00 2001 From: Ibrahim Halatci Date: Sat, 8 Aug 2026 14:37:36 +0300 Subject: [PATCH 4/4] Build wal2json for PostgreSQL 19 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 --- circleci/images/exttester/Dockerfile | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/circleci/images/exttester/Dockerfile b/circleci/images/exttester/Dockerfile index 2ee0369..ad9a226 100644 --- a/circleci/images/exttester/Dockerfile +++ b/circleci/images/exttester/Dockerfile @@ -143,6 +143,7 @@ RUN locale-gen ARG PG_VERSION ARG PG_MAJOR ARG CITUS_VERSION +ARG WAL2JSON_REVISION=79d516e60463be3093ff927ba72cf6354bde09af ENV PG_VERSION=$PG_VERSION ENV PG_MAJOR=$PG_MAJOR ENV CITUS_VERSION=$CITUS_VERSION @@ -171,10 +172,16 @@ apt-get install -y --no-install-recommends --allow-downgrades \ postgresql-${PG_MAJOR}-dbgsym=${pgdg_version} \ postgresql-server-dev-${PG_MAJOR}=${pgdg_version} -# wal2json is not always published for pre-release majors (e.g. PG19 beta), so -# install it best-effort to avoid breaking the build before the package lands. -apt-get install -y --no-install-recommends postgresql-${PG_MAJOR}-wal2json \ - || echo "WARNING: postgresql-${PG_MAJOR}-wal2json not available for PG${PG_MAJOR}, continuing without it" +if [ "${PG_MAJOR}" = "19" ]; then + curl -fsSL "https://github.com/eulerto/wal2json/archive/${WAL2JSON_REVISION}.tar.gz" | tar xz -C /tmp + make -C "/tmp/wal2json-${WAL2JSON_REVISION}" \ + PG_CONFIG="/usr/lib/postgresql/${PG_MAJOR}/bin/pg_config" -j"$(nproc)" + make -C "/tmp/wal2json-${WAL2JSON_REVISION}" \ + PG_CONFIG="/usr/lib/postgresql/${PG_MAJOR}/bin/pg_config" install + rm -rf "/tmp/wal2json-${WAL2JSON_REVISION}" +else + apt-get install -y --no-install-recommends postgresql-${PG_MAJOR}-wal2json +fi apt-get install -y --no-install-recommends -t bookworm libdbd-pg-perl