SCons: Bump minimum Python version (3.8 → 3.9)#116550
Merged
Repiteo merged 1 commit intogodotengine:masterfrom Feb 20, 2026
Merged
SCons: Bump minimum Python version (3.8 → 3.9)#116550Repiteo merged 1 commit intogodotengine:masterfrom
Repiteo merged 1 commit intogodotengine:masterfrom
Conversation
26bc242 to
a206264
Compare
akien-mga
approved these changes
Feb 20, 2026
Member
akien-mga
left a comment
There was a problem hiding this comment.
Makes sense.
I checked briefly various old Linux distros, it seems 3.9 is fine for most of them: https://pkgs.org/download/python3
- Ubuntu 22.04 LTS: 3.10
- Debian 11 (unofficial LTS until Q3 2026): 3.9
- RHEL9 and equivalents: 3.9 (we already lost support for RHEL8 a while ago as it's on 3.6)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In an upcoming SCons release, Python versions 3.7 and 3.8 are slated for deprecation. They'll still function briefly, but outright removal will likely happen soon after. This is with SCons adopting a 1-year-after-EOL minimum (discussed in their Discord). Given our Python 3.8 bump was a little over a year ago, we're arguably already utilizing the same policy, so making this our new minimum isn't breaking precedent
More pertinently, we currently have 3.9 code in our repo. #113743 inadvertantly broke compatibility with
.removeprefix()1, and this was never caught because the job running this script is not the same as the job running the minimum-supported python version. So if we opt to not bump versions yet, we'll have to change this file to use 3.8 syntax instead, which feels like more of a hassleThis has the added bonus of us no longer having to freeze our
mypyversion, as it's minimum-supported version is also 3.9! Consequently, this bumps the pre-commit hook for it to the latest versionFootnotes
https://github.com/godotengine/godot/blob/0df713417b6b7f4ba077923fde624691c3f19014/tests/compatibility_test/run_compatibility_test.py#L56 ↩