These are chat archives for HelloZeroNet/ZeroNet

20th
Dec 2018
Ilyes Houdjedje
@ilyeSudo
Dec 20 2018 21:00

Hello community, @imachug
I would like to contribute by adding support for python 3. I've already migrated a couple of big projects before, and that's how it went:

Why?:

  • Support for Python 2 will sunset in 2020.
  • Python 3 is where the future is heading, so all the new features will be implemented in there.
  • Many powerful libraries start to ditch Python 2 support.

Workflow:

  • Py2 > Py2&3 Compatible > Py3

Process:

  • Feature-oriented PRs (Feature-by-Feature migration)

Steps (5):

  • Syntax Fixes: lists/iterators handling, exceptions, octal literals, etc.
  • Semantic Fixes: Unicode literals, division, hybrid comparisons, etc.
  • Env switch: add py3 & cut/keep py2 support
  • More Fixes: fix remained bugs (because it's painful, you guessed it...you are damn right!)
  • Cleanup (optional): get rid of compatible code such as Try/Except imports, TODOs, etc.

Challenges:

  • Contributors may still write py2 code which will cause me rebasing my branch on master forever. For that, we need to have a regex text search validation file at Jenkins' level that catches any code that's not a py2&3 compatible.

What do you think? I can start working on it right away...