Compose: Remove Python2

Created on 9 Sep 2019  路  6Comments  路  Source: docker/compose

Is your feature request related to a problem? Please describe.
As January 1st approaches, support for "Python 2" gets to its end. By deprecating it we can free some machine/time on CI and maybe simplify our "dependency matrix"

Note that this issue is not meant to be executed before the January 1st 2020. The early public issue is just to track it and talk/communicate about.

Describe the solution you'd like

  • [ ] Remove py2 from the build matrix in Jenkins
  • [ ] Remove Python 2 from setup.py
  • [ ] Remove six from requirements.txt
  • [ ] Remove the announcement banner in README.md
kinepic

Most helpful comment

There's probably many places a pure python 3 codebase could offer improvements, but my main motivation here is to reduce the maintenance effort.

All 6 comments

two quick remarks:

1) dropping support for Python 2 also allows to employ language features for better readability, like dict comprehensions, set literals; new-style classes should be used and might provide leverage for further improvements.

2) why would the support for Python 2.7 be dropped when Python 3.2 and 3.4 is still supported though they reached their eol.

@funkyfuture I agree with the first remark, and for the second, I don't see any problem on dropping that.
The point here is just that dropping 3.2 and 3.4 will just impact the setup.py and not the compose code itself, like removing all the six conditions inside the code that would be a fairly big PR

dropping support for Python 2 also allows to employ language features for better readability, like dict comprehensions, set literals; new-style classes should be used and might provide leverage for further improvements.

I'm not arguing against dropping Python 2 support, but all of these language features are already supported on Python 2.

There's probably many places a pure python 3 codebase could offer improvements, but my main motivation here is to reduce the maintenance effort.

and Python 2.7 is EOL and is going to be removed from the next Debian and Ubuntu releases.

Hi,

Remove the announcement banner in README.md

I think it could be worthwhile to leave this as a deprecation notice for some time _after_ the change, so folks with broken python support who come here can know what's up (that this is intentional, etc.)

Otherwise all sounds reasonable to me. :+1:

Edit: Or you could pin this issue. Just something to avoid issue spam and to give clarity to the situation.

Edit 2:

Python 2.7 is EOL and is going to be removed from the next Debian and Ubuntu releases.

Not strictly true. The executable named python is being removed, by default, from fresh installs of Ubuntu, but upgrades of prior distros are planned to have python2 still installed as the default Python. It is also runnable (for upgrades from earlier Ubuntu versions) as python, via a symlink. But for fresh Focal installs, one needs to run python2 or python3 explicitly, and there is no program named exactly "python".

See:

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dimsav picture dimsav  路  3Comments

29e7e280-0d1c-4bba-98fe-f7cd3ca7500a picture 29e7e280-0d1c-4bba-98fe-f7cd3ca7500a  路  3Comments

davidbarratt picture davidbarratt  路  3Comments

bergtwvd picture bergtwvd  路  3Comments

dazorni picture dazorni  路  3Comments