← Back to team overview

duplicity-team team mailing list archive

Re: Help with unicode branch (for Python3 support)

 

Hello all,

On 16/12/17 15:58, Kenneth Loafman wrote:
I'm sure that we will not want to maintain 2 and 3 versions of the code, so I'm proposing that we cut off 2.x after the 0.8-series and make 0.9-series be 3.x and above.  Now, since I've been reading, where do we start in the 3.x Python series? It seems that there's a break in there, around 3.3 (?) where it would be difficult to maintain backwards compatibility.  I need some advice on this.  Is there need of supporting Python 3.0 thru 3.3?

So are you proposing that we get to full Python 2/3 support in duplicity 0.8 and then cut off the Python 2 support? Or do you mean Python 2 only for 0.8 and Python 3 only for 0.9?

When we last discussed this:
https://lists.launchpad.net/duplicity-team/msg04087.html
https://lists.nongnu.org/archive/html/duplicity-talk/2017-01/msg00052.html
I think the consensus was that we should support both for one series before going solely Python 3.

I am a big fan of ditching Python 2 asap, but do not have a strong view on the process. Whatever the plan, we have a lot of basic work (making strings clearly unicode/bytes, marking string literals, fixing remaining 2to3 exceptions etc) to do on the Python 2 code base that will help us get to Python 3. One of the big risks is that we get stuck with an incomplete Python 3 branch separate to a working Python 2 version, so an advantage of the 2/3 approach for a series would be that we could at least push the Python 3 work into trunk and avoid it getting out of sync.

Regarding version, I think Python 3.4 is a sensible minimum version for now, but I think we bump that to 3.5 in April 2019 (when Ubuntu Trusty 14.04 is EOL and all supported Ubuntu versions are running Python 3.5+). I would be tempted to take an even more aggressive position (e.g. only supporting the latest Python 3 version) if we ever start distributing packages that bundle the requirements (e.g. Snap packages or Flatpak) -- as I understand it, the main reason to support old versions is to let people retrofit a new, non-system version of duplicity on an old OS, which those package formats enable. I find it really frustrating not being able to use a new language feature because of legacy Python support.

Just my thoughts.

Kind regards,

Aaron


Follow ups

References