← Back to team overview

duplicity-team team mailing list archive

Python 3

 

Hello all,

I have been doing a bit of work to support python 3 in the codebase. Broadly, I have been following:
https://docs.python.org/3/howto/pyporting.html
and using Futurize: http://python-future.org/automatic_conversion.html
For any unfamiliar, that essentially means converting the code to python 3 style and, where necessary, using import statements to pull features from python-future into python 2.

Before I start trying to unravel the pain that is PEP 414 (u'') vs futurize's unicode_literals, I wanted to know if anyone has an actual need for python 2.7 support in the 0.8-series. Even Ubuntu 12.04 (Precise), which is barely still in maintenance, has python 3. We will also be supporting the python 2 0.7-series as the stable for a little while yet.

I had always planned to make duplicity support both python 2 and 3 first and then drop python 2 support in the future, but it seems an opportune time to ask whether supporting the legacy python version is necessary. Unlike many projects, we do not provide any libraries for others, so if we can get it running properly on platforms back to 2012 using python 3, keeping python 2 support is just going to add complexity and mess.

For context, the last python 2 release (2.7) was released in 2010 and originally had an EOL of 2015, though this was extended to 2020 primarily to provide a central location for patches from third party vendors who offered extended support:
http://legacy.python.org/dev/peps/pep-0373/
https://news.ycombinator.com/item?id=7582300

Happy to be proved wrong on this if someone can think of a use case I've missed.

Kind regards,

Aaron


Follow ups