Skip to content

Instantly share code, notes, and snippets.

@hamzah70
Last active December 9, 2020 12:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save hamzah70/74aa75143ddb5e575c07d07b50c6243d to your computer and use it in GitHub Desktop.
Save hamzah70/74aa75143ddb5e575c07d07b50c6243d to your computer and use it in GitHub Desktop.

Google Summer of Code'2020

Project - Implement cross version support for python
Mentor - Jannis Leidel(jezdez)

Implement cross version support for Python


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.

BUGS


  • 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

Pull Requests


What's left


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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment