Skip to content

Conversation

@blink1073
Copy link
Member

PYTHON-5670

Changes in this PR

Restores support for PyPy 3.9, PyPy 3.10, and Python 3.9.
Since all of these versions are EoL, we do not test against all scenarios.
Instead we test on latest server with the three standard combinations of topology, auth, and ssl.
We only test on one platform.

Test Plan

Added a "Min Support RHEL8" variant with 9 tasks.

Passing build: https://spruce.mongodb.com/version/6938c98cb2efbb0007254ae8/tasks?sorts=STATUS%3AASC%3BBASE_STATUS%3ADESC

Checklist

Checklist for Author

  • Did you update the changelog (if necessary)?
  • Is there test coverage?
  • Is any followup work tracked in a JIRA ticket? If so, add link(s). N/A

Checklist for Reviewer

  • Does the title of the PR reference a JIRA Ticket?
  • Do you fully understand the implementation? (Would you be comfortable explaining how this code works to someone else?)
  • Is all relevant documentation (README or docstring) updated?

@blink1073 blink1073 requested a review from a team as a code owner December 10, 2025 01:42
@blink1073 blink1073 requested a review from Jibola December 10, 2025 01:42
Copy link
Contributor

@Jibola Jibola left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.
-> Do we need to test pypy3.10?
-> Bring back the drop 3.9 support ticket. (Just referencing this PR in it should suffice)

ALL_VERSIONS = ["4.2", "4.4", "5.0", "6.0", "7.0", "8.0", "rapid", "latest"]
CPYTHONS = ["3.10", "3.11", "3.12", "3.13", "3.14t", "3.14"]
PYPYS = ["pypy3.11"]
MIN_SUPPORT_VERSIONS = ["3.9", "pypy3.9", "pypy3.10"]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to test against pypy3.10 as well?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It felt odd to leave it out, putting it in the bucket of EoL versions that should still work.

Comment on lines +89 to +102


if sys.version_info >= (3, 10):
anext = builtins.anext
aiter = builtins.aiter
else:

async def anext(cls: Any) -> Any:
"""Compatibility function until we drop 3.9 support: https://docs.python.org/3/library/functions.html#anext."""
return await cls.__anext__()

def aiter(cls: Any) -> Any:
"""Compatibility function until we drop 3.9 support: https://docs.python.org/3/library/functions.html#anext."""
return cls.__aiter__()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we make "Drop 3.9 support" a python ticket? (Or re-open it?)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@blink1073 blink1073 requested a review from Jibola December 12, 2025 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants