Project - Implement cross version support for python
Mentor - Jannis Leidel(jezdez)
The projects aims to bring the support of python3 to the whole mozilla-central codebase and remove the support for python2 since it reached its end of life in January'20. It involves keeping up to date third_party packages so as to improve performance and add support for python3 and rewriting py2 code wherever required.
- Bug 1496527 - [meta] Support python 3 across Firefox projects (Meta Bug)
- Bug 1577599 - [meta] mach command migration to python3 (Meta Bug)
- Bug 1606475 - Move "mach clang-format" to Python 3
- Bug 1639009 - Convert 'mach xpcshell-test' to run with Python 3
- Bug 1594914 - mach - python-test compatibility for python3
- Bug 1598823 - mach - run visualmetrics with python3
- Bug 1638974 - Convert 'mach mochitest' to run with Python 3
- Bug 1408051 - Remove mozharness' copy of virtualenv and use the one under /third_party/python instead
- Bug 1654457 - Upgrade vendored virtualenv
- Bug 1577883 - mach - enable python3 for release-history
- Convert mach python-test to run with python 3
- Convert 'mach xpcshell-test' to run with Python 3
- Move mach clang-format to Python 3
- [mozprocess] TypeError when using ProcessHandler without the argument on Python 3
- Disable test_telemetry.py for python2 on OSX
- Remove mozharness' copy of virtualenv and use the one under /third_party/python instead
- Update virtualenv to latest release version
- mach - run visualmetrics with python3
- Fix raptor on mac
- Support python3 in taskcluster/taskgraph/create.py and taskcluster/taskgraph/decision.py
- Make mozharness::test python3 compatible
- Make mozharness::scripts python3 compatible
- Make mozharness::mozilla::repo_manipulation.py python3 compatible
- Make mozharness::mozilla::testing python3 compatible
- Fixed imports with six and removed iteritems in mozharness::script.py
- release-history mach command
- make mozharness::external_tools and mozharness::examples python3 compatible
- Run mach mochitest with python3
Even though GSoC has come to an end but the work is still not complete. A lot is needed to be done before we can surely say that mozilla-central supports py3 completely. The work is tracked by BUG#1496527. The majority of the work for porting includes the mach command migration, which is tracked by BUG#1577599. While working on this project, one will have to keep up to date third-party packages and rewrite code accordingly to support py2 and py3. It's because there can be a case where a file containing py3 code may call some other code in the tree that does not support py3, which may eventually lead to bustages in the tree.