From c0dfd56675cb0ec2f0ca3dfe1449a3c7dcf13180 Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Wed, 14 Oct 2026 18:32:36 +0500 Subject: [PATCH 01/13] build: add PostgreSQL 19 images for spock 5 --- CHANGELOG.md | 4 + packagelists/amd64/pg19-rc1-postgres.txt | 2 + .../amd64/pg19-rc1-spock5.0.13-minimal.txt | 3 + .../amd64/pg19-rc1-spock5.0.13-standard.txt | 13 + packagelists/arm64/pg19-rc1-postgres.txt | 2 + .../arm64/pg19-rc1-spock5.0.13-minimal.txt | 3 + .../arm64/pg19-rc1-spock5.0.13-standard.txt | 13 + scripts/build_pgedge_images.py | 18 +- tests/main.go | 245 ++++++++++++------ 9 files changed, 224 insertions(+), 79 deletions(-) create mode 100644 packagelists/amd64/pg19-rc1-postgres.txt create mode 100644 packagelists/amd64/pg19-rc1-spock5.0.13-minimal.txt create mode 100644 packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt create mode 100644 packagelists/arm64/pg19-rc1-postgres.txt create mode 100644 packagelists/arm64/pg19-rc1-spock5.0.13-minimal.txt create mode 100644 packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index d9b5c68..878a636 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ - Upgraded PostGIS to 3.6.4, pgBackRest to 2.59.3, system_stats to 4.0, supautils to 3.4.4, and pgvector to 0.8.7 in standard images - Upgraded Spock to 5.0.13 in the spock 5 images +- Added PostgreSQL 19 (rc1) postgres, minimal and standard images for spock 5. + They omit pg_tokenizer and vchord_bm25, which have no PG 19 build yet; the + tests covering those extensions are skipped on PG 19 until they ship. No + coldfront or spock 6 images for PG 19 yet. - Upgraded lolor to 1.2.3 in minimal images - Upgraded system_stats to 4.1 in standard images diff --git a/packagelists/amd64/pg19-rc1-postgres.txt b/packagelists/amd64/pg19-rc1-postgres.txt new file mode 100644 index 0000000..51b06af --- /dev/null +++ b/packagelists/amd64/pg19-rc1-postgres.txt @@ -0,0 +1,2 @@ +pgedge-postgresql19-19-rc1_1.el9 +pgedge-postgresql19-server-19-rc1_1.el9 diff --git a/packagelists/amd64/pg19-rc1-spock5.0.13-minimal.txt b/packagelists/amd64/pg19-rc1-spock5.0.13-minimal.txt new file mode 100644 index 0000000..cab8190 --- /dev/null +++ b/packagelists/amd64/pg19-rc1-spock5.0.13-minimal.txt @@ -0,0 +1,3 @@ +pgedge-spock50_19-5.0.13-1.el9 +pgedge-snowflake_19-2.6.0-1.el9 +pgedge-lolor_19-1.2.3-1.el9 diff --git a/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt new file mode 100644 index 0000000..eb82800 --- /dev/null +++ b/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt @@ -0,0 +1,13 @@ +pgedge-pgaudit_19-19-beta3_1.el9 +pgedge-postgis36_19-3.6.4-1.el9 +pgedge-pgvector_19-0.8.7-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 +pgedge-python3-psycopg2-2.9.12-1.el9 +pgedge-pgmq_19-1.13.0-1.el9 +pgedge-pg_cron_19-1.6.8-1.el9 +pgedge-pg-vectorize_19-0.27.1-1.el9 +pgedge-pg-stat-monitor_19-2.4.0-1.el9 +pgedge-vectorizer_19-1.1-1.el9 +pgedge-system_stats_19-4.1-1.el9 +pgedge-supautils_19-3.2.2-1.el9 +pgedge-safesession_19-1.0-1.el9 diff --git a/packagelists/arm64/pg19-rc1-postgres.txt b/packagelists/arm64/pg19-rc1-postgres.txt new file mode 100644 index 0000000..51b06af --- /dev/null +++ b/packagelists/arm64/pg19-rc1-postgres.txt @@ -0,0 +1,2 @@ +pgedge-postgresql19-19-rc1_1.el9 +pgedge-postgresql19-server-19-rc1_1.el9 diff --git a/packagelists/arm64/pg19-rc1-spock5.0.13-minimal.txt b/packagelists/arm64/pg19-rc1-spock5.0.13-minimal.txt new file mode 100644 index 0000000..cab8190 --- /dev/null +++ b/packagelists/arm64/pg19-rc1-spock5.0.13-minimal.txt @@ -0,0 +1,3 @@ +pgedge-spock50_19-5.0.13-1.el9 +pgedge-snowflake_19-2.6.0-1.el9 +pgedge-lolor_19-1.2.3-1.el9 diff --git a/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt new file mode 100644 index 0000000..eb82800 --- /dev/null +++ b/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt @@ -0,0 +1,13 @@ +pgedge-pgaudit_19-19-beta3_1.el9 +pgedge-postgis36_19-3.6.4-1.el9 +pgedge-pgvector_19-0.8.7-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 +pgedge-python3-psycopg2-2.9.12-1.el9 +pgedge-pgmq_19-1.13.0-1.el9 +pgedge-pg_cron_19-1.6.8-1.el9 +pgedge-pg-vectorize_19-0.27.1-1.el9 +pgedge-pg-stat-monitor_19-2.4.0-1.el9 +pgedge-vectorizer_19-1.1-1.el9 +pgedge-system_stats_19-4.1-1.el9 +pgedge-supautils_19-3.2.2-1.el9 +pgedge-safesession_19-1.0-1.el9 diff --git a/scripts/build_pgedge_images.py b/scripts/build_pgedge_images.py index 2c952b7..e3c5611 100755 --- a/scripts/build_pgedge_images.py +++ b/scripts/build_pgedge_images.py @@ -3,6 +3,7 @@ import json import logging import os +import re import subprocess from dataclasses import dataclass @@ -94,7 +95,9 @@ class PgEdgeImage: @property def postgres_major(self) -> str: - return self.postgres_version.split(".")[0] + # Leading digits, so a pre-release version like "19-rc1" still yields + # the major the packages and paths use. + return re.match(r"\d+", self.postgres_version).group() @property def spock_major(self) -> str: @@ -272,6 +275,10 @@ def make_flavor_images( postgres_version="18.6", spock_version="", epoch=1, flavor="postgres", is_latest_for_pg_major=True, ), + PgEdgeImage( + postgres_version="19-rc1", spock_version="", epoch=1, flavor="postgres", + is_latest_for_pg_major=True, package_release_channel="staging", + ), # pg16 images *make_flavor_images( postgres_version="16.15", @@ -296,6 +303,15 @@ def make_flavor_images( is_latest_for_pg_major=True, is_latest_for_spock_major=True, ), + # pg19 images. No coldfront or spock 6 line yet: neither has a PG 19 build. + *make_flavor_images( + postgres_version="19-rc1", + spock_version="5.0.13", + epochs={"minimal": 1, "standard": 1}, + channels={"minimal": "staging", "standard": "staging"}, + is_latest_for_pg_major=True, + is_latest_for_spock_major=True, + ), # pg16 spock60 images *make_flavor_images( postgres_version="16.15", diff --git a/tests/main.go b/tests/main.go index 3182c5b..ff3a07b 100644 --- a/tests/main.go +++ b/tests/main.go @@ -7,6 +7,8 @@ import ( "fmt" "log" "os" + "sort" + "strconv" "strings" "time" @@ -30,6 +32,10 @@ type Test struct { MinimalOnly bool // Only run on minimal-or-later (needs the pgEdge extensions) StandardOnly bool // Only run on standard-or-later flavors (standard, coldfront) ColdfrontOnly bool // Only run on the coldfront flavor + + // TEMPORARY: see hasTokenizerBM25. Remove this field, every use of it, and + // the tests it guards once PG 19 has pg_tokenizer and vchord_bm25 builds. + TokenizerBM25Only bool } // includesMinimal reports whether a flavor ships the pgEdge extensions minimal @@ -63,6 +69,11 @@ type DefaultEntrypointRunner struct { func main() { image, flavor := parseFlags() + // TEMPORARY: see hasTokenizerBM25. + if major := pgMajorFromImage(image); major >= 19 { + hasTokenizerBM25 = false + } + // Derive the expected spock major version from the image tag (e.g. // "...-spock6.0.0-beta1-standard" -> "6"). Used to assert that the image // actually ships the spock version its tag advertises. @@ -113,6 +124,38 @@ func spockMajorFromImage(image string) string { return major.String() } +// TEMPORARY: pg_tokenizer and vchord_bm25 have no PG 19 build, so the PG 19 +// packagelists omit them. Tests that need either are skipped there, and +// pg_tokenizer is left out of shared_preload_libraries. Delete this, the +// Test.TokenizerBM25Only field and the tests it guards once both ship for +// PG 19; the suite is then the same on every major again. +var hasTokenizerBM25 = true + +// pgMajorFromImage extracts the PostgreSQL major from an image reference's tag, +// e.g. "...:18.6-spock5.0.13-standard-1" yields 18 and "...:19-spock5-minimal" +// yields 19. It returns 0 when the tag does not start with a number, in which +// case the caller keeps the default and skips nothing. +func pgMajorFromImage(image string) int { + tag := image + if idx := strings.LastIndex(image, ":"); idx != -1 { + tag = image[idx+1:] + } + + var digits strings.Builder + for _, c := range tag { + if c < '0' || c > '9' { + break + } + digits.WriteRune(c) + } + + major, err := strconv.Atoi(digits.String()) + if err != nil { + return 0 + } + return major +} + func parseFlags() (string, string) { image := flag.String("image", "", "Docker image to test (required)") flavor := flag.String("flavor", "", "Image flavor: postgres, minimal, standard or coldfront (required)") @@ -235,6 +278,9 @@ func printSummary(errorCount int, flavor, spockMajor string) { if t.ColdfrontOnly && flavor != "coldfront" { continue } + if t.TokenizerBM25Only && !hasTokenizerBM25 { + continue + } extensionTests++ } @@ -535,7 +581,12 @@ func (r *TestRunner) Start() error { sharedLibs = "spock,snowflake" } if includesStandard(r.flavor) { - sharedLibs = "spock,snowflake,pgaudit,supautils,pg_cron,pg_tokenizer" + sharedLibs = "spock,snowflake,pgaudit,supautils,pg_cron" + // TEMPORARY: see hasTokenizerBM25. Preloading an extension the image + // does not ship stops the postmaster from starting at all. + if hasTokenizerBM25 { + sharedLibs += ",pg_tokenizer" + } } // pg_duckdb and coldfront install hooks at postmaster start. The image's own // entrypoint already passes them, but the -c built below is appended after it @@ -784,6 +835,9 @@ func (r *TestRunner) RunTests(tests []Test) int { if test.ColdfrontOnly && r.flavor != "coldfront" { continue } + if test.TokenizerBM25Only && !hasTokenizerBM25 { + continue + } fmt.Printf(" %-55s ", test.Name) @@ -1183,6 +1237,22 @@ func expectFailureContaining(want string) func(exitCode int, output string) erro // extension's after-create.sql granting the database's own owner exactly // the access it documents, in whichever schema the extension actually // landed in, not a hardcoded one. +// privilegedExtensions is the supautils.privileged_extensions list the gate +// tests set. TEMPORARY: see hasTokenizerBM25 -- the two entries are dropped on +// a major that has no build for them, so supautils does not gate an extension +// that cannot be installed. +func privilegedExtensions() string { + extensions := []string{ + "address_standardizer", "address_standardizer_data_us", "pg_cron", + "postgis", "postgis_tiger_geocoder", "postgis_topology", + } + if hasTokenizerBM25 { + extensions = append(extensions, "pg_tokenizer", "vchord_bm25") + } + sort.Strings(extensions) + return strings.Join(extensions, ", ") +} + func getExtensionCustomScriptsTests() []Test { return []Test{ { @@ -1214,7 +1284,7 @@ func getExtensionCustomScriptsTests() []Test { { Name: "configure supautils.privileged_extensions", StandardOnly: true, - Cmd: "psql -U postgres -d testdb -t -A -c \"ALTER SYSTEM SET supautils.privileged_extensions = 'address_standardizer, address_standardizer_data_us, pg_cron, pg_tokenizer, vchord_bm25, postgis, postgis_tiger_geocoder, postgis_topology';\"", + Cmd: "psql -U postgres -d testdb -t -A -c \"ALTER SYSTEM SET supautils.privileged_extensions = '" + privilegedExtensions() + "';\"", ExpectedOutput: expectSuccess, }, { @@ -1380,20 +1450,22 @@ func getExtensionCustomScriptsTests() []Test { ExpectedOutput: expectFailureContaining("permission denied for table job"), }, { - Name: "gate installs pg_tokenizer", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"CREATE EXTENSION pg_tokenizer;\"", - ExpectedOutput: expectSuccess, + Name: "gate installs pg_tokenizer", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"CREATE EXTENSION pg_tokenizer;\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // Real query against a real table in tokenizer_catalog, the // same reasoning as address_standardizer_data_us above: a // table grant with no matching schema USAGE fails here even // though has_table_privilege would report true. - Name: "pg_tokenizer after-create.sql granted access to tokenizer_catalog", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT count(*) FROM tokenizer_catalog.tokenizer;\"", - ExpectedOutput: expectSuccess, + Name: "pg_tokenizer after-create.sql granted access to tokenizer_catalog", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT count(*) FROM tokenizer_catalog.tokenizer;\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // The configuration functions run as the caller and write the @@ -1403,60 +1475,68 @@ func getExtensionCustomScriptsTests() []Test { // the owner INSERT, UPDATE, and DELETE on those tables. The // tokenizer is left in place for the third-party role's // tokenize() case below, and dropped after it. - Name: "pg_tokenizer after-create.sql lets the owner create a text analyzer", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_text_analyzer('probe_analyzer', $$ pre_tokenizer = 'unicode_segmentation' $$);\"", - ExpectedOutput: expectSuccess, + Name: "pg_tokenizer after-create.sql lets the owner create a text analyzer", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_text_analyzer('probe_analyzer', $$ pre_tokenizer = 'unicode_segmentation' $$);\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { - Name: "pg_tokenizer after-create.sql lets the owner create a tokenizer", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_tokenizer('probe_tokenizer', $$ model = 'bert_base_uncased' $$);\"", - ExpectedOutput: expectSuccess, + Name: "pg_tokenizer after-create.sql lets the owner create a tokenizer", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_tokenizer('probe_tokenizer', $$ model = 'bert_base_uncased' $$);\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { - Name: "pg_tokenizer after-create.sql lets the owner create a stopword list", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_stopwords('probe_stopwords', E'it\\nis\\na');\"", - ExpectedOutput: expectSuccess, + Name: "pg_tokenizer after-create.sql lets the owner create a stopword list", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_stopwords('probe_stopwords', E'it\\nis\\na');\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { - Name: "pg_tokenizer after-create.sql lets the owner create a synonym list", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_synonym('probe_synonyms', 'pgsql postgres postgresql');\"", - ExpectedOutput: expectSuccess, + Name: "pg_tokenizer after-create.sql lets the owner create a synonym list", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_synonym('probe_synonyms', 'pgsql postgres postgresql');\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // A superuser adding a table to tokenizer_catalog after // install, as an extension upgrade would: the default // privileges after-create.sql sets give the owner write // access to it without the script being run again. - Name: "pg_tokenizer after-create.sql default privileges cover a table added later", - StandardOnly: true, - Cmd: "psql -U postgres -d testdb -t -A -c \"CREATE TABLE tokenizer_catalog.probe_added_later(id int);\"", - ExpectedOutput: expectSuccess, + Name: "pg_tokenizer after-create.sql default privileges cover a table added later", + StandardOnly: true, + Cmd: "psql -U postgres -d testdb -t -A -c \"CREATE TABLE tokenizer_catalog.probe_added_later(id int);\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { - Name: "pg_tokenizer after-create.sql lets the owner write a table added later", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"INSERT INTO tokenizer_catalog.probe_added_later VALUES (1); UPDATE tokenizer_catalog.probe_added_later SET id = 2; DELETE FROM tokenizer_catalog.probe_added_later;\"", - ExpectedOutput: expectSuccess, + Name: "pg_tokenizer after-create.sql lets the owner write a table added later", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"INSERT INTO tokenizer_catalog.probe_added_later VALUES (1); UPDATE tokenizer_catalog.probe_added_later SET id = 2; DELETE FROM tokenizer_catalog.probe_added_later;\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { - Name: "gate installs vchord_bm25", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"CREATE EXTENSION vchord_bm25;\"", - ExpectedOutput: expectSuccess, + Name: "gate installs vchord_bm25", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"CREATE EXTENSION vchord_bm25;\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // bm25_catalog holds only the bm25vector type and its support // functions, no tables: declaring a column of that type is // the real thing the database's owner needs USAGE on the // schema for. - Name: "vchord_bm25 after-create.sql granted access to bm25_catalog", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"CREATE TABLE bm25_probe(id int, v bm25_catalog.bm25vector);\"", - ExpectedOutput: expectSuccess, + Name: "vchord_bm25 after-create.sql granted access to bm25_catalog", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"CREATE TABLE bm25_probe(id int, v bm25_catalog.bm25vector);\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // The earlier, unrelated common extension test already @@ -1616,18 +1696,20 @@ func getExtensionCustomScriptsTests() []Test { ExpectedOutput: expectSuccess, }, { - Name: "third-party role reaches vchord_bm25/pg_tokenizer via PUBLIC", - StandardOnly: true, - Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT pg_typeof('{1:1}'::bm25_catalog.bm25vector); SELECT count(*) FROM tokenizer_catalog.tokenizer;\"", - ExpectedOutput: expectSuccess, + Name: "third-party role reaches vchord_bm25/pg_tokenizer via PUBLIC", + StandardOnly: true, + Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT pg_typeof('{1:1}'::bm25_catalog.bm25vector); SELECT count(*) FROM tokenizer_catalog.tokenizer;\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // The write side stays pg_database_owner-only regardless // of the PUBLIC read grant above. - Name: "third-party role still refused a tokenizer_catalog write", - StandardOnly: true, - Cmd: "psql -U reporting_role -d testdb -t -A -c \"INSERT INTO tokenizer_catalog.tokenizer(name) VALUES ('probe');\"", - ExpectedOutput: expectFailureContaining("permission denied for table tokenizer"), + Name: "third-party role still refused a tokenizer_catalog write", + StandardOnly: true, + Cmd: "psql -U reporting_role -d testdb -t -A -c \"INSERT INTO tokenizer_catalog.tokenizer(name) VALUES ('probe');\"", + ExpectedOutput: expectFailureContaining("permission denied for table tokenizer"), + TokenizerBM25Only: true, }, { // Schema USAGE makes every function in tokenizer_catalog @@ -1638,19 +1720,21 @@ func getExtensionCustomScriptsTests() []Test { // them SECURITY DEFINER, but still real work running before // any table-ACL check fires. Confirmed cleanly refused at // the function call itself now, not at some later step. - Name: "third-party role refused the tokenizer_catalog config-management functions", - StandardOnly: true, - Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_tokenizer('probe', 'x');\"", - ExpectedOutput: expectFailureContaining("permission denied for function create_tokenizer"), + Name: "third-party role refused the tokenizer_catalog config-management functions", + StandardOnly: true, + Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_tokenizer('probe', 'x');\"", + ExpectedOutput: expectFailureContaining("permission denied for function create_tokenizer"), + TokenizerBM25Only: true, }, { // A model function parses its configuration and loads a model // before it writes anything, so refusing it at EXECUTE, not at // the table write, is what keeps that work from running. - Name: "third-party role refused the tokenizer_catalog model functions", - StandardOnly: true, - Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_huggingface_model('probe', 'x');\"", - ExpectedOutput: expectFailureContaining("permission denied for function create_huggingface_model"), + Name: "third-party role refused the tokenizer_catalog model functions", + StandardOnly: true, + Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_huggingface_model('probe', 'x');\"", + ExpectedOutput: expectFailureContaining("permission denied for function create_huggingface_model"), + TokenizerBM25Only: true, }, { // The three functions the read-only use case actually @@ -1658,19 +1742,21 @@ func getExtensionCustomScriptsTests() []Test { // apply_text_analyzer() to process text against an // existing configuration, list_preload_models() to see // what's available. - Name: "third-party role keeps the read-only tokenizer_catalog functions", - StandardOnly: true, - Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT tokenizer_catalog.list_preload_models();\"", - ExpectedOutput: expectSuccess, + Name: "third-party role keeps the read-only tokenizer_catalog functions", + StandardOnly: true, + Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT tokenizer_catalog.list_preload_models();\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // Against the tokenizer and text analyzer the owner created // above: the configuration the owner manages is usable by // every role, not only readable. - Name: "third-party role uses the owner's tokenizer and text analyzer", - StandardOnly: true, - Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT tokenizer_catalog.tokenize('PostgreSQL is great', 'probe_tokenizer'); SELECT tokenizer_catalog.apply_text_analyzer('PostgreSQL is great', 'probe_analyzer');\"", - ExpectedOutput: expectSuccess, + Name: "third-party role uses the owner's tokenizer and text analyzer", + StandardOnly: true, + Cmd: "psql -U reporting_role -d testdb -t -A -c \"SELECT tokenizer_catalog.tokenize('PostgreSQL is great', 'probe_tokenizer'); SELECT tokenizer_catalog.apply_text_analyzer('PostgreSQL is great', 'probe_analyzer');\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // pg_cron is deliberately not part of this fix: cron.job is @@ -1685,10 +1771,11 @@ func getExtensionCustomScriptsTests() []Test { { // Dropped only now, after the third-party role's tokenize() // case above has used them. - Name: "pg_tokenizer after-create.sql lets the owner drop what it created", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.drop_synonym('probe_synonyms'); SELECT tokenizer_catalog.drop_stopwords('probe_stopwords'); SELECT tokenizer_catalog.drop_tokenizer('probe_tokenizer'); SELECT tokenizer_catalog.drop_text_analyzer('probe_analyzer');\"", - ExpectedOutput: expectSuccess, + Name: "pg_tokenizer after-create.sql lets the owner drop what it created", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.drop_synonym('probe_synonyms'); SELECT tokenizer_catalog.drop_stopwords('probe_stopwords'); SELECT tokenizer_catalog.drop_tokenizer('probe_tokenizer'); SELECT tokenizer_catalog.drop_text_analyzer('probe_analyzer');\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { // The reason every script grants to pg_database_owner rather @@ -1702,16 +1789,18 @@ func getExtensionCustomScriptsTests() []Test { ExpectedOutput: expectSuccess, }, { - Name: "new owner inherits the grants after-create.sql gave pg_database_owner", - StandardOnly: true, - Cmd: "psql -U new_owner_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_tokenizer('probe_reassigned', $$ model = 'bert_base_uncased' $$); SELECT tokenizer_catalog.drop_tokenizer('probe_reassigned');\"", - ExpectedOutput: expectSuccess, + Name: "new owner inherits the grants after-create.sql gave pg_database_owner", + StandardOnly: true, + Cmd: "psql -U new_owner_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_tokenizer('probe_reassigned', $$ model = 'bert_base_uncased' $$); SELECT tokenizer_catalog.drop_tokenizer('probe_reassigned');\"", + ExpectedOutput: expectSuccess, + TokenizerBM25Only: true, }, { - Name: "former owner loses the grants after-create.sql gave pg_database_owner", - StandardOnly: true, - Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_tokenizer('probe_reassigned', $$ model = 'bert_base_uncased' $$);\"", - ExpectedOutput: expectFailureContaining("permission denied for function create_tokenizer"), + Name: "former owner loses the grants after-create.sql gave pg_database_owner", + StandardOnly: true, + Cmd: "psql -U gate_test_role -d testdb -t -A -c \"SELECT tokenizer_catalog.create_tokenizer('probe_reassigned', $$ model = 'bert_base_uncased' $$);\"", + ExpectedOutput: expectFailureContaining("permission denied for function create_tokenizer"), + TokenizerBM25Only: true, }, } } From 8e62ab407313985ef0fc77261969cb3868f69c1c Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Thu, 15 Oct 2026 17:22:19 +0500 Subject: [PATCH 02/13] build: drop supautils from PG 19 and skip its tests there --- .../amd64/pg19-rc1-spock5.0.13-standard.txt | 1 - .../arm64/pg19-rc1-spock5.0.13-standard.txt | 1 - tests/main.go | 63 +++++++++++++++++++ 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt index eb82800..aa51da2 100644 --- a/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt @@ -9,5 +9,4 @@ pgedge-pg-vectorize_19-0.27.1-1.el9 pgedge-pg-stat-monitor_19-2.4.0-1.el9 pgedge-vectorizer_19-1.1-1.el9 pgedge-system_stats_19-4.1-1.el9 -pgedge-supautils_19-3.2.2-1.el9 pgedge-safesession_19-1.0-1.el9 diff --git a/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt index eb82800..aa51da2 100644 --- a/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt @@ -9,5 +9,4 @@ pgedge-pg-vectorize_19-0.27.1-1.el9 pgedge-pg-stat-monitor_19-2.4.0-1.el9 pgedge-vectorizer_19-1.1-1.el9 pgedge-system_stats_19-4.1-1.el9 -pgedge-supautils_19-3.2.2-1.el9 pgedge-safesession_19-1.0-1.el9 diff --git a/tests/main.go b/tests/main.go index ff3a07b..7017fef 100644 --- a/tests/main.go +++ b/tests/main.go @@ -72,6 +72,7 @@ func main() { // TEMPORARY: see hasTokenizerBM25. if major := pgMajorFromImage(image); major >= 19 { hasTokenizerBM25 = false + hasSupautils = false } // Derive the expected spock major version from the image tag (e.g. @@ -131,6 +132,14 @@ func spockMajorFromImage(image string) string { // PG 19; the suite is then the same on every major again. var hasTokenizerBM25 = true +// TEMPORARY: supautils 3.2.2 is the only PG 19 build and it aborts the +// postmaster there -- it registers supautils.privileged_extensions_superuser +// with a NULL boot_val, tripping the check_GUC_init assertion PG 19 added. The +// PG 19 standard packagelist therefore omits supautils, so it is left out of +// shared_preload_libraries and its tests are skipped. Delete this once a PG 19 +// build of supautils >= 3.4.4 ships. +var hasSupautils = true + // pgMajorFromImage extracts the PostgreSQL major from an image reference's tag, // e.g. "...:18.6-spock5.0.13-standard-1" yields 18 and "...:19-spock5-minimal" // yields 19. It returns 0 when the tag does not start with a number, in which @@ -174,6 +183,21 @@ func parseFlags() (string, string) { log.Fatalf("Invalid flavor '%s'. Must be 'postgres', 'minimal', 'standard' or 'coldfront'", *flavor) } + // The PostgreSQL major decides which extensions the image is expected to + // ship, and that in turn decides shared_preload_libraries. Getting it wrong + // does not merely skip an assertion: preloading a module the image does not + // have stops the postmaster, so a reference we cannot read a major from is + // refused here rather than misconfiguring the container. A digest-only + // reference is the common case -- "@sha256:..." puts hex where the tag + // belongs. CI retags by digest before calling this, so it passes a tag. + if strings.Contains(*image, "@") { + log.Fatalf("Image %q is a digest reference; pass a tagged one, e.g. %s:19-rc1-spock5.0.13-standard-1", + *image, strings.SplitN(*image, "@", 2)[0]) + } + if pgMajorFromImage(*image) == 0 { + log.Fatalf("Cannot read a PostgreSQL major from image %q. The tag has to start with it, e.g. 18.6-... or 19-rc1-...", *image) + } + return *image, *flavor } @@ -265,6 +289,32 @@ func printPhaseHeader(title string) { fmt.Println() } +// skippedSuites describes the tests withheld on this image and why. A gate that +// silently skips is a gate nobody notices has outlived its cause, so the counts +// are printed on every run. +func skippedSuites(flavor string) []string { + if !includesStandard(flavor) { + return nil + } + + var out []string + if !hasSupautils { + // The whole gate suite goes with it: those tests run through supautils' + // extension gate, so they cannot run without it. + n := len(getSupautilsTests()) + len(getExtensionCustomScriptsTests()) + out = append(out, fmt.Sprintf("%d skipped: image ships no supautils (see hasSupautils)", n)) + } else if !hasTokenizerBM25 { + n := 0 + for _, t := range getExtensionCustomScriptsTests() { + if t.TokenizerBM25Only { + n++ + } + } + out = append(out, fmt.Sprintf("%d skipped: image ships no pg_tokenizer/vchord_bm25 (see hasTokenizerBM25)", n)) + } + return out +} + func printSummary(errorCount int, flavor, spockMajor string) { tests := buildTestSuite(spockMajor) extensionTests := 0 @@ -295,6 +345,9 @@ func printSummary(errorCount int, flavor, spockMajor string) { fmt.Println() fmt.Println("Test Summary") fmt.Printf(" Tests Executed: %d\n", testsRun) + for _, line := range skippedSuites(flavor) { + fmt.Printf(" %s\n", line) + } fmt.Printf(" Errors: %d\n", errorCount) if errorCount == 0 { fmt.Printf(" Status: ✅ ALL TESTS PASSED\n") @@ -582,6 +635,11 @@ func (r *TestRunner) Start() error { } if includesStandard(r.flavor) { sharedLibs = "spock,snowflake,pgaudit,supautils,pg_cron" + // TEMPORARY: see hasSupautils. Preloading a module the image does not + // ship stops the postmaster from starting at all. + if !hasSupautils { + sharedLibs = "spock,snowflake,pgaudit,pg_cron" + } // TEMPORARY: see hasTokenizerBM25. Preloading an extension the image // does not ship stops the postmaster from starting at all. if hasTokenizerBM25 { @@ -1078,6 +1136,11 @@ func getColdfrontTests() []Test { func getStandardOnlyTests() []Test { tests := append(getSystemStatsAndVectorTests(), getPostGISAuditBackrestTests()...) + // TEMPORARY: see hasSupautils. Both suites need supautils loaded -- the + // custom-scripts ones run entirely through its extension gate. + if !hasSupautils { + return tests + } tests = append(tests, getSupautilsTests()...) return append(tests, getExtensionCustomScriptsTests()...) } From 5e0e002ef14d00d37ccdbf850f9460e1db6fa64b Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Wed, 4 Nov 2026 15:57:54 +0500 Subject: [PATCH 03/13] build: upgrade pgBackRest to 2.60.0 --- packagelists/amd64/pg16.15-spock5.0.13-standard.txt | 2 +- packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt | 2 +- packagelists/amd64/pg17.11-spock5.0.13-standard.txt | 2 +- packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt | 2 +- packagelists/amd64/pg18.6-spock5.0.13-standard.txt | 2 +- packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt | 2 +- packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt | 2 +- packagelists/arm64/pg16.15-spock5.0.13-standard.txt | 2 +- packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt | 2 +- packagelists/arm64/pg17.11-spock5.0.13-standard.txt | 2 +- packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt | 2 +- packagelists/arm64/pg18.6-spock5.0.13-standard.txt | 2 +- packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt | 2 +- packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packagelists/amd64/pg16.15-spock5.0.13-standard.txt b/packagelists/amd64/pg16.15-spock5.0.13-standard.txt index d905594..f13763b 100644 --- a/packagelists/amd64/pg16.15-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg16.15-spock5.0.13-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_16-16.1-1.el9 pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_16-1.13.0-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 diff --git a/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt index d905594..f13763b 100644 --- a/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_16-16.1-1.el9 pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_16-1.13.0-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 diff --git a/packagelists/amd64/pg17.11-spock5.0.13-standard.txt b/packagelists/amd64/pg17.11-spock5.0.13-standard.txt index 2385106..b6f1032 100644 --- a/packagelists/amd64/pg17.11-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg17.11-spock5.0.13-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_17-17.1-1.el9 pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_17-1.13.0-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 diff --git a/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt index 2385106..b6f1032 100644 --- a/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_17-17.1-1.el9 pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_17-1.13.0-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 diff --git a/packagelists/amd64/pg18.6-spock5.0.13-standard.txt b/packagelists/amd64/pg18.6-spock5.0.13-standard.txt index a0a95e1..d086163 100644 --- a/packagelists/amd64/pg18.6-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg18.6-spock5.0.13-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_18-18.0-1.el9 pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_18-1.13.0-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 diff --git a/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt index a0a95e1..d086163 100644 --- a/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_18-18.0-1.el9 pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_18-1.13.0-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 diff --git a/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt index aa51da2..0898ce4 100644 --- a/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_19-19-beta3_1.el9 pgedge-postgis36_19-3.6.4-1.el9 pgedge-pgvector_19-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_19-1.13.0-1.el9 pgedge-pg_cron_19-1.6.8-1.el9 diff --git a/packagelists/arm64/pg16.15-spock5.0.13-standard.txt b/packagelists/arm64/pg16.15-spock5.0.13-standard.txt index d905594..f13763b 100644 --- a/packagelists/arm64/pg16.15-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg16.15-spock5.0.13-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_16-16.1-1.el9 pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_16-1.13.0-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 diff --git a/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt index d905594..f13763b 100644 --- a/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_16-16.1-1.el9 pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_16-1.13.0-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 diff --git a/packagelists/arm64/pg17.11-spock5.0.13-standard.txt b/packagelists/arm64/pg17.11-spock5.0.13-standard.txt index 2385106..b6f1032 100644 --- a/packagelists/arm64/pg17.11-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg17.11-spock5.0.13-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_17-17.1-1.el9 pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_17-1.13.0-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 diff --git a/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt index 2385106..b6f1032 100644 --- a/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_17-17.1-1.el9 pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_17-1.13.0-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 diff --git a/packagelists/arm64/pg18.6-spock5.0.13-standard.txt b/packagelists/arm64/pg18.6-spock5.0.13-standard.txt index a0a95e1..d086163 100644 --- a/packagelists/arm64/pg18.6-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg18.6-spock5.0.13-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_18-18.0-1.el9 pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_18-1.13.0-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 diff --git a/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt index a0a95e1..d086163 100644 --- a/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_18-18.0-1.el9 pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_18-1.13.0-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 diff --git a/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt index aa51da2..0898ce4 100644 --- a/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt @@ -1,7 +1,7 @@ pgedge-pgaudit_19-19-beta3_1.el9 pgedge-postgis36_19-3.6.4-1.el9 pgedge-pgvector_19-0.8.7-1.el9 -pgedge-pgbackrest-2.59.3-1.el9 +pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_19-1.13.0-1.el9 pgedge-pg_cron_19-1.6.8-1.el9 From 2233e61d529dd58051f7a26bd33bad51c9a590ec Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Mon, 9 Nov 2026 15:56:35 +0500 Subject: [PATCH 04/13] build: move the PostgreSQL 19 images to rc2 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 2 +- packagelists/amd64/pg19-rc1-postgres.txt | 2 -- packagelists/amd64/pg19-rc2-postgres.txt | 2 ++ ...ock5.0.13-minimal.txt => pg19-rc2-spock5.0.13-minimal.txt} | 0 ...k5.0.13-standard.txt => pg19-rc2-spock5.0.13-standard.txt} | 0 packagelists/arm64/pg19-rc1-postgres.txt | 2 -- packagelists/arm64/pg19-rc2-postgres.txt | 2 ++ ...ock5.0.13-minimal.txt => pg19-rc2-spock5.0.13-minimal.txt} | 0 ...k5.0.13-standard.txt => pg19-rc2-spock5.0.13-standard.txt} | 0 scripts/build_pgedge_images.py | 4 ++-- tests/main.go | 4 ++-- 11 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 packagelists/amd64/pg19-rc1-postgres.txt create mode 100644 packagelists/amd64/pg19-rc2-postgres.txt rename packagelists/amd64/{pg19-rc1-spock5.0.13-minimal.txt => pg19-rc2-spock5.0.13-minimal.txt} (100%) rename packagelists/amd64/{pg19-rc1-spock5.0.13-standard.txt => pg19-rc2-spock5.0.13-standard.txt} (100%) delete mode 100644 packagelists/arm64/pg19-rc1-postgres.txt create mode 100644 packagelists/arm64/pg19-rc2-postgres.txt rename packagelists/arm64/{pg19-rc1-spock5.0.13-minimal.txt => pg19-rc2-spock5.0.13-minimal.txt} (100%) rename packagelists/arm64/{pg19-rc1-spock5.0.13-standard.txt => pg19-rc2-spock5.0.13-standard.txt} (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 878a636..dfe4cff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ - Upgraded PostGIS to 3.6.4, pgBackRest to 2.59.3, system_stats to 4.0, supautils to 3.4.4, and pgvector to 0.8.7 in standard images - Upgraded Spock to 5.0.13 in the spock 5 images -- Added PostgreSQL 19 (rc1) postgres, minimal and standard images for spock 5. +- Added PostgreSQL 19 (rc2) postgres, minimal and standard images for spock 5. They omit pg_tokenizer and vchord_bm25, which have no PG 19 build yet; the tests covering those extensions are skipped on PG 19 until they ship. No coldfront or spock 6 images for PG 19 yet. diff --git a/packagelists/amd64/pg19-rc1-postgres.txt b/packagelists/amd64/pg19-rc1-postgres.txt deleted file mode 100644 index 51b06af..0000000 --- a/packagelists/amd64/pg19-rc1-postgres.txt +++ /dev/null @@ -1,2 +0,0 @@ -pgedge-postgresql19-19-rc1_1.el9 -pgedge-postgresql19-server-19-rc1_1.el9 diff --git a/packagelists/amd64/pg19-rc2-postgres.txt b/packagelists/amd64/pg19-rc2-postgres.txt new file mode 100644 index 0000000..c9176bf --- /dev/null +++ b/packagelists/amd64/pg19-rc2-postgres.txt @@ -0,0 +1,2 @@ +pgedge-postgresql19-19-rc2_1.el9 +pgedge-postgresql19-server-19-rc2_1.el9 diff --git a/packagelists/amd64/pg19-rc1-spock5.0.13-minimal.txt b/packagelists/amd64/pg19-rc2-spock5.0.13-minimal.txt similarity index 100% rename from packagelists/amd64/pg19-rc1-spock5.0.13-minimal.txt rename to packagelists/amd64/pg19-rc2-spock5.0.13-minimal.txt diff --git a/packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt similarity index 100% rename from packagelists/amd64/pg19-rc1-spock5.0.13-standard.txt rename to packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt diff --git a/packagelists/arm64/pg19-rc1-postgres.txt b/packagelists/arm64/pg19-rc1-postgres.txt deleted file mode 100644 index 51b06af..0000000 --- a/packagelists/arm64/pg19-rc1-postgres.txt +++ /dev/null @@ -1,2 +0,0 @@ -pgedge-postgresql19-19-rc1_1.el9 -pgedge-postgresql19-server-19-rc1_1.el9 diff --git a/packagelists/arm64/pg19-rc2-postgres.txt b/packagelists/arm64/pg19-rc2-postgres.txt new file mode 100644 index 0000000..c9176bf --- /dev/null +++ b/packagelists/arm64/pg19-rc2-postgres.txt @@ -0,0 +1,2 @@ +pgedge-postgresql19-19-rc2_1.el9 +pgedge-postgresql19-server-19-rc2_1.el9 diff --git a/packagelists/arm64/pg19-rc1-spock5.0.13-minimal.txt b/packagelists/arm64/pg19-rc2-spock5.0.13-minimal.txt similarity index 100% rename from packagelists/arm64/pg19-rc1-spock5.0.13-minimal.txt rename to packagelists/arm64/pg19-rc2-spock5.0.13-minimal.txt diff --git a/packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt similarity index 100% rename from packagelists/arm64/pg19-rc1-spock5.0.13-standard.txt rename to packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt diff --git a/scripts/build_pgedge_images.py b/scripts/build_pgedge_images.py index e3c5611..5f56be0 100755 --- a/scripts/build_pgedge_images.py +++ b/scripts/build_pgedge_images.py @@ -276,7 +276,7 @@ def make_flavor_images( is_latest_for_pg_major=True, ), PgEdgeImage( - postgres_version="19-rc1", spock_version="", epoch=1, flavor="postgres", + postgres_version="19-rc2", spock_version="", epoch=1, flavor="postgres", is_latest_for_pg_major=True, package_release_channel="staging", ), # pg16 images @@ -305,7 +305,7 @@ def make_flavor_images( ), # pg19 images. No coldfront or spock 6 line yet: neither has a PG 19 build. *make_flavor_images( - postgres_version="19-rc1", + postgres_version="19-rc2", spock_version="5.0.13", epochs={"minimal": 1, "standard": 1}, channels={"minimal": "staging", "standard": "staging"}, diff --git a/tests/main.go b/tests/main.go index 7017fef..346deba 100644 --- a/tests/main.go +++ b/tests/main.go @@ -191,11 +191,11 @@ func parseFlags() (string, string) { // reference is the common case -- "@sha256:..." puts hex where the tag // belongs. CI retags by digest before calling this, so it passes a tag. if strings.Contains(*image, "@") { - log.Fatalf("Image %q is a digest reference; pass a tagged one, e.g. %s:19-rc1-spock5.0.13-standard-1", + log.Fatalf("Image %q is a digest reference; pass a tagged one, e.g. %s:19-rc2-spock5.0.13-standard-1", *image, strings.SplitN(*image, "@", 2)[0]) } if pgMajorFromImage(*image) == 0 { - log.Fatalf("Cannot read a PostgreSQL major from image %q. The tag has to start with it, e.g. 18.6-... or 19-rc1-...", *image) + log.Fatalf("Cannot read a PostgreSQL major from image %q. The tag has to start with it, e.g. 18.6-... or 19-rc2-...", *image) } return *image, *flavor From 4e07fe7b5a7d6adf625f76893d21250e8a9e8bd2 Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Mon, 9 Nov 2026 16:11:44 +0500 Subject: [PATCH 05/13] build: upgrade supautils to 4.0.0, pgmq to 1.13.1, and pgaudit for PG 19 to 19rc1 Co-Authored-By: Claude Opus 5.5 --- packagelists/amd64/pg16.15-spock5.0.13-standard.txt | 4 ++-- packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt | 4 ++-- packagelists/amd64/pg17.11-spock5.0.13-standard.txt | 4 ++-- packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt | 4 ++-- packagelists/amd64/pg18.6-spock5.0.13-standard.txt | 4 ++-- packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt | 4 ++-- packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt | 4 ++-- packagelists/arm64/pg16.15-spock5.0.13-standard.txt | 4 ++-- packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt | 4 ++-- packagelists/arm64/pg17.11-spock5.0.13-standard.txt | 4 ++-- packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt | 4 ++-- packagelists/arm64/pg18.6-spock5.0.13-standard.txt | 4 ++-- packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt | 4 ++-- packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt | 4 ++-- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/packagelists/amd64/pg16.15-spock5.0.13-standard.txt b/packagelists/amd64/pg16.15-spock5.0.13-standard.txt index f13763b..97de896 100644 --- a/packagelists/amd64/pg16.15-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg16.15-spock5.0.13-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_16-1.13.0-1.el9 +pgedge-pgmq_16-1.13.1-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 pgedge-pg-tokenizer_16-0.1.1-1.el9 pgedge-pg-vectorize_16-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_16-2.4.0-1.el9 pgedge-vchord-bm25_16-0.2.2-1.el9 pgedge-vectorizer_16-1.1-1.el9 pgedge-system_stats_16-4.1-1.el9 -pgedge-supautils_16-3.4.4-1.el9 +pgedge-supautils_16-4.0.0-1.el9 pgedge-safesession_16-1.0-1.el9 diff --git a/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt index f13763b..97de896 100644 --- a/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_16-1.13.0-1.el9 +pgedge-pgmq_16-1.13.1-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 pgedge-pg-tokenizer_16-0.1.1-1.el9 pgedge-pg-vectorize_16-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_16-2.4.0-1.el9 pgedge-vchord-bm25_16-0.2.2-1.el9 pgedge-vectorizer_16-1.1-1.el9 pgedge-system_stats_16-4.1-1.el9 -pgedge-supautils_16-3.4.4-1.el9 +pgedge-supautils_16-4.0.0-1.el9 pgedge-safesession_16-1.0-1.el9 diff --git a/packagelists/amd64/pg17.11-spock5.0.13-standard.txt b/packagelists/amd64/pg17.11-spock5.0.13-standard.txt index b6f1032..61f8bd8 100644 --- a/packagelists/amd64/pg17.11-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg17.11-spock5.0.13-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_17-1.13.0-1.el9 +pgedge-pgmq_17-1.13.1-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 pgedge-pg-tokenizer_17-0.1.1-1.el9 pgedge-pg-vectorize_17-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_17-2.4.0-1.el9 pgedge-vchord-bm25_17-0.2.2-1.el9 pgedge-vectorizer_17-1.1-1.el9 pgedge-system_stats_17-4.1-1.el9 -pgedge-supautils_17-3.4.4-1.el9 +pgedge-supautils_17-4.0.0-1.el9 pgedge-safesession_17-1.0-1.el9 diff --git a/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt index b6f1032..61f8bd8 100644 --- a/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_17-1.13.0-1.el9 +pgedge-pgmq_17-1.13.1-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 pgedge-pg-tokenizer_17-0.1.1-1.el9 pgedge-pg-vectorize_17-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_17-2.4.0-1.el9 pgedge-vchord-bm25_17-0.2.2-1.el9 pgedge-vectorizer_17-1.1-1.el9 pgedge-system_stats_17-4.1-1.el9 -pgedge-supautils_17-3.4.4-1.el9 +pgedge-supautils_17-4.0.0-1.el9 pgedge-safesession_17-1.0-1.el9 diff --git a/packagelists/amd64/pg18.6-spock5.0.13-standard.txt b/packagelists/amd64/pg18.6-spock5.0.13-standard.txt index d086163..558b36f 100644 --- a/packagelists/amd64/pg18.6-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg18.6-spock5.0.13-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_18-1.13.0-1.el9 +pgedge-pgmq_18-1.13.1-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 pgedge-pg-tokenizer_18-0.1.1-1.el9 pgedge-pg-vectorize_18-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_18-2.4.0-1.el9 pgedge-vchord-bm25_18-0.2.2-1.el9 pgedge-vectorizer_18-1.1-1.el9 pgedge-system_stats_18-4.1-1.el9 -pgedge-supautils_18-3.4.4-1.el9 +pgedge-supautils_18-4.0.0-1.el9 pgedge-safesession_18-1.0-1.el9 diff --git a/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt index d086163..558b36f 100644 --- a/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_18-1.13.0-1.el9 +pgedge-pgmq_18-1.13.1-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 pgedge-pg-tokenizer_18-0.1.1-1.el9 pgedge-pg-vectorize_18-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_18-2.4.0-1.el9 pgedge-vchord-bm25_18-0.2.2-1.el9 pgedge-vectorizer_18-1.1-1.el9 pgedge-system_stats_18-4.1-1.el9 -pgedge-supautils_18-3.4.4-1.el9 +pgedge-supautils_18-4.0.0-1.el9 pgedge-safesession_18-1.0-1.el9 diff --git a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt index 0898ce4..bdc3881 100644 --- a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt @@ -1,9 +1,9 @@ -pgedge-pgaudit_19-19-beta3_1.el9 +pgedge-pgaudit_19-19-rc1_1.el9 pgedge-postgis36_19-3.6.4-1.el9 pgedge-pgvector_19-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_19-1.13.0-1.el9 +pgedge-pgmq_19-1.13.1-1.el9 pgedge-pg_cron_19-1.6.8-1.el9 pgedge-pg-vectorize_19-0.27.1-1.el9 pgedge-pg-stat-monitor_19-2.4.0-1.el9 diff --git a/packagelists/arm64/pg16.15-spock5.0.13-standard.txt b/packagelists/arm64/pg16.15-spock5.0.13-standard.txt index f13763b..97de896 100644 --- a/packagelists/arm64/pg16.15-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg16.15-spock5.0.13-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_16-1.13.0-1.el9 +pgedge-pgmq_16-1.13.1-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 pgedge-pg-tokenizer_16-0.1.1-1.el9 pgedge-pg-vectorize_16-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_16-2.4.0-1.el9 pgedge-vchord-bm25_16-0.2.2-1.el9 pgedge-vectorizer_16-1.1-1.el9 pgedge-system_stats_16-4.1-1.el9 -pgedge-supautils_16-3.4.4-1.el9 +pgedge-supautils_16-4.0.0-1.el9 pgedge-safesession_16-1.0-1.el9 diff --git a/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt index f13763b..97de896 100644 --- a/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_16-1.13.0-1.el9 +pgedge-pgmq_16-1.13.1-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 pgedge-pg-tokenizer_16-0.1.1-1.el9 pgedge-pg-vectorize_16-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_16-2.4.0-1.el9 pgedge-vchord-bm25_16-0.2.2-1.el9 pgedge-vectorizer_16-1.1-1.el9 pgedge-system_stats_16-4.1-1.el9 -pgedge-supautils_16-3.4.4-1.el9 +pgedge-supautils_16-4.0.0-1.el9 pgedge-safesession_16-1.0-1.el9 diff --git a/packagelists/arm64/pg17.11-spock5.0.13-standard.txt b/packagelists/arm64/pg17.11-spock5.0.13-standard.txt index b6f1032..61f8bd8 100644 --- a/packagelists/arm64/pg17.11-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg17.11-spock5.0.13-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_17-1.13.0-1.el9 +pgedge-pgmq_17-1.13.1-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 pgedge-pg-tokenizer_17-0.1.1-1.el9 pgedge-pg-vectorize_17-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_17-2.4.0-1.el9 pgedge-vchord-bm25_17-0.2.2-1.el9 pgedge-vectorizer_17-1.1-1.el9 pgedge-system_stats_17-4.1-1.el9 -pgedge-supautils_17-3.4.4-1.el9 +pgedge-supautils_17-4.0.0-1.el9 pgedge-safesession_17-1.0-1.el9 diff --git a/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt index b6f1032..61f8bd8 100644 --- a/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_17-1.13.0-1.el9 +pgedge-pgmq_17-1.13.1-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 pgedge-pg-tokenizer_17-0.1.1-1.el9 pgedge-pg-vectorize_17-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_17-2.4.0-1.el9 pgedge-vchord-bm25_17-0.2.2-1.el9 pgedge-vectorizer_17-1.1-1.el9 pgedge-system_stats_17-4.1-1.el9 -pgedge-supautils_17-3.4.4-1.el9 +pgedge-supautils_17-4.0.0-1.el9 pgedge-safesession_17-1.0-1.el9 diff --git a/packagelists/arm64/pg18.6-spock5.0.13-standard.txt b/packagelists/arm64/pg18.6-spock5.0.13-standard.txt index d086163..558b36f 100644 --- a/packagelists/arm64/pg18.6-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg18.6-spock5.0.13-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_18-1.13.0-1.el9 +pgedge-pgmq_18-1.13.1-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 pgedge-pg-tokenizer_18-0.1.1-1.el9 pgedge-pg-vectorize_18-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_18-2.4.0-1.el9 pgedge-vchord-bm25_18-0.2.2-1.el9 pgedge-vectorizer_18-1.1-1.el9 pgedge-system_stats_18-4.1-1.el9 -pgedge-supautils_18-3.4.4-1.el9 +pgedge-supautils_18-4.0.0-1.el9 pgedge-safesession_18-1.0-1.el9 diff --git a/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt index d086163..558b36f 100644 --- a/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt @@ -3,7 +3,7 @@ pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_18-1.13.0-1.el9 +pgedge-pgmq_18-1.13.1-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 pgedge-pg-tokenizer_18-0.1.1-1.el9 pgedge-pg-vectorize_18-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_18-2.4.0-1.el9 pgedge-vchord-bm25_18-0.2.2-1.el9 pgedge-vectorizer_18-1.1-1.el9 pgedge-system_stats_18-4.1-1.el9 -pgedge-supautils_18-3.4.4-1.el9 +pgedge-supautils_18-4.0.0-1.el9 pgedge-safesession_18-1.0-1.el9 diff --git a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt index 0898ce4..bdc3881 100644 --- a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt @@ -1,9 +1,9 @@ -pgedge-pgaudit_19-19-beta3_1.el9 +pgedge-pgaudit_19-19-rc1_1.el9 pgedge-postgis36_19-3.6.4-1.el9 pgedge-pgvector_19-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_19-1.13.0-1.el9 +pgedge-pgmq_19-1.13.1-1.el9 pgedge-pg_cron_19-1.6.8-1.el9 pgedge-pg-vectorize_19-0.27.1-1.el9 pgedge-pg-stat-monitor_19-2.4.0-1.el9 From 85d29b806d430eb3a0bc422cbde8de0266a0944d Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Mon, 9 Nov 2026 16:15:31 +0500 Subject: [PATCH 06/13] build: restore supautils 4.0.0 in the PG 19 standard images and run its tests there supautils 3.2.2 aborted the PG 19 postmaster, so it was left out of the PG 19 standard images and its tests were skipped. 4.0.0 has a PG 19 build, so it is pinned again and the hasSupautils gate is removed: the supautils and extension-custom-scripts suites run on every major once more. Co-Authored-By: Claude Opus 5.5 --- .../amd64/pg19-rc2-spock5.0.13-standard.txt | 1 + .../arm64/pg19-rc2-spock5.0.13-standard.txt | 1 + tests/main.go | 26 +------------------ 3 files changed, 3 insertions(+), 25 deletions(-) diff --git a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt index bdc3881..0c5fe66 100644 --- a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt @@ -9,4 +9,5 @@ pgedge-pg-vectorize_19-0.27.1-1.el9 pgedge-pg-stat-monitor_19-2.4.0-1.el9 pgedge-vectorizer_19-1.1-1.el9 pgedge-system_stats_19-4.1-1.el9 +pgedge-supautils_19-4.0.0-1.el9 pgedge-safesession_19-1.0-1.el9 diff --git a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt index bdc3881..0c5fe66 100644 --- a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt @@ -9,4 +9,5 @@ pgedge-pg-vectorize_19-0.27.1-1.el9 pgedge-pg-stat-monitor_19-2.4.0-1.el9 pgedge-vectorizer_19-1.1-1.el9 pgedge-system_stats_19-4.1-1.el9 +pgedge-supautils_19-4.0.0-1.el9 pgedge-safesession_19-1.0-1.el9 diff --git a/tests/main.go b/tests/main.go index 346deba..cb7b99f 100644 --- a/tests/main.go +++ b/tests/main.go @@ -72,7 +72,6 @@ func main() { // TEMPORARY: see hasTokenizerBM25. if major := pgMajorFromImage(image); major >= 19 { hasTokenizerBM25 = false - hasSupautils = false } // Derive the expected spock major version from the image tag (e.g. @@ -132,14 +131,6 @@ func spockMajorFromImage(image string) string { // PG 19; the suite is then the same on every major again. var hasTokenizerBM25 = true -// TEMPORARY: supautils 3.2.2 is the only PG 19 build and it aborts the -// postmaster there -- it registers supautils.privileged_extensions_superuser -// with a NULL boot_val, tripping the check_GUC_init assertion PG 19 added. The -// PG 19 standard packagelist therefore omits supautils, so it is left out of -// shared_preload_libraries and its tests are skipped. Delete this once a PG 19 -// build of supautils >= 3.4.4 ships. -var hasSupautils = true - // pgMajorFromImage extracts the PostgreSQL major from an image reference's tag, // e.g. "...:18.6-spock5.0.13-standard-1" yields 18 and "...:19-spock5-minimal" // yields 19. It returns 0 when the tag does not start with a number, in which @@ -298,12 +289,7 @@ func skippedSuites(flavor string) []string { } var out []string - if !hasSupautils { - // The whole gate suite goes with it: those tests run through supautils' - // extension gate, so they cannot run without it. - n := len(getSupautilsTests()) + len(getExtensionCustomScriptsTests()) - out = append(out, fmt.Sprintf("%d skipped: image ships no supautils (see hasSupautils)", n)) - } else if !hasTokenizerBM25 { + if !hasTokenizerBM25 { n := 0 for _, t := range getExtensionCustomScriptsTests() { if t.TokenizerBM25Only { @@ -635,11 +621,6 @@ func (r *TestRunner) Start() error { } if includesStandard(r.flavor) { sharedLibs = "spock,snowflake,pgaudit,supautils,pg_cron" - // TEMPORARY: see hasSupautils. Preloading a module the image does not - // ship stops the postmaster from starting at all. - if !hasSupautils { - sharedLibs = "spock,snowflake,pgaudit,pg_cron" - } // TEMPORARY: see hasTokenizerBM25. Preloading an extension the image // does not ship stops the postmaster from starting at all. if hasTokenizerBM25 { @@ -1136,11 +1117,6 @@ func getColdfrontTests() []Test { func getStandardOnlyTests() []Test { tests := append(getSystemStatsAndVectorTests(), getPostGISAuditBackrestTests()...) - // TEMPORARY: see hasSupautils. Both suites need supautils loaded -- the - // custom-scripts ones run entirely through its extension gate. - if !hasSupautils { - return tests - } tests = append(tests, getSupautilsTests()...) return append(tests, getExtensionCustomScriptsTests()...) } From 6ca9339b9c171ae057c0d4a82f004ce8ba62d0e9 Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Mon, 9 Nov 2026 16:47:43 +0500 Subject: [PATCH 07/13] fix(tests): do not read a registry port as the PostgreSQL major pgMajorFromImage took everything after the last colon as the tag, so an untagged reference such as 127.0.0.1:5000/pgedge-postgres yielded major 5000. That passed the unreadable-major guard and switched on the PG 19 test gates. Only a colon after the last slash now starts a tag; an untagged reference yields 0 and is refused. Co-Authored-By: Claude Opus 5.5 --- tests/main.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/main.go b/tests/main.go index cb7b99f..a135935 100644 --- a/tests/main.go +++ b/tests/main.go @@ -133,11 +133,12 @@ var hasTokenizerBM25 = true // pgMajorFromImage extracts the PostgreSQL major from an image reference's tag, // e.g. "...:18.6-spock5.0.13-standard-1" yields 18 and "...:19-spock5-minimal" -// yields 19. It returns 0 when the tag does not start with a number, in which -// case the caller keeps the default and skips nothing. +// yields 19. It returns 0 when the reference has no tag or the tag does not +// start with a number. Only a colon after the last "/" starts a tag, so the +// port in an untagged "127.0.0.1:5000/pgedge-postgres" is not read as a major. func pgMajorFromImage(image string) int { - tag := image - if idx := strings.LastIndex(image, ":"); idx != -1 { + tag := "" + if idx := strings.LastIndex(image, ":"); idx > strings.LastIndex(image, "/") { tag = image[idx+1:] } From d2e9d04c3e7acb0bbf82afc9dacb62e6fb72bebe Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Mon, 9 Nov 2026 17:29:27 +0500 Subject: [PATCH 08/13] fix(examples): preload and create only the extensions the image ships The enterprise and distributed compose examples hard-coded pg_tokenizer in shared_preload_libraries and in the CREATE EXTENSION list. The PG 19 standard image does not ship it, so pointing POSTGRES_IMAGE at that image stopped the postmaster on the post-init restart. Both scripts now preload a library only when its .so is in pg_config --pkglibdir and create an extension only when pg_available_extensions lists it, logging what they skip. Images that ship everything, such as PG 18 standard, are unchanged. Co-Authored-By: Claude Opus 5.5 --- .../compose/distributed/docker-compose.yaml | 19 ++++++++++++++++++- .../compose/enterprise/docker-compose.yaml | 19 ++++++++++++++++++- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/examples/compose/distributed/docker-compose.yaml b/examples/compose/distributed/docker-compose.yaml index ce2acfe..447894a 100644 --- a/examples/compose/distributed/docker-compose.yaml +++ b/examples/compose/distributed/docker-compose.yaml @@ -113,7 +113,19 @@ configs: #!/usr/bin/env bash set -Eeo pipefail - EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer") + WANTED=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer") + + # Preload only the libraries this image ships: preloading a missing one + # stops the postmaster. Not every extension has a build for every major. + PKGLIBDIR=$$(pg_config --pkglibdir) + EXTENSIONS=() + for EXT in "$${WANTED[@]}"; do + if [[ -f "$$PKGLIBDIR/$$EXT.so" ]]; then + EXTENSIONS+=("$$EXT") + else + echo "Skipping $$EXT: not available in this image" + fi + done PGCONF="$$PGDATA/postgresql.conf" @@ -175,6 +187,11 @@ configs: echo "Initializing extensions: $${EXTENSIONS[*]}" for EXT in "$${EXTENSIONS[@]}"; do + AVAILABLE=$$(psql -v ON_ERROR_STOP=1 --username "$$POSTGRES_USER" --dbname "$$POSTGRES_DB" -tAc "SELECT 1 FROM pg_available_extensions WHERE name = '$$EXT';") + if [[ "$$AVAILABLE" != "1" ]]; then + echo "Skipping extension $$EXT: not available in this image" + continue + fi echo "Creating extension: $$EXT" psql -v ON_ERROR_STOP=1 --username "$$POSTGRES_USER" --dbname "$$POSTGRES_DB" -c "CREATE EXTENSION IF NOT EXISTS \"$$EXT\";" done diff --git a/examples/compose/enterprise/docker-compose.yaml b/examples/compose/enterprise/docker-compose.yaml index 6ece451..1e2d258 100644 --- a/examples/compose/enterprise/docker-compose.yaml +++ b/examples/compose/enterprise/docker-compose.yaml @@ -33,7 +33,19 @@ configs: #!/usr/bin/env bash set -Eeo pipefail - EXTENSIONS=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer") + WANTED=("pg_stat_statements" "pgaudit" "snowflake" "spock" "postgis-3" "pg_stat_monitor" "pg_tokenizer" "pg_cron" "vectorize" "pgedge_vectorizer") + + # Preload only the libraries this image ships: preloading a missing one + # stops the postmaster. Not every extension has a build for every major. + PKGLIBDIR=$$(pg_config --pkglibdir) + EXTENSIONS=() + for EXT in "$${WANTED[@]}"; do + if [[ -f "$$PKGLIBDIR/$$EXT.so" ]]; then + EXTENSIONS+=("$$EXT") + else + echo "Skipping $$EXT: not available in this image" + fi + done PGCONF="$$PGDATA/postgresql.conf" @@ -95,6 +107,11 @@ configs: echo "Initializing extensions: $${EXTENSIONS[*]}" for EXT in "$${EXTENSIONS[@]}"; do + AVAILABLE=$$(psql -v ON_ERROR_STOP=1 --username "$$POSTGRES_USER" --dbname "$$POSTGRES_DB" -tAc "SELECT 1 FROM pg_available_extensions WHERE name = '$$EXT';") + if [[ "$$AVAILABLE" != "1" ]]; then + echo "Skipping extension $$EXT: not available in this image" + continue + fi echo "Creating extension: $$EXT" psql -v ON_ERROR_STOP=1 --username "$$POSTGRES_USER" --dbname "$$POSTGRES_DB" -c "CREATE EXTENSION IF NOT EXISTS \"$$EXT\";" done \ No newline at end of file From 079951900815859c3e87d94e4db0c6ad82cd7829 Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Mon, 9 Nov 2026 21:22:03 +0500 Subject: [PATCH 09/13] build: use build 2 of the rebuilt PG 19 extension packages --- packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt | 12 ++++++------ packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt index 0c5fe66..420f773 100644 --- a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt @@ -1,13 +1,13 @@ pgedge-pgaudit_19-19-rc1_1.el9 -pgedge-postgis36_19-3.6.4-1.el9 -pgedge-pgvector_19-0.8.7-1.el9 +pgedge-postgis36_19-3.6.4-2.el9 +pgedge-pgvector_19-0.8.7-2.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_19-1.13.1-1.el9 -pgedge-pg_cron_19-1.6.8-1.el9 -pgedge-pg-vectorize_19-0.27.1-1.el9 -pgedge-pg-stat-monitor_19-2.4.0-1.el9 +pgedge-pg_cron_19-1.6.8-2.el9 +pgedge-pg-vectorize_19-0.27.1-2.el9 +pgedge-pg-stat-monitor_19-2.4.0-2.el9 pgedge-vectorizer_19-1.1-1.el9 -pgedge-system_stats_19-4.1-1.el9 +pgedge-system_stats_19-4.1-2.el9 pgedge-supautils_19-4.0.0-1.el9 pgedge-safesession_19-1.0-1.el9 diff --git a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt index 0c5fe66..420f773 100644 --- a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt @@ -1,13 +1,13 @@ pgedge-pgaudit_19-19-rc1_1.el9 -pgedge-postgis36_19-3.6.4-1.el9 -pgedge-pgvector_19-0.8.7-1.el9 +pgedge-postgis36_19-3.6.4-2.el9 +pgedge-pgvector_19-0.8.7-2.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_19-1.13.1-1.el9 -pgedge-pg_cron_19-1.6.8-1.el9 -pgedge-pg-vectorize_19-0.27.1-1.el9 -pgedge-pg-stat-monitor_19-2.4.0-1.el9 +pgedge-pg_cron_19-1.6.8-2.el9 +pgedge-pg-vectorize_19-0.27.1-2.el9 +pgedge-pg-stat-monitor_19-2.4.0-2.el9 pgedge-vectorizer_19-1.1-1.el9 -pgedge-system_stats_19-4.1-1.el9 +pgedge-system_stats_19-4.1-2.el9 pgedge-supautils_19-4.0.0-1.el9 pgedge-safesession_19-1.0-1.el9 From c980336ed590a3a0fa015096426ad3382e6ddaca Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Mon, 9 Nov 2026 21:22:03 +0500 Subject: [PATCH 10/13] build: leave PG 16-18 package lists to the November release branch --- packagelists/amd64/pg16.15-spock5.0.13-standard.txt | 6 +++--- packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt | 6 +++--- packagelists/amd64/pg17.11-spock5.0.13-standard.txt | 6 +++--- packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt | 6 +++--- packagelists/amd64/pg18.6-spock5.0.13-standard.txt | 6 +++--- packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt | 6 +++--- packagelists/arm64/pg16.15-spock5.0.13-standard.txt | 6 +++--- packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt | 6 +++--- packagelists/arm64/pg17.11-spock5.0.13-standard.txt | 6 +++--- packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt | 6 +++--- packagelists/arm64/pg18.6-spock5.0.13-standard.txt | 6 +++--- packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt | 6 +++--- 12 files changed, 36 insertions(+), 36 deletions(-) diff --git a/packagelists/amd64/pg16.15-spock5.0.13-standard.txt b/packagelists/amd64/pg16.15-spock5.0.13-standard.txt index 97de896..d905594 100644 --- a/packagelists/amd64/pg16.15-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg16.15-spock5.0.13-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_16-16.1-1.el9 pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_16-1.13.1-1.el9 +pgedge-pgmq_16-1.13.0-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 pgedge-pg-tokenizer_16-0.1.1-1.el9 pgedge-pg-vectorize_16-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_16-2.4.0-1.el9 pgedge-vchord-bm25_16-0.2.2-1.el9 pgedge-vectorizer_16-1.1-1.el9 pgedge-system_stats_16-4.1-1.el9 -pgedge-supautils_16-4.0.0-1.el9 +pgedge-supautils_16-3.4.4-1.el9 pgedge-safesession_16-1.0-1.el9 diff --git a/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt index 97de896..d905594 100644 --- a/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg16.15-spock6.0.0-beta1-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_16-16.1-1.el9 pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_16-1.13.1-1.el9 +pgedge-pgmq_16-1.13.0-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 pgedge-pg-tokenizer_16-0.1.1-1.el9 pgedge-pg-vectorize_16-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_16-2.4.0-1.el9 pgedge-vchord-bm25_16-0.2.2-1.el9 pgedge-vectorizer_16-1.1-1.el9 pgedge-system_stats_16-4.1-1.el9 -pgedge-supautils_16-4.0.0-1.el9 +pgedge-supautils_16-3.4.4-1.el9 pgedge-safesession_16-1.0-1.el9 diff --git a/packagelists/amd64/pg17.11-spock5.0.13-standard.txt b/packagelists/amd64/pg17.11-spock5.0.13-standard.txt index 61f8bd8..2385106 100644 --- a/packagelists/amd64/pg17.11-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg17.11-spock5.0.13-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_17-17.1-1.el9 pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_17-1.13.1-1.el9 +pgedge-pgmq_17-1.13.0-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 pgedge-pg-tokenizer_17-0.1.1-1.el9 pgedge-pg-vectorize_17-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_17-2.4.0-1.el9 pgedge-vchord-bm25_17-0.2.2-1.el9 pgedge-vectorizer_17-1.1-1.el9 pgedge-system_stats_17-4.1-1.el9 -pgedge-supautils_17-4.0.0-1.el9 +pgedge-supautils_17-3.4.4-1.el9 pgedge-safesession_17-1.0-1.el9 diff --git a/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt index 61f8bd8..2385106 100644 --- a/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg17.11-spock6.0.0-beta1-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_17-17.1-1.el9 pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_17-1.13.1-1.el9 +pgedge-pgmq_17-1.13.0-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 pgedge-pg-tokenizer_17-0.1.1-1.el9 pgedge-pg-vectorize_17-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_17-2.4.0-1.el9 pgedge-vchord-bm25_17-0.2.2-1.el9 pgedge-vectorizer_17-1.1-1.el9 pgedge-system_stats_17-4.1-1.el9 -pgedge-supautils_17-4.0.0-1.el9 +pgedge-supautils_17-3.4.4-1.el9 pgedge-safesession_17-1.0-1.el9 diff --git a/packagelists/amd64/pg18.6-spock5.0.13-standard.txt b/packagelists/amd64/pg18.6-spock5.0.13-standard.txt index 558b36f..a0a95e1 100644 --- a/packagelists/amd64/pg18.6-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg18.6-spock5.0.13-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_18-18.0-1.el9 pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_18-1.13.1-1.el9 +pgedge-pgmq_18-1.13.0-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 pgedge-pg-tokenizer_18-0.1.1-1.el9 pgedge-pg-vectorize_18-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_18-2.4.0-1.el9 pgedge-vchord-bm25_18-0.2.2-1.el9 pgedge-vectorizer_18-1.1-1.el9 pgedge-system_stats_18-4.1-1.el9 -pgedge-supautils_18-4.0.0-1.el9 +pgedge-supautils_18-3.4.4-1.el9 pgedge-safesession_18-1.0-1.el9 diff --git a/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt b/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt index 558b36f..a0a95e1 100644 --- a/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt +++ b/packagelists/amd64/pg18.6-spock6.0.0-beta1-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_18-18.0-1.el9 pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_18-1.13.1-1.el9 +pgedge-pgmq_18-1.13.0-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 pgedge-pg-tokenizer_18-0.1.1-1.el9 pgedge-pg-vectorize_18-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_18-2.4.0-1.el9 pgedge-vchord-bm25_18-0.2.2-1.el9 pgedge-vectorizer_18-1.1-1.el9 pgedge-system_stats_18-4.1-1.el9 -pgedge-supautils_18-4.0.0-1.el9 +pgedge-supautils_18-3.4.4-1.el9 pgedge-safesession_18-1.0-1.el9 diff --git a/packagelists/arm64/pg16.15-spock5.0.13-standard.txt b/packagelists/arm64/pg16.15-spock5.0.13-standard.txt index 97de896..d905594 100644 --- a/packagelists/arm64/pg16.15-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg16.15-spock5.0.13-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_16-16.1-1.el9 pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_16-1.13.1-1.el9 +pgedge-pgmq_16-1.13.0-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 pgedge-pg-tokenizer_16-0.1.1-1.el9 pgedge-pg-vectorize_16-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_16-2.4.0-1.el9 pgedge-vchord-bm25_16-0.2.2-1.el9 pgedge-vectorizer_16-1.1-1.el9 pgedge-system_stats_16-4.1-1.el9 -pgedge-supautils_16-4.0.0-1.el9 +pgedge-supautils_16-3.4.4-1.el9 pgedge-safesession_16-1.0-1.el9 diff --git a/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt index 97de896..d905594 100644 --- a/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg16.15-spock6.0.0-beta1-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_16-16.1-1.el9 pgedge-postgis36_16-3.6.4-1.el9 pgedge-pgvector_16-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_16-1.13.1-1.el9 +pgedge-pgmq_16-1.13.0-1.el9 pgedge-pg_cron_16-1.6.8-1.el9 pgedge-pg-tokenizer_16-0.1.1-1.el9 pgedge-pg-vectorize_16-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_16-2.4.0-1.el9 pgedge-vchord-bm25_16-0.2.2-1.el9 pgedge-vectorizer_16-1.1-1.el9 pgedge-system_stats_16-4.1-1.el9 -pgedge-supautils_16-4.0.0-1.el9 +pgedge-supautils_16-3.4.4-1.el9 pgedge-safesession_16-1.0-1.el9 diff --git a/packagelists/arm64/pg17.11-spock5.0.13-standard.txt b/packagelists/arm64/pg17.11-spock5.0.13-standard.txt index 61f8bd8..2385106 100644 --- a/packagelists/arm64/pg17.11-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg17.11-spock5.0.13-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_17-17.1-1.el9 pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_17-1.13.1-1.el9 +pgedge-pgmq_17-1.13.0-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 pgedge-pg-tokenizer_17-0.1.1-1.el9 pgedge-pg-vectorize_17-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_17-2.4.0-1.el9 pgedge-vchord-bm25_17-0.2.2-1.el9 pgedge-vectorizer_17-1.1-1.el9 pgedge-system_stats_17-4.1-1.el9 -pgedge-supautils_17-4.0.0-1.el9 +pgedge-supautils_17-3.4.4-1.el9 pgedge-safesession_17-1.0-1.el9 diff --git a/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt index 61f8bd8..2385106 100644 --- a/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg17.11-spock6.0.0-beta1-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_17-17.1-1.el9 pgedge-postgis36_17-3.6.4-1.el9 pgedge-pgvector_17-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_17-1.13.1-1.el9 +pgedge-pgmq_17-1.13.0-1.el9 pgedge-pg_cron_17-1.6.8-1.el9 pgedge-pg-tokenizer_17-0.1.1-1.el9 pgedge-pg-vectorize_17-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_17-2.4.0-1.el9 pgedge-vchord-bm25_17-0.2.2-1.el9 pgedge-vectorizer_17-1.1-1.el9 pgedge-system_stats_17-4.1-1.el9 -pgedge-supautils_17-4.0.0-1.el9 +pgedge-supautils_17-3.4.4-1.el9 pgedge-safesession_17-1.0-1.el9 diff --git a/packagelists/arm64/pg18.6-spock5.0.13-standard.txt b/packagelists/arm64/pg18.6-spock5.0.13-standard.txt index 558b36f..a0a95e1 100644 --- a/packagelists/arm64/pg18.6-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg18.6-spock5.0.13-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_18-18.0-1.el9 pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_18-1.13.1-1.el9 +pgedge-pgmq_18-1.13.0-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 pgedge-pg-tokenizer_18-0.1.1-1.el9 pgedge-pg-vectorize_18-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_18-2.4.0-1.el9 pgedge-vchord-bm25_18-0.2.2-1.el9 pgedge-vectorizer_18-1.1-1.el9 pgedge-system_stats_18-4.1-1.el9 -pgedge-supautils_18-4.0.0-1.el9 +pgedge-supautils_18-3.4.4-1.el9 pgedge-safesession_18-1.0-1.el9 diff --git a/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt b/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt index 558b36f..a0a95e1 100644 --- a/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt +++ b/packagelists/arm64/pg18.6-spock6.0.0-beta1-standard.txt @@ -1,9 +1,9 @@ pgedge-pgaudit_18-18.0-1.el9 pgedge-postgis36_18-3.6.4-1.el9 pgedge-pgvector_18-0.8.7-1.el9 -pgedge-pgbackrest-2.60.0-1.el9 +pgedge-pgbackrest-2.59.3-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 -pgedge-pgmq_18-1.13.1-1.el9 +pgedge-pgmq_18-1.13.0-1.el9 pgedge-pg_cron_18-1.6.8-1.el9 pgedge-pg-tokenizer_18-0.1.1-1.el9 pgedge-pg-vectorize_18-0.27.1-1.el9 @@ -11,5 +11,5 @@ pgedge-pg-stat-monitor_18-2.4.0-1.el9 pgedge-vchord-bm25_18-0.2.2-1.el9 pgedge-vectorizer_18-1.1-1.el9 pgedge-system_stats_18-4.1-1.el9 -pgedge-supautils_18-4.0.0-1.el9 +pgedge-supautils_18-3.4.4-1.el9 pgedge-safesession_18-1.0-1.el9 From ec5b9988f5c3b2b56962dd39403c2240a93badd8 Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Tue, 10 Nov 2026 20:28:16 +0500 Subject: [PATCH 11/13] build: keep the previous build of PG 19 extensions that were not rebuilt --- packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt | 8 ++++---- packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt index 420f773..d55238d 100644 --- a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt @@ -1,13 +1,13 @@ pgedge-pgaudit_19-19-rc1_1.el9 pgedge-postgis36_19-3.6.4-2.el9 -pgedge-pgvector_19-0.8.7-2.el9 +pgedge-pgvector_19-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_19-1.13.1-1.el9 pgedge-pg_cron_19-1.6.8-2.el9 -pgedge-pg-vectorize_19-0.27.1-2.el9 -pgedge-pg-stat-monitor_19-2.4.0-2.el9 +pgedge-pg-vectorize_19-0.27.1-1.el9 +pgedge-pg-stat-monitor_19-2.4.0-1.el9 pgedge-vectorizer_19-1.1-1.el9 -pgedge-system_stats_19-4.1-2.el9 +pgedge-system_stats_19-4.1-1.el9 pgedge-supautils_19-4.0.0-1.el9 pgedge-safesession_19-1.0-1.el9 diff --git a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt index 420f773..d55238d 100644 --- a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt @@ -1,13 +1,13 @@ pgedge-pgaudit_19-19-rc1_1.el9 pgedge-postgis36_19-3.6.4-2.el9 -pgedge-pgvector_19-0.8.7-2.el9 +pgedge-pgvector_19-0.8.7-1.el9 pgedge-pgbackrest-2.60.0-1.el9 pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_19-1.13.1-1.el9 pgedge-pg_cron_19-1.6.8-2.el9 -pgedge-pg-vectorize_19-0.27.1-2.el9 -pgedge-pg-stat-monitor_19-2.4.0-2.el9 +pgedge-pg-vectorize_19-0.27.1-1.el9 +pgedge-pg-stat-monitor_19-2.4.0-1.el9 pgedge-vectorizer_19-1.1-1.el9 -pgedge-system_stats_19-4.1-2.el9 +pgedge-system_stats_19-4.1-1.el9 pgedge-supautils_19-4.0.0-1.el9 pgedge-safesession_19-1.0-1.el9 From 95f0106aba66e3f52c891a305c72b4480064ef0f Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Tue, 10 Nov 2026 20:31:14 +0500 Subject: [PATCH 12/13] build: drop pg_stat_monitor from the PG 19 standard images until it builds on RC2 --- CHANGELOG.md | 5 +++-- packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt | 1 - packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfe4cff..f74bcb9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,9 @@ - Upgraded Spock to 5.0.13 in the spock 5 images - Added PostgreSQL 19 (rc2) postgres, minimal and standard images for spock 5. They omit pg_tokenizer and vchord_bm25, which have no PG 19 build yet; the - tests covering those extensions are skipped on PG 19 until they ship. No - coldfront or spock 6 images for PG 19 yet. + tests covering those extensions are skipped on PG 19 until they ship. They + also omit pg_stat_monitor until a release that builds on PostgreSQL 19 RC2. + No coldfront or spock 6 images for PG 19 yet. - Upgraded lolor to 1.2.3 in minimal images - Upgraded system_stats to 4.1 in standard images diff --git a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt index d55238d..ca16dc6 100644 --- a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt @@ -6,7 +6,6 @@ pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_19-1.13.1-1.el9 pgedge-pg_cron_19-1.6.8-2.el9 pgedge-pg-vectorize_19-0.27.1-1.el9 -pgedge-pg-stat-monitor_19-2.4.0-1.el9 pgedge-vectorizer_19-1.1-1.el9 pgedge-system_stats_19-4.1-1.el9 pgedge-supautils_19-4.0.0-1.el9 diff --git a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt index d55238d..ca16dc6 100644 --- a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt @@ -6,7 +6,6 @@ pgedge-python3-psycopg2-2.9.12-1.el9 pgedge-pgmq_19-1.13.1-1.el9 pgedge-pg_cron_19-1.6.8-2.el9 pgedge-pg-vectorize_19-0.27.1-1.el9 -pgedge-pg-stat-monitor_19-2.4.0-1.el9 pgedge-vectorizer_19-1.1-1.el9 pgedge-system_stats_19-4.1-1.el9 pgedge-supautils_19-4.0.0-1.el9 From 3487ca95efb24a28900a162c1e162b79761b4b1e Mon Sep 17 00:00:00 2001 From: Muhammad Aqeel Date: Thu, 12 Nov 2026 00:16:07 +0500 Subject: [PATCH 13/13] build: upgrade Spock to 5.0.14, Snowflake to 2.6.1 and safesession to 1.1 in the PG 19 images --- packagelists/amd64/pg19-rc2-spock5.0.13-minimal.txt | 3 --- packagelists/amd64/pg19-rc2-spock5.0.14-minimal.txt | 3 +++ ...ck5.0.13-standard.txt => pg19-rc2-spock5.0.14-standard.txt} | 2 +- packagelists/arm64/pg19-rc2-spock5.0.13-minimal.txt | 3 --- packagelists/arm64/pg19-rc2-spock5.0.14-minimal.txt | 3 +++ ...ck5.0.13-standard.txt => pg19-rc2-spock5.0.14-standard.txt} | 2 +- scripts/build_pgedge_images.py | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 packagelists/amd64/pg19-rc2-spock5.0.13-minimal.txt create mode 100644 packagelists/amd64/pg19-rc2-spock5.0.14-minimal.txt rename packagelists/amd64/{pg19-rc2-spock5.0.13-standard.txt => pg19-rc2-spock5.0.14-standard.txt} (91%) delete mode 100644 packagelists/arm64/pg19-rc2-spock5.0.13-minimal.txt create mode 100644 packagelists/arm64/pg19-rc2-spock5.0.14-minimal.txt rename packagelists/arm64/{pg19-rc2-spock5.0.13-standard.txt => pg19-rc2-spock5.0.14-standard.txt} (91%) diff --git a/packagelists/amd64/pg19-rc2-spock5.0.13-minimal.txt b/packagelists/amd64/pg19-rc2-spock5.0.13-minimal.txt deleted file mode 100644 index cab8190..0000000 --- a/packagelists/amd64/pg19-rc2-spock5.0.13-minimal.txt +++ /dev/null @@ -1,3 +0,0 @@ -pgedge-spock50_19-5.0.13-1.el9 -pgedge-snowflake_19-2.6.0-1.el9 -pgedge-lolor_19-1.2.3-1.el9 diff --git a/packagelists/amd64/pg19-rc2-spock5.0.14-minimal.txt b/packagelists/amd64/pg19-rc2-spock5.0.14-minimal.txt new file mode 100644 index 0000000..627fb32 --- /dev/null +++ b/packagelists/amd64/pg19-rc2-spock5.0.14-minimal.txt @@ -0,0 +1,3 @@ +pgedge-spock50_19-5.0.14-1.el9 +pgedge-snowflake_19-2.6.1-1.el9 +pgedge-lolor_19-1.2.3-1.el9 diff --git a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/amd64/pg19-rc2-spock5.0.14-standard.txt similarity index 91% rename from packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt rename to packagelists/amd64/pg19-rc2-spock5.0.14-standard.txt index ca16dc6..da3ad37 100644 --- a/packagelists/amd64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/amd64/pg19-rc2-spock5.0.14-standard.txt @@ -9,4 +9,4 @@ pgedge-pg-vectorize_19-0.27.1-1.el9 pgedge-vectorizer_19-1.1-1.el9 pgedge-system_stats_19-4.1-1.el9 pgedge-supautils_19-4.0.0-1.el9 -pgedge-safesession_19-1.0-1.el9 +pgedge-safesession_19-1.1-1.el9 diff --git a/packagelists/arm64/pg19-rc2-spock5.0.13-minimal.txt b/packagelists/arm64/pg19-rc2-spock5.0.13-minimal.txt deleted file mode 100644 index cab8190..0000000 --- a/packagelists/arm64/pg19-rc2-spock5.0.13-minimal.txt +++ /dev/null @@ -1,3 +0,0 @@ -pgedge-spock50_19-5.0.13-1.el9 -pgedge-snowflake_19-2.6.0-1.el9 -pgedge-lolor_19-1.2.3-1.el9 diff --git a/packagelists/arm64/pg19-rc2-spock5.0.14-minimal.txt b/packagelists/arm64/pg19-rc2-spock5.0.14-minimal.txt new file mode 100644 index 0000000..627fb32 --- /dev/null +++ b/packagelists/arm64/pg19-rc2-spock5.0.14-minimal.txt @@ -0,0 +1,3 @@ +pgedge-spock50_19-5.0.14-1.el9 +pgedge-snowflake_19-2.6.1-1.el9 +pgedge-lolor_19-1.2.3-1.el9 diff --git a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt b/packagelists/arm64/pg19-rc2-spock5.0.14-standard.txt similarity index 91% rename from packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt rename to packagelists/arm64/pg19-rc2-spock5.0.14-standard.txt index ca16dc6..da3ad37 100644 --- a/packagelists/arm64/pg19-rc2-spock5.0.13-standard.txt +++ b/packagelists/arm64/pg19-rc2-spock5.0.14-standard.txt @@ -9,4 +9,4 @@ pgedge-pg-vectorize_19-0.27.1-1.el9 pgedge-vectorizer_19-1.1-1.el9 pgedge-system_stats_19-4.1-1.el9 pgedge-supautils_19-4.0.0-1.el9 -pgedge-safesession_19-1.0-1.el9 +pgedge-safesession_19-1.1-1.el9 diff --git a/scripts/build_pgedge_images.py b/scripts/build_pgedge_images.py index 5f56be0..65dc7f5 100755 --- a/scripts/build_pgedge_images.py +++ b/scripts/build_pgedge_images.py @@ -306,7 +306,7 @@ def make_flavor_images( # pg19 images. No coldfront or spock 6 line yet: neither has a PG 19 build. *make_flavor_images( postgres_version="19-rc2", - spock_version="5.0.13", + spock_version="5.0.14", epochs={"minimal": 1, "standard": 1}, channels={"minimal": "staging", "standard": "staging"}, is_latest_for_pg_major=True,