To add support for a new MongoDB server version in mongo-tools, you must update the test matrix, adjust legacy JS shims if necessary, and prepare the release configuration. This process ensures that integration tests run against the new version and that the release pipeline unblocks the corresponding server release.
1. Update the Test Matrix
Update common.yml by adding a new task block for the target version. You should copy an existing version block and update the following fields:
- The task
name (e.g., integration-8.3) - The task
tags (e.g., ["8.3"]) - The
mongo_version variable (use pre-release versions like 8.3.0-rc0 if the server is not yet released) - The
load_libs_version variable (if present)
Additionally, in the evergreen configuration:
- Update the
max_server_version variable in the global variables section. - Add the new version tag to each build variant. Note that for version
8.3, tags must be preceded by a dot (e.g., name: ".8.3").
2. Update Server Download Logic
Update the maxServerVersion variable in release/download/download_server.go. This allows the latest tests to correctly download and use the newest supported version.
3. Adjust Load Libs (for legacy JS tests)
- name: integration-8.3
tags: ["8.3"]
commands:
- func: "fetch source"
- command: expansions.update
- func: "download mongod and shell"
vars:
mongo_version: "8.3.0-rc4"
- func: "start mongod"
vars:
USE_TLS: "true"
- func: "wait for mongod to be ready"
vars:
USE_TLS: "true"
- func: "run make target"
vars:
target: build
- func: "run make target"
vars:
target: test:integration -ssl=true ${testArgs}