Switch image matrices to PostgreSQL 17/18 and adopt tools v0.8.39 - #386
Open
ibrahim halatci (ihalatci) wants to merge 1 commit into
Open
Switch image matrices to PostgreSQL 17/18 and adopt tools v0.8.39#386ibrahim halatci (ihalatci) wants to merge 1 commit into
ibrahim halatci (ihalatci) wants to merge 1 commit into
Conversation
Activates the PostgreSQL 18 image, retires PostgreSQL 16, and moves every workflow onto the tools tag that matches. Matrices (cron, on_push, on_tag) change postgres_16 -> postgres_18. The pg18 tag has never been published even though pkgvars has carried postgres_18_version since February; this closes that gap. PostgreSQL 16 is dropped because Citus no longer supports it, which is also why the nightly package builds have been failing on almalinux-8-pg16. The tools pin moves to v0.8.39 in all five workflows (four were on v0.8.38, update_version.yml was still on v0.8.36). This is not optional: v0.8.39 removes postgres_14, postgres_15 and postgres_16 from DockerImageType, so the pin bump and the matrix change have to land together or the postgres_16 job fails on an invalid enum value. postgres-18/Dockerfile moves from Citus 14.1.0 to 14.2.0 so the newly published pg18 tag matches latest and pg17 rather than shipping an older Citus. All three pinned packages are published for PostgreSQL 18: postgresql-18-citus-14.2=14.2.0.citus-1, postgresql-18-hll=2.21.citus-1 and postgresql-18-topn=2.7.1.citus-1. postgres_19 is deliberately not added to the matrices. PostgreSQL 19 is still 19beta3 and no postgresql-19-citus package exists, so the image cannot build yet. postgres-19/Dockerfile stays in the tree, unreferenced, and update_version.yml will refresh it on the next version bump now that the pin supports postgres19. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1ed7b58a-0ba9-4f47-a1de-3ee665bae7f2
7 tasks
Contributor
Author
|
Follow-up phase 3 (PG19 GA) is tracked in #387 — blocked on PostgreSQL 19 going GA and Citus publishing PG19 packages. Worth flagging one ordering constraint captured there: |
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.
What
Activates the PostgreSQL 18 image, retires PostgreSQL 16, and moves every workflow onto tools
v0.8.39.This is phase 2 of 3 for PG19 support. Phase 1 (#383) added the image content; this phase wires it into the build matrices. Phase 3 is blocked externally (see below).
postgres_16→postgres_18publish_docker_images_{cron,on_push,on_tag}.ymlv0.8.39postgres_16_versionpkgvarspostgres-16/Dockerfile14.1.0→14.2.0postgres-18/Dockerfile8 files, +10/−53.
Why the pin bump and the matrix change are one commit
v0.8.39removespostgres_14,postgres_15andpostgres_16fromDockerImageType. Re-pinning while- postgres_16is still in a matrix would hard-fail on an invalid enum value, and swapping the matrix without the pin would fail on an unknownpostgres_18. They have to land together.update_version.ymlwas still onv0.8.36; the other four were onv0.8.38.Why
postgres-18/Dockerfilealso changespkgvarshas carriedpostgres_18_versionsince February but thepg18tag has never actually been published, so the file went stale — it was pinned to Citus 14.1.0 while master moved to 14.2.0. Publishing it as-is would shippg18with an older Citus thanlatestandpg17. All three corrected pins are verified published for PG18:postgresql-18-citus-14.2=14.2.0.citus-1postgresql-18-hll=2.21.citus-1postgresql-18-topn=2.7.1.citus-1Why PostgreSQL 16 goes
Citus no longer supports it. It is also the cause of the currently failing nightly package builds, which die on
citus/packaging:almalinux-8-pg16.Why
postgres_19is not herePostgreSQL 19 is still
19beta3— there is no GA tag on Docker Hub — and nopostgresql-19-cituspackage exists at any version. The image cannot build yet.postgres-19/Dockerfilestays in the tree unreferenced, andupdate_version.ymlwill refresh it on the next version bump now that the pin understandspostgres19.Phase 3 will add
- postgres_19to the matrices, flip the root and alpine Dockerfiles to PG19 GA, and re-pin off19beta3.Effect on merge
masteris the only branch that publishes (publish_docker.pygates on it), so CI here is build-only. Once merged:pg18is published for the first timepg16stops being refreshedlatest,alpine,pg17,nightlyare unaffectedNote on
publish_docker_images_on_manual.ymlThat workflow passes no
--image_type, so it builds every regular image. It is already broken on master: underv0.8.38it tries to buildpostgres-14/andpostgres-15/, which don't exist in this repo. This PR improves it — every image it now resolves has a matching directory — though itsmaintrigger will still fail onpostgres_19until Citus publishes PG19 packages. It'sworkflow_dispatch-only.