-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Unknown
-
None
-
Component/s: Client Side Encryption, Evergreen Tools
-
None
-
Needed
-
Summary
Drivers generally provision server versions in Evergreen using the download-mongodb.sh script, which internally keeps a map of Major.Minor server versions to specific packages for various operating systems.
The mongodl.py originally introduced in b233de2 operates very differently by downloading full.json from mongodb.com. Although it does have aliases for "latest" and "latest-stable", it's not clear if those are consistent with the aliases we have in download-mongodb.sh.
Two ideas came to mind (I'm open to others):
- mongodl.py looks like a generally useful tool. If we can find some way to share a consistent mapping of Major.Minor aliases between it and download-mongodb.sh, that would help.
- Alternatively, we need some way to extract the exact server version fetched by download-mongodb.sh. I looked into this briefly by writing a sed one-liner to parse mongod --version but ran into trouble finding the extracted binaries. AFAIK, they are fed to mongo-orchestration but don't end up in $PATH.
This came up in mongodb/mongo-python-driver#961 for PYTHON-3296.
On a separate note, I'm not sure if mongodl.py caches full.json or downloads it on each invocation. That file is quite large, so this does add overhead to the minimal mappings we maintain for download-mongodb.sh. Perhaps a separate tool to query full.json and prepare a mapping list similar to what we have in download-mongodb.sh would be more useful, if we decide to go the mapping route.
Motivation
Who is the affected end user?
Driver developers.
How does this affect the end user?
Difficulty ensuring consistent versions are used for the MongoDB server and crypt_shared.
Is this issue urgent?
Yes. This is relevant for crypt_shared CI testing.
Is this ticket required by a downstream team?
May be relevant for shell testing, unless they're using entirely different tooling.
Is this ticket only for tests?
Yes.
- is depended on by
-
PYTHON-3296 Tests should use the same crypt_shared version as the server being tested
- Closed
- related to
-
DRIVERS-1950 FLE 1.0 Shared Library
- Development Complete
-
GODRIVER-2437 Revert pin to crypt_shared "latest" release
- Closed
- split to
-
PHPC-2135 Test with consistent versions of crypt_shared and server
- Closed
-
CXX-2545 Test with consistent versions of crypt_shared and server
- Backlog
-
JAVA-4678 Test with consistent versions of crypt_shared and server
- Closed
-
CDRIVER-4427 Test with consistent versions of crypt_shared and server
- Closed
-
CSHARP-4254 Test with consistent versions of crypt_shared and server
- Closed
-
GODRIVER-2492 Test with consistent versions of crypt_shared and server
- Closed
-
MOTOR-994 Test with consistent versions of crypt_shared and server
- Closed
-
NODE-4422 Test with consistent versions of crypt_shared and server
- Closed
-
PHPLIB-911 Test with consistent versions of crypt_shared and server
- Closed
-
PYTHON-3355 Test with consistent versions of crypt_shared and server
- Closed
-
RUBY-3051 Test with consistent versions of crypt_shared and server
- Closed
-
RUST-1408 Test with consistent versions of crypt_shared and server
- Closed