-
Notifications
You must be signed in to change notification settings - Fork 81
Update minimum supported Python to 3.9. #232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # RFC 200: Bump minimum supported Python to 3.9 | ||
|
|
||
| ## Summary | ||
|
|
||
| Raise the minimum supported Python version from 3.8 to 3.9. | ||
|
|
||
| ## Details | ||
|
|
||
| The project currently supports Python 3.8 and newer. Python 3.8 reached end | ||
| of life in October 2024, and the broader Python ecosystem has largely dropped | ||
| support for it. As a result, we have been unable to update several dependencies | ||
| that now require Python 3.9 or newer. | ||
|
|
||
| Historically, continued Python 3.8 support was required due to downstream CI | ||
| integrations with Apple’s and Google’s infrastructure. These systems have since | ||
| been updated and no longer depend on Python 3.8, removing the primary blocker | ||
| for increasing our minimum supported version. | ||
|
|
||
| Implementing this change will require several concrete steps: | ||
|
|
||
| - Update CI jobs currently running on Python 3.8 to use Python 3.9. | ||
| - Refresh vendored dependencies that were previously constrained by | ||
| Python 3.8 compatibility. | ||
|
Comment on lines
+22
to
+23
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note with web-platform-tests/wpt#49752 unlanded we don't have a particularly easy way to do this. :'(
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I assume that this was just a comment from your side and nothing specific to update this content with? |
||
| - Re-run CI for Dependabot pull requests to allow dependency updates to proceed. | ||
| Some dependencies may now require Python 3.10 or newer; in those cases, we | ||
| should manually update to the latest release that remains compatible with | ||
| Python 3.9. | ||
|
Comment on lines
+24
to
+27
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I did question in web-platform-tests/wpt#55608 whether we should just outright disable dependabot; it's unclear to me we're gaining much except noise with our minimum version?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think that would require a new RFC, but I'd be opposed; at least some dependencies do usefully get updates. |
||
|
|
||
| ## Risks | ||
|
|
||
| Python 3.9 itself reached end of life in October 2025, which means we | ||
| will encounter similar pressure to raise the minimum version again as | ||
| dependencies may already require Python 3.10 or newer. Any further | ||
|
Comment on lines
+31
to
+33
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We could also change policy about how we lock dependency versions. We've typically gone for something approximating the fewest versions (along the lines of
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I assume this is as well something not blocking this RFC? |
||
| increase in the minimum supported Python version should be handled | ||
| through a separate RFC, particularly to account for vendor requirements. | ||
|
|
||
| There is also a possibility that some external users rely on Python 3.8 | ||
| support, especially those using Ubuntu 20.04 LTS with extended security | ||
| maintenance through 2030. While this scenario is considered unlikely, | ||
| because such users would need to depend heavily on wpt in an environment | ||
| where Python upgrades are difficult and also not participate in the RFC | ||
| process, we will work with affected users in such cases to identify a | ||
| viable path forward. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
WebKit hasn't had any need for Python 3.8 since we dropped support for Xcode 12 several years ago. Our own tooling hasn't support it in a while.
It's not clear to me from #200 when Mozilla stopped needing Python 3.8 support? After upgrading systems after Ubuntu 20.04 LTS reached extended security maintenance?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we still have some older Ubuntu versions, but we've updated all the Python to at least 3.9, and that's what the build system requires. In practice I think all the CI machines might have at least 3.10, but I'm not sure about that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was done with https://bugzilla.mozilla.org/show_bug.cgi?id=1958321.