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.

Ruby gauge climbs to 99%, completing the cross-driver 99–100% band

12 May 2026 · Joe Drumgoole · Releases

Summary: Ruby gauge climbs to 99%, completing the cross-driver 99–100% band (v0.5.0b18).

The mongo-ruby-driver conformance gauge moved from 94.6% to 99.0% across this release. Four discrete fixes did the work, each driven by a specific test that previously failed:

  • writeConcernError for unsatisfiable w — single-node secantus advertises one member, so any integer w > 1 can't be satisfied. Real mongod attaches a writeConcernError (code 100 CannotSatisfyWriteConcern) to the otherwise-successful reply in that case; we now do the same. Seven INVALID_WRITE_CONCERN = {w: 4000} tests across create / drop / createIndexes / dropIndexes start raising OperationFailure as expected. (The intentional trade-off: one test that passes w: 2 and expects success — a structural assumption about multi-node test clusters — flipped to failure, documented in the backlog.)
  • wildcardProjection validation on createIndexes — when the option is present, it must be a non-empty document and the base index key must be a wildcard form ($** or field.$**). Two Mongo::Index::View#create_one specs match the error by regex; both now pass.
  • commitQuorum error shape — the existing validator was checking the wrong location (per-index option, not top-level), so unknown values fell through silently. Moving the check to the top-level command body and rewording the error to No write concern mode named '<value>' found in replica set configuration / code 79 lights up the unsupported-value specs.
  • listIndexes with cursor.batchSize: -100 — real mongod rejects with BadValue; we had been silently clamping to the default. Mongo::Collection#indexes session test now sees the error it expects.
  • $collStats.storageStats for capped collections — previously the stage returned a generic stats payload; the capped fields (capped, max, maxSize — the last is the user-set size renamed per mongod's wire shape) are now surfaced from the stored collection options. The applies the options capped spec passes.

This puts every driver gauge in the 99–100% band: pymongo 100%, mongo-java-driver 100%, mongo-go-driver ~99–100% (one documented flake), and now mongo-ruby-driver 99.0%. Three Ruby tests remain — one intentional (the w: 2 topology mismatch), two flagged structurally risky (deliberately-broken invalid: true option tests that need a per-command option whitelist with non-trivial blast radius).

Full release notes on GitHub · Install from PyPI · Tag