|
| 1 | +# RFC 189: Bump minimum supported Python to 3.8 |
| 2 | + |
| 3 | +## Summary |
| 4 | + |
| 5 | +Increase the minimum supported Python version to 3.8. |
| 6 | + |
| 7 | +## Details |
| 8 | + |
| 9 | +Currently we support Python 3.7+. However 3.7 was EOL in June 2023, |
| 10 | +and the Python ecosystem has generally moved away from offering |
| 11 | +3.7 support. Practically this means that we have been unable to update |
| 12 | +many dependencies which depend on 3.8+. |
| 13 | + |
| 14 | +Previously the blocker for updates was the downstream integration with |
| 15 | +Gecko's CI which still used Python 3.7. This has recently been updated |
| 16 | +to use [3.8](https://bugzilla.mozilla.org/show_bug.cgi?id=1843209), |
| 17 | +which unblocks updating to that version. |
| 18 | + |
| 19 | +Practically this requires several manual changes: |
| 20 | + |
| 21 | +* Change the CI jobs running under Python 3.7 to instead use 3.8. |
| 22 | +* Update any outdated vendored dependencies that are being held back |
| 23 | + due to lack of 3.7 support. |
| 24 | +* Retrigger CI runs for dependabot PRs. Hopefully this allow many |
| 25 | + dependencies to be updated, although there may be some for which |
| 26 | + the latest versions require 3.9+. In these cases we should manually |
| 27 | + try to update to the latest 3.8 compatible release. |
| 28 | + |
| 29 | +## Risks |
| 30 | + |
| 31 | +3.8 itself is near the end of its support period (October 2024), so there |
| 32 | +is some risk that we end up in a similar situation again soon, with libraries |
| 33 | +requiring 3.9+. However given the requirement to support vendors, and |
| 34 | +the fact that Gecko depends on 3.8, bumping the minimum version |
| 35 | +further is not possible at this time. |
| 36 | + |
| 37 | +Some unknown external users may depend on 3.7 support. This is |
| 38 | +hopefully reasonably unlikely as they would both need to be using wpt |
| 39 | +in a large system where Python updates are challenging, and also not |
| 40 | +be participating in the RFC process. However if this does happen we |
| 41 | +will need to work with the external user to determine a viable path |
| 42 | +forward. |
0 commit comments