ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 4.19.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • None
    • Python Drivers
    • Not Needed
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      Python 3.15 is at its release candidate (rc2, 2026-09-01). PyMongo already tests 3.15 in the GitHub Actions matrix (PYTHON-5837) and carries a fork-test fix for 3.15 (PYTHON-5874), but the packaging metadata, wheel builds, and Evergreen test matrix still stop at 3.14.

      This ticket promotes 3.15 to officially supported and adding the wheels to our release. We do not commit to having this complete by the first official release, due to upstream constraints like cryptography wheels, but commit to having it done by 3.15.1, which is scheduled for December. https://peps.python.org/pep-0790/#schedule

      Definition of done

      • Add the Python 3.15 trove classifier to pyproject.toml.
      • Build cp315 and cp315t wheels in the dist.yml cibuildwheel workflow and assert that both are present.
      • Add 3.15 and 3.15t to the Evergreen test matrix in generate_config_utils.py and regenerate the checked-in configs and the compression variant tags in generate_config.py.
      • Add "Added support for Python 3.15." to the changelog in a new 4.19.0 section.
      • Evergreen tasks and wheel builds for 3.15 and 3.15t run green.

      Pitfalls

      • The 3.15 and 3.15t tasks set UV_PYTHON to the exact pre-release version (3.15.0rc2 / 3.15.0rc2t). uv does not index Python 3.15 pre-releases, so setup-dev-env.sh falls back to fetch-python.sh, which downloads the python-build-standalone build (release 20260901) and points UV_PYTHON at it.
      • The fetch fallback is temporary. Remove fetch-python.sh and its hook in setup-dev-env.sh once the Evergreen toolchain provisions 3.15, and drop the UV_PYTHON_VERSIONS entries in generate_config_utils.py once 3.15.0 stable is available.
      • Keep the .free-threaded selective exclusions (auth, enterprise-auth) that already apply to 3.14t working for 3.15t.
      • Verify the pinned cibuildwheel range (>=3.2.0,<4) supports cp315/cp315t; bump the lower bound if it does not.
      • Add 3.15/3.15t entries to the zstd compression variant tags in generate_config.py; those tags are hard-coded and do not auto-update.
      • 4.18.0 is already released; the changelog entry goes in a new 4.19.0 section, not the 4.18.0 section.

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

              Created:
              Updated:
              Resolved: