Migrate drivers-evergreen-tools Python dependency management to a uv workspace with a single lock file

XMLWordPrintableJSON

    • 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.

            Assignee:
            Steve Silvester
            Reporter:
            Steve Silvester
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: