-
Type:
Spec Change
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Component/s: Evergreen Tools
-
None
-
Not Needed
Replace the scattered per-folder requirements*.txt files and the OS-scanning find-python3.sh bootstrap with:
- A single root pyproject.toml + uv.lock for the whole repo, structured as a uv workspace
- Per-tool dependencies declared as PEP 735 [dependency-groups] instead of individual requirements.txt files
- Dependabot pointed at the new uv ecosystem so it can bump versions automatically
- find-python3.sh deprecated and removed entirely, replaced by a small ensure_uv() helper: check uv on PATH, else python3 -m pip install --user uv, else error out recommending a DEVPROD ticket (examples: DEVPROD-13413, DEVPROD-19733). Venv creation moves to uv venv, direct script execution moves to uv run — no more filesystem scanning for a system Python anywhere
- uv tool install unchanged for the CLI packages (mongodl, mongosh-dl, socks5srv, drivers-orchestration)
- evergreen_config_generator/ is out of scope (unused).
Full design doc and rationale: gist
Subtasks:
- Replace find-python3.sh with ensure_uv(); switch direct script execution (download-mongodb.sh, serverless/create-instance.sh, atlas-utils.sh, happy_eyeballs/, tests/, setup.sh, install-cli.sh) to uv run
- Root workspace setup + Dependabot switch
- docker — venv + dependency group
- auth_aws — venv + dependency group
- auth_oidc — venv + dependency group
- ocsp — venv + dependency group
- csfle + csfle-legacy — venv + conflicting dependency groups
- csfle/azurekms — venv + dependency group; delete find-python3.sh/is_python3.py for good and remove the now-dead venvcreate helper
Each subtask should preserve the existing shell-script interface (venv names, activate-*.sh) and be validated against its own Evergreen task before merging, since this repo is consumed by other MongoDB driver repos' CI.