You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
deb (templates/Dockerfile-deb.tmpl + generated dockerfiles/*-all/Dockerfile): the extra 19 component is appended to the PGDG apt source line (deb http://apt.postgresql.org/pub/repos/apt/ <release>-pgdg main 19), build deps switched to postgresql-server-dev-19, and DEB_PG_SUPPORTED_VERSIONS extended to 14 15 16 17 18 19.
rpm (templates/Dockerfile-rpm.tmpl + dockerfiles/almalinux-9-pg19/): the pgdg19-updates-testing repo is enabled via sed on pgdg-redhat-all.repo, because the GA repo (pub/repos/yum/19/redhat/...) does not exist yet.
version lists: 19 added to update_dockerfiles, update_image, and ci/push_images.
CI matrices: PG19 is added as a one-off include entry (almalinux,9 only) in build-package.yml, build-package-test.yml, and image-health-check.yml, rather than in the main POSTGRES_VERSION cross-product list.
Nothing pins a specific beta (beta1/beta2/beta3); packages are installed unpinned, so a rebuild always picks up the newest 19 build PGDG publishes.
Known limitations while PG19 is pre-GA
No EL8 packages. PGDG publishes no PostgreSQL 19 RPMs for EL8 — testing/19/redhat/rhel-8-x86_64/ is empty while rhel-9-x86_64/ is populated. update_dockerfiles, update_image, and ci/push_images therefore guard against release=8 + pgversion=19, and this is also why PG19 is an include entry in the CI matrices instead of being in the main list (the cross-product would otherwise pull in almalinux,8 and oraclelinux,8).
Beta packages come from the testing channel. The RPM images depend on pgdg19-updates-testing; the deb images depend on the version-specific 19 component of the pgdg archive. Both are pre-GA mechanisms.
TODOs after PostgreSQL 19 GA
rpm — drop the testing repo enable. Remove the sed -i '/\[pgdg19-updates-testing\]/...' line from templates/Dockerfile-rpm.tmpl and the pg19_sed_cmd conditional from update_dockerfiles, then regenerate with ./update_dockerfiles. Verify https://download.postgresql.org/pub/repos/yum/19/redhat/rhel-9-x86_64/ exists first (it currently 404s).
deb — drop the extra 19 component. Revert the pgdg source line in templates/Dockerfile-deb.tmpl back to ... <release>-pgdg main once PG19 packages land in the default main component, then regenerate.
Re-check EL8 availability. If PGDG ships PG19 for EL8 at GA, remove the release=8 guards in update_dockerfiles, update_image, and ci/push_images, and generate the almalinux-8-pg19 / oraclelinux-8-pg19 images. If EL8 remains unsupported (likely, given EL8 is near EOL), keep the guards and leave a short comment recording that it is permanent.
Fold PG19 into the main CI matrices. Once the EL8 question is settled, move 19 from the include block into the POSTGRES_VERSION list in build-package.yml, build-package-test.yml, and image-health-check.yml (or keep the include if EL8 stays excluded).
Rebuild and push images so the published citus/packaging tags carry GA PostgreSQL 19 rather than a beta build.
Extend PG19 to the remaining RPM platforms if PGDG coverage grows beyond EL9 (e.g. EL10) by the time of GA.
Update the release-side PostgreSQL version matrix (postgres-matrix.yml on the all-citus branch) once Citus itself declares PG19 support, so packages are actually built against PG19.
Tracking issue for PostgreSQL 19 support in the packaging build images.
Current state
Initial support is being added in #1203:
templates/Dockerfile-deb.tmpl+ generateddockerfiles/*-all/Dockerfile): the extra19component is appended to the PGDG apt source line (deb http://apt.postgresql.org/pub/repos/apt/ <release>-pgdg main 19), build deps switched topostgresql-server-dev-19, andDEB_PG_SUPPORTED_VERSIONSextended to14 15 16 17 18 19.templates/Dockerfile-rpm.tmpl+dockerfiles/almalinux-9-pg19/): thepgdg19-updates-testingrepo is enabled viasedonpgdg-redhat-all.repo, because the GA repo (pub/repos/yum/19/redhat/...) does not exist yet.19added toupdate_dockerfiles,update_image, andci/push_images.includeentry (almalinux,9only) inbuild-package.yml,build-package-test.yml, andimage-health-check.yml, rather than in the mainPOSTGRES_VERSIONcross-product list.Nothing pins a specific beta (
beta1/beta2/beta3); packages are installed unpinned, so a rebuild always picks up the newest 19 build PGDG publishes.Known limitations while PG19 is pre-GA
testing/19/redhat/rhel-8-x86_64/is empty whilerhel-9-x86_64/is populated.update_dockerfiles,update_image, andci/push_imagestherefore guard againstrelease=8+pgversion=19, and this is also why PG19 is anincludeentry in the CI matrices instead of being in the main list (the cross-product would otherwise pull inalmalinux,8andoraclelinux,8).pgdg19-updates-testing; the deb images depend on the version-specific19component of the pgdg archive. Both are pre-GA mechanisms.TODOs after PostgreSQL 19 GA
sed -i '/\[pgdg19-updates-testing\]/...'line fromtemplates/Dockerfile-rpm.tmpland thepg19_sed_cmdconditional fromupdate_dockerfiles, then regenerate with./update_dockerfiles. Verifyhttps://download.postgresql.org/pub/repos/yum/19/redhat/rhel-9-x86_64/exists first (it currently 404s).19component. Revert the pgdg source line intemplates/Dockerfile-deb.tmplback to... <release>-pgdg mainonce PG19 packages land in the defaultmaincomponent, then regenerate.release=8guards inupdate_dockerfiles,update_image, andci/push_images, and generate thealmalinux-8-pg19/oraclelinux-8-pg19images. If EL8 remains unsupported (likely, given EL8 is near EOL), keep the guards and leave a short comment recording that it is permanent.19from theincludeblock into thePOSTGRES_VERSIONlist inbuild-package.yml,build-package-test.yml, andimage-health-check.yml(or keep theincludeif EL8 stays excluded).citus/packagingtags carry GA PostgreSQL 19 rather than a beta build.postgres-matrix.ymlon theall-citusbranch) once Citus itself declares PG19 support, so packages are actually built against PG19.