Bug 1622963 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

Our minimum required version of Python 3 has been 3.5 for a while, since at least bug 1451065, and 3.5 is a fairly old version of Python anyway so the bump doesn't seem especially aggressive. This comes on the heels of bug 1617748 where getting everything to work under Python 3 on all platforms has been troublesome, so consolidating our supported versions of Python as much as possible before officially making this transition can only make our lives easier in the short run.

Python 3.6 has [a number of improvements/behavioral changes](https://docs.python.org/3/whatsnew/3.6.html) that should make a meaningful difference for us. The biggest pain point in the Python 3 migration *by far* has been difficulties with text encoding, especially in different environments including automation, and Python 3.6 is just better all-around in every respect with regard to text encoding, particularly on Windows (see PEP 528 and 529). The most important of these is [the addition of the `encoding` argument to `Popen.__init__()`](https://docs.python.org/3/library/subprocess.html#using-the-subprocess-module), which we used in the resolution to bug 1622021. (We could probably find a workaround that doesn't include setting `encoding` when calling into subprocesses, but this is the "correct" solution to the problem given our constraints and I don't see that trying to work around it so we can preserve Python 3.5 compatibility makes any sense.)

This will require making sure we install Python 3.6 for all builders in CI.
Our minimum required version of Python 3 has been 3.5 for a while, since at least bug 1451065, and 3.5 is a fairly old version of Python anyway so the bump doesn't seem especially aggressive. This comes on the heels of bug 1617748 where getting everything to work under Python 3 on all platforms has been troublesome, so consolidating our supported versions of Python as much as possible before officially making this transition can only make our lives easier in the short run.

Python 3.6 has [a number of improvements/behavioral changes](https://docs.python.org/3/whatsnew/3.6.html) that should make a meaningful difference for us. The biggest pain point in the Python 3 migration *by far* has been difficulties with text encoding, especially in different environments including automation, and Python 3.6 is just better all-around in every respect with regard to text encoding, particularly on Windows (see PEP 528 and 529). The most important of these is [the addition of the `encoding` argument to `Popen.__init__()`](https://docs.python.org/3/library/subprocess.html#using-the-subprocess-module), which we used in the resolution to bug 1622021. (We could probably find a workaround that doesn't include setting `encoding` when calling into subprocesses, but this is the "correct" solution to the problem given our constraints and I don't see that trying to work around it so we can preserve Python 3.5 compatibility makes any sense.) All of this is in addition to inherently positive changes like perf improvements in hash tables and so on.

This will require making sure we install Python 3.6 for all builders in CI.

Back to Bug 1622963 Comment 0