v0.15.0 - Roadmap Phase 1
Phase 1 of the roadmap concluded.
This fork of elbywan/cryomongo is now safe enough for baseline work on standalone, replica set, and sharded MongoDB 8.0. GitHub Actions runs all three topologies.
| Topology | Spec time | Result |
|---|---|---|
| standalone | 12s | pass |
| replica set | 2:16 | pass |
| sharded | 3:58 | pass |
pending in the spec log means the test was not run. It is not a green pass of that file.
Added
- Redact
authenticate,saslStart,saslContinue,createUser,updateUser,getnonce,copydb*, and hello withspeculativeAuthenticatein APM events andLog.trace. - Handshake:
backpressure: "2", OS name / architecture / version, platform, optional env metadata. First handshake uses legacy hello when Server API and load-balanced are unset.Client#append_metadatafor wrapping libraries. - Cursors:
#eachand blockCollection#findclose the cursor. Call#closeif you iterate with#next. Do not rely onfinalize. - Backpressure: retry
SystemOverloadedError+RetryableErrorwith backoff. URI optionmaxAdaptiveRetries(default 2). - CMAP: pool events and retry of
PoolClearedErroron retryable reads and writes. - Shared server-selection / max-staleness / RTT JSON tests (no mongod).
- Prose tests: transaction write concern, SDAM RTT, PoolCleared, backpressure, find/getMore.
- GitHub Actions matrix. Local
scripts/mongo-topology.sh.
Fixed
- URI options after the host with no
/(mongodb://localhost:27017?k=v). - Standalone retryable reads after
closeConnection(Unknown server, then handshake). - Mongos pin / unpin. Retry commit after a network error.
killAllSessionsafter each unified test so a leftover sharded transaction does not block the nextdrop. - Session pool close no longer holds the mutex while it sends
endSessions(that crashed one sharded CI run with signal 11).
Not in this release
- Unified
pool-cleared-error.jsonis still skipped. - SASLprep for SCRAM-SHA-256.
- SRV polling, load-balancer socket pin, CSOT, OP_COMPRESSED.
- Official Change Stream / GridFS / index UTF suites.
MONGODB-AWS,MONGODB-OIDC, CSFLE.
Requires Crystal 1.21+ (shard.yml allows >= 1.20.0) and MongoDB 8.0. Wire version 25. BSON: alumna/bson.cr 0.8.1.
See CHANGELOG.md and ROADMAP.md.