Closed Bug 1362323 Opened 4 years ago Closed 1 year ago
Upgrade to python 3
44 bytes, text/x-github-pull-request
|Details | Review|
After 3 years python 2.x will be discontinued. Also new features will not come to python 2.x anymore. Also python 3.x consumes less memory in string variables (optimized for Unicode) and works a bit faster. # Statements in wiki: List of features that will not be backported to python 2.x: * strings are Unicode by default * clean Unicode/bytes separation * exception chaining * function annotations * syntax for keyword-only arguments * extended tuple unpacking * non-local variable declarations Heroku supports python-3.6.1 runtime. Some operating systems (Linux distributions) are already using python 3.x as default. # What needs to be done: 1. Checking all dependencies for python 3.6 support. 2. Updating documentation (for example specifying python version for virtualenv as MacOS and some Linux distros are currently using python 2.x as default). 3. Checking and updating code to support it. I'll be happy to work on it, but as it is a major change, it needs to be discussed. Mostly about what can be side effects and etc.  https://wiki.python.org/moin/Python2orPython3
Thanks for filing, Emin! I don't have enough insight right now, so I'm removing the NI.
As of dependencies, compare-locales isn't py3 yet, and I don't expect to invest in an update on that until we can use python3 in the firefox build system. translate-toolkit seems to be fine with py3. Also, django 2 will not support python 2 (oh the irony).
I don't have any major insight except "Yes, do this yesterday." For dependencies like compare-locales, I'd recommend using six to make them both Python 2 and Python 3 compatible. You can use tox to help run your test suite under multiple versions of Python easily, as well.  https://pythonhosted.org/six/  https://tox.readthedocs.io/en/latest/
Wiki to track updates: https://wiki.mozilla.org/L10n:Pontoon/Python_3 Pad: https://public.etherpad-mozilla.org/p/pontoon.python3
depends on bug 1386193
An interesting read on how Socorro got migrated to Python 3: https://bluesock.org/~willkg/blog/mozilla/socorro_python3.html A note from Pike: "Splitting up requirements into requirements and constraints sounds nice"
Status: NEW → ASSIGNED
Summary: Updating environment to python 3.6 → Upgrade to python 3.6
Depends on: 1585251
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.