-
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?
Conversation
gsnedders
left a comment
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 clearly needs review from someone at Chromium more than anyone else, but:
| Historically, continued Python 3.8 support was required due to downstream CI | ||
| integrations with Apple’s and Google’s infrastructure. These systems have since |
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.
| - Refresh vendored dependencies that were previously constrained by | ||
| Python 3.8 compatibility. |
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.
Note with web-platform-tests/wpt#49752 unlanded we don't have a particularly easy way to do this. :'(
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 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. |
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 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?
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 that would require a new RFC, but I'd be opposed; at least some dependencies do usefully get updates.
| 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 |
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.
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 uv pip compile's --fork-strategy fewest); we could also use split it by the required Python version (along the lines of its --fork-strategy requires-python).
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 assume this is as well something not blocking this RFC?
|
@jonathan-j-lee Could you take a look? |
|
From @jonathan-j-lee:
|
jonathan-j-lee
left a comment
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.
LGTM from Chromium CI
| Historically, continued Python 3.8 support was required due to downstream CI | ||
| integrations with Apple’s and Google’s infrastructure. These systems have since |
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.
| - 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. |
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 that would require a new RFC, but I'd be opposed; at least some dependencies do usefully get updates.
|
web-platform-tests/wpt#57379 for the implementation. |
|
@gsnedders mind checking again now that Google approved this RFC? Thanks. |
Fixes #200.
@jgraham, @gsnedders and @WeizhongX please review. Thanks