Beta v0.5.1b24 — past initial proving, but the Python API surface may still shift before 1.0. WiredTiger on-disk format is stable, but there's no migration tool yet — don't put production data here.

All five driver gauges are now genuine end-to-end SecantusDB tests

10 May 2026 · Joe Drumgoole · Releases

Summary: All five driver gauges are now genuine end-to-end SecantusDB tests (v0.5.0b1).

Until this release, four of our five "validated against the official driver test suites" gauges weren't actually testing SecantusDB. The Java, Node, and Ruby gauges ran the drivers' own pure-code subsets — :bson:test, test/unit/, files using lite_spec_helper — which exercise BSON encoding, URI parsing, error classes, and SCRAM conversation framing without ever opening a TCP socket. They proved each driver works in our build environment but said nothing about SecantusDB conformance. The Go gauge was the same shape with a smaller fraction: ./bson/... and ./mongo (5,061 + 303 pure-unit tests) padded the count, while only ./internal/integration/... (272 tests) actually hit the wire. This release flips every gauge to genuine end-to-end integration testing — every test in every gauge now opens a real client against an embedded SecantusDB daemon and exchanges wire commands.

The honest numbers are smaller and more interesting than what was on the marketing site before: Java 17/1 (94.4%) on driver-sync/src/test/functional/, Node 40/0 (100%) on test/integration/, Go 287/2 (99.3%) on ./internal/integration/..., Ruby 97/0 (100%) on spec/mongo/database_spec.rb, plus the existing pymongo (100%) which was already real integration. Real test surface dropped from ~21,000 inflated to ~470 honest — and crucially, the failures we now see are real wire-protocol gaps. The Java mapReduce failure is a deprecated MongoDB 5.0+ command we don't implement. The Go change-stream resume-token-on-empty-batch failure is a known PBRT semantics divergence. Both are honest gaps documented in tasks/backlog.md, not noise from skipped pure-unit tests.

Server-side fixes that landed to make the new gauges green: a new --standalone CLI flag drops the single-node replica-set advertisement so Java's ClusterFixture.getSecondary() doesn't loop forever; _explain now respects the verbosity field; _count honours skip and limit (Node's cursor.count() API depends on this); a stub $currentOp aggregation stage; readConcern.level and apiVersion validation in dispatch; and killSessions / killAllSessions / killAllSessionsByPattern handlers for the per-test cleanup hooks every driver test framework uses. All five gauge runners now spawn SecantusDB on the project-wide canonical port 27018 — documented in CLAUDE.md — and Ruby/Java/Node use a two-phase pattern (tempdir + no-auth seed → restart with --auth) so the driver test suites can SCRAM-authenticate against pre-provisioned users.

Full release notes on GitHub · Install from PyPI · Tag