Skip to content

Test Neo4j, ScyllaDB and SQL Server against every supported major version - #1595

Merged
cristianrgreco merged 5 commits into
mainfrom
claude/supported-versions-neo4j-scylladb-mssql
Oct 13, 2026
Merged

cristianrgreco merged 5 commits into
mainfrom
claude/supported-versions-neo4j-scylladb-mssql

Conversation

@cristianrgreco

@cristianrgreco cristianrgreco commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

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

These three modules had a Dockerfile that was not on the newest supported version, and Dependabot has not moved them: Neo4j and ScyllaDB switched to calendar versions, and the SQL Server tag (2022-CU13-ubuntu-22.04) is not one it bumps. This PR moves each Dockerfile to the newest version by hand. Each suite then 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.

Module Dockerfile before → after IMAGES Source
neo4j 5.26.31 → 2026.09.0 5.26.31 (LTS, EOL 2028-06-06), Dockerfile endoflife.date
scylladb 6.2.3 → 2026.3.3 2025.1.16 (LTS, until 2027.1 ships), Dockerfile ScyllaDB Version Support
mssqlserver 2022-CU13-ubuntu-22.04 → 2025-CU9-ubuntu-24.04 2022-CU27-ubuntu-22.04 (mainstream support to 2028-01-11), Dockerfile endoflife.date

Things the older and newer lines turned up:

  • ScyllaDB 6.2 is past end of life (image last pushed 2025-02; not in the vendor's table), so no supported ScyllaDB version was tested before this PR. ScyllaDB 2025.1 and later are released under ScyllaDB's source-available licence.
  • ScyllaDB test fix: the keyspace test used SimpleStrategy, which 2026.3 rejects with SimpleStrategy doesn't support tablet replication. It now uses NetworkTopologyStrategy, which passes on 2025.1 and 2026.3.
  • SQL Server Express test was tied to 2022-CU13. It waited for Attribute synchronization manager initialized, which 2017 and 2025 never log (the 2025 run timed out after 120 s), and ran /opt/mssql-tools/bin/sqlcmd, which 2025 ships as /opt/mssql-tools18/bin/sqlcmd. It now waits for SQL Server is now ready for client connections and reads the edition through the mssql client. The docs snippet under "With different edition" changes with it.
  • SQL Server tests shared one connection. sql.connect() returns the existing global pool and ignores the config it is given while another test holds it open, so with tests running concurrently a query could reach another test's container. Each test now opens its own sql.ConnectionPool. Without this a test for one image could pass against another image's container.
  • The custom-wait-message test does not use the image, so it moved out of the looped block.
  • SQL Server images are amd64 only, for every tag.
  • SQL Server 2017 and 2019 are not listed. Their mainstream support ended on 2022-10-11 and 2025-02-28; Microsoft only ships security fixes for them now (extended support, to 2027-10-12 and 2030-01-08), and their images sit on Ubuntu 18.04 and 20.04.

Verification

Local, macOS arm64, Docker Desktop (SQL Server under amd64 emulation):

Run Result
npx vitest run packages/modules/neo4j --maxConcurrency=2 -t "2026.09.0" 4 passed (APOC, APOC Extended and Graph Data Science plugins load on 2026.09)
npx vitest run packages/modules/scylladb --maxConcurrency=1 -t "2026.3.3" 1 failed (SimpleStrategy) before the fix, 3 passed after
npx vitest run packages/modules/scylladb --maxConcurrency=1 -t "2025.1.16" 3 passed
npx vitest run packages/modules/mssqlserver --maxConcurrency=2 -t "2025-CU9" 1 failed (Express wait message) before the fix, 5 passed after
npx vitest run packages/modules/mssqlserver --maxConcurrency=2 -t "2017-CU31-GDR9" (an earlier revision that listed 2017) 5 passed
  • npm run format, npm run lint, npm run knip, npm run check-compiles: clean.
  • Every inside_block marker used by the three docs pages still resolves to one block.

Left to CI: Neo4j on 5.26.31 (the image main runs today), SQL Server 2022, Podman, Node 22 and 24, linux/amd64, and the docs build.

Test counts: neo4j 4 → 8, scylladb 3 → 6, mssqlserver 6 → 11.

Baseline job times on main (run 38287125470, docker 22 / docker 24 / podman 22 / podman 24, seconds): neo4j 69/72/86/91, scylladb 43/35/63/44, mssqlserver 45/38/79/73.

Not breaking

Test files and the three test Dockerfiles only. No module source or exports changed, and the Dockerfile is not published.

@cristianrgreco cristianrgreco changed the title Test Neo4j, ScyllaDB and SQL Server against their supported versions Test Neo4j, ScyllaDB and SQL Server against every supported major version Oct 13, 2026
@cristianrgreco
cristianrgreco marked this pull request as ready for review October 13, 2026 17:25
@cristianrgreco
cristianrgreco merged commit e3fcd88 into main Oct 13, 2026
26 checks passed
@cristianrgreco
cristianrgreco deleted the claude/supported-versions-neo4j-scylladb-mssql branch October 13, 2026 17:25
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