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