Bump PG minor versions and enable PG19 source build (dev)#218
Open
ihalatci wants to merge 1 commit into
Open
Conversation
- PG_VERSIONS: bump minors, add PG19=19devel.
- Makefile: add PG19_SOURCE_REF (pinned to upstream postgres master SHA),
switch the citusupgradetester matrix to filter PG19 out explicitly
(grep -v '^PG19=') so no Citus release is required for PG19, and pass
PG19_SOURCE_REF as a build-arg to every per-PG image target.
- extbuilder/exttester/failtester/citusupgradetester/pgupgradetester
Dockerfiles: when PG_MAJOR=19, fetch the source tarball from the
pinned upstream SHA and build with --prefix=/usr/lib/postgresql/19
using --enable-rpath plus --with-{openssl,icu,libxml,libxslt,lz4,zstd}
and --with-system-tzdata. apt-installed PG packages would normally
create the postgres user/group and /var/lib/postgresql; the
source-build path creates them manually so the existing chown steps
still work.
- extbuilder: also export PATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATH
so pg_config is discoverable by downstream extension builds, matching
exttester/failtester/citusupgradetester.
- exttester: skip postgresql-19-wal2json (not packaged for PG19 yet);
CITUS_VERSION is empty for PG19 because no Citus release supports it,
and the build-citus step is already guarded on a non-empty value.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ihalatci
added a commit
to citusdata/citus
that referenced
this pull request
May 29, 2026
Pulls in the test images built by citusdata/the-process#218: - PG16: 16.13 -> 16.14 - PG17: 17.9 -> 17.10 - PG18: 18.3 -> 18.4 - PG19: 19devel (new, source-built in the upstream image) Bumps image_suffix to -dev-e11d99c, updates sql_snapshot_pg_version to 18.4, and updates upgrade_pg_versions to 16.14-17.10-18.4. Adds pg19_version to the build matrix so PG19 source-level build is exercised by CI. PG19 is intentionally NOT added to test-citus / test-citus-failure / test-citus-cdc / upgrade jobs in this PR: the regression suite requires the upstream-derived ruleutils_19.c that lands in PR1b. Until then, only the build path is meaningful on PG19.
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.
Two related changes targeting
master:1. Bump PG minors (apt-tracked majors)
2. Enable PG19 source build (dev branch)
PG19 is unreleased and not available on
apt.postgresql.org. To let CI start producing PG19 test images now, this PR adds a source-build path for PG19 across all per-PG Dockerfiles.PG_VERSIONS: addsPG19=19devel.Makefile:PG19_SOURCE_REF ?= 43649b6a53e9b3964e921cc962f5c977bce688fdpinned to upstreampostgres/postgresmaster. Override at build time (make PG19_SOURCE_REF=<sha> ...).CITUS_UPGRADE_PG_VERSIONSswitched togrep -v '^PG19='— no Citus release supports PG19, so nocitusupgradetester:19develimage is produced.PG19_SOURCE_REFpassed as a--build-argto every per-PG image target.extbuilder/exttester/failtester/citusupgradetester/pgupgradetesterDockerfiles: conditional source build whenPG_MAJOR=19:codeload.github.com../configure --prefix=/usr/lib/postgresql/19 --enable-rpath --with-{openssl,icu,libxml,libxslt,lz4,zstd} --with-system-tzdata=/usr/share/zoneinfothenmake install-world-bin.--enable-rpathensures PG19 binaries find their ownlibpq.so.5under/usr/lib/postgresql/19/libeven when the multi-PGpgupgradetesterimage has an older aptlibpqunder/usr/lib/x86_64-linux-gnu/.postgresql-commonnormally creates thepostgresuser/group +/var/lib/postgresql; the source-build path creates them manually so the existingchown -R postgres:postgres /var/run/postgresqlstep still works.exttester: skipspostgresql-19-wal2json(not yet packaged);CITUS_VERSIONis empty for PG19 (no Citus release supports it), and thebuild-citusstep is already guarded on a non-empty value.extbuilder: also exportsPATH=/usr/lib/postgresql/$PG_MAJOR/bin/:$PATHsopg_configis discoverable by downstream extension builds, matching the other images.Verification
The GitHub Actions
build-test-imagesworkflow auto-builds the matrix on push and is the end-to-end gate for PG19. PG19 wasn't compiled locally — CI is the first real test. If a PG19 image build fails, the most likely culprits are configure flags or missing apt deps; iterate by adjustingPG19_SOURCE_REFor the configure line in the Dockerfile.Once a Citus release ships with PG19 support, follow up by adding
CITUS_UPGRADE_VERSIONS_19=<tag>and dropping thegrep -v '^PG19='filter.Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com