Skip to content

Test MariaDB, MySQL, PostgreSQL and CockroachDB against every supported major version - #1591

Merged
cristianrgreco merged 6 commits into
mainfrom
claude/supported-versions-relational
Oct 13, 2026
Merged

cristianrgreco merged 6 commits into
mainfrom
claude/supported-versions-relational

Conversation

@cristianrgreco

@cristianrgreco cristianrgreco commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Second batch of bringing existing modules in line with the supported-versions rule proposed in #1587 (first batch: #1589): a module's tests cover the latest release of every major version the vendor still supports.

Each suite has one IMAGES list, oldest major first and the Dockerfile image last, and runs in full against every entry with describe.each(IMAGES). The images run one after another and each image's tests run concurrently, as the single-image suite did: { concurrent: false } on describe.each, it.concurrent on the tests. Older majors are pinned to the exact tag of their latest release.

Module IMAGES Source
mariadb 10.11.19 (EOL 2028-02-16), 11.8.9 (EOL 2028-06-04), 12.3.3 (EOL 2029-06-12), Dockerfile (13.0) endoflife.date
mysql 8.4.11 (EOL 2032-04-30), 9.7.2 (EOL 2034-04-30), Dockerfile (26.7) endoflife.date
postgresql 15.19-alpine (EOL 2027-11-11), 16.15-alpine, 17.11-alpine, Dockerfile (18) endoflife.date
cockroachdb v24.3.36 (EOL 2027-05-05), v25.4.17 (EOL 2028-05-03), Dockerfile (26.3) endoflife.date

Notes:

  • PostgreSQL 14 ends 2026-11-12, within 60 days, so it is not listed.
  • PostgreSQL: postgresql-container.test.ts and the snapshot file both loop, so the list lives in a new test-only src/test-helper.ts, excluded from tsconfig.build.json like the Kafka and Redpanda helpers.
  • PostgreSQL variants: pgvector-container.test.ts, postgis-container.test.ts and timescale-container.test.ts run on their own images again: pgvector/pgvector:0.8.7-pg18, postgis/postgis:18-3.6 and timescale/timescaledb:2.30.2-pg18, added as FROM lines 2 to 4 of the module Dockerfile so Dependabot bumps them. They were added in Fix healthcheck for Postgis #972 to check the health check against these variants, and have been running on plain postgres since Add Dependabot for Docker #1020 replaced their hardcoded images. Each has one supported major, so there is no list. postgis/postgis publishes no arm64 image, so that file sets withPlatform("linux/amd64").

Verification

Local, macOS arm64, Docker Desktop. The older majors were run locally with -t and --maxConcurrency 2 or 3:

Module Images run locally Result
mariadb 10.11.19, 11.8.9, 12.3.3 15 passed
mysql 8.4.11, 9.7.2 14 passed
postgresql 15.19, 16.15, 17.11 (both looped files) 36 passed; on 16.15 "should work with restarted container" failed once with ECONNREFUSED after restart() while other suites were loading Docker, then passed 3 of 3 (#1599 addresses that)
cockroachdb v24.3.36, v25.4.17 12 passed
postgresql variants pgvector, PostGIS (amd64 emulation), Timescale 9 passed; PostGIS failed with No such image on arm64 before withPlatform
  • npm run format, npm run lint, npm run knip, npm run check-compiles: clean.
  • Every inside_block marker used by the four docs pages still resolves to one block.

Left to CI: the Dockerfile image's share of each loop, Podman, Node 22 and 24, linux/amd64, and the docs build.

Test counts: mariadb 5 → 20, mysql 7 → 21, postgresql 21 → 57, cockroachdb 6 → 18.

Baseline job times on main (run 38287125470, docker 22 / docker 24 / podman 22 / podman 24, seconds): mariadb 37/40/48/44, mysql 68/74/76/74, postgresql 58/58/70/79, cockroachdb 44/53/53/48.

Not breaking

Test files, a test-only helper and three more lines in the PostgreSQL test Dockerfile. No module source or exports changed; the helper is excluded from the published build and the Dockerfile is not published.

@cristianrgreco cristianrgreco changed the title Test MariaDB, MySQL, PostgreSQL and CockroachDB against their oldest supported versions Test MariaDB, MySQL, PostgreSQL and CockroachDB against every supported major version Oct 13, 2026
@cristianrgreco
cristianrgreco marked this pull request as ready for review October 13, 2026 16:00
@cristianrgreco
cristianrgreco merged commit 445fe1c into main Oct 13, 2026
30 checks passed
@cristianrgreco
cristianrgreco deleted the claude/supported-versions-relational branch October 13, 2026 17:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Improvements that do not change functionality patch Backward compatible bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant