Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop Python 2.7 support for master. #4439

Closed
p12tic opened this issue Nov 17, 2018 · 14 comments
Closed

Drop Python 2.7 support for master. #4439

p12tic opened this issue Nov 17, 2018 · 14 comments
Milestone

Comments

@p12tic
Copy link
Member

p12tic commented Nov 17, 2018

Reasonings:

  • Python 2 is going unmaintained as soon as 2020: https://pythonclock.org/

  • Maintaining compatibility for both python2 and python3 is expensive resource wise

  • Will allow to use python3 features like async/await, which adds a big performance boost for asynchronous apps like Buildbot

Timeline

Buildbot 2.0 is planned to be released on February 2019.
This version will drop support for 2.7 in the master.

Buildbot 1.7 and 1.8 will contain loud warning for python2 users at Buildbot start to invite them to upgrade.

Original issue:

There have been some talks about no longer supporting running master under python 2.x 
some time in the future.
 As 2.0 version will be released soon, maybe it would make sense to mark python 2.x support 
deprecated so that it can be removed in the next major release - 3.0?
@tardyp
Copy link
Member

tardyp commented Nov 18, 2018

I would rather drop python 2.x for 2.0. This would allow us to switch to async/await and improve a lot readability debugability and efficiency.

What should be feasible imho is to have a installer script which would automatically convert async/await code to inlinecallbacks for compat with 3.5.

@p12tic
Copy link
Member Author

p12tic commented Nov 18, 2018

Oh, even better. The async/await conversion is a great idea!

@p12tic p12tic closed this as completed Nov 18, 2018
@tardyp tardyp reopened this Nov 18, 2018
@tardyp
Copy link
Member

tardyp commented Nov 18, 2018

Let's keep it open for discussion. I created an email to users@buildbot.net

@p12tic
Copy link
Member Author

p12tic commented Nov 18, 2018

From email:

One solution would be to release a 1.7.0 LTS version, and only integrate bug fixes there.

I would vote for this approach. Given that buildbot has quite good test coverage, it wouldn't be hard to maintain it except for rewriting python 3.x-specific stuff for 2.7 when backporting.

@p12tic
Copy link
Member Author

p12tic commented Nov 18, 2018

Thinking about it more, if we decided to have an LTS, wouldn't be dropping older python 3.x versions that don't support async/await a good idea from maintainability perspective too? Python 3.5.0 is already 3 years old and all LTS releases of major Linux distributions have at least that version.

Ubuntu 18.04 LTS: python 3.6.5
Debian stretch: python 3.5.3
Red Hat Enterprise Linux/CentOS 7: python 3.6.6 via EPEL

Any users who can't upgrade could just use 1.7.x.

@seankelly
Copy link
Member

RHEL 8 had a beta release with:

Python 3.6 is the default Python implementation in RHEL 8; limited support for Python 2.7 is provided. No version of Python is installed by default.

@rodrigc
Copy link
Contributor

rodrigc commented Nov 23, 2018

We had some discussion for ideas on dropping Python 2.7 support here:

https://supybot.buildbot.net/meetings/buildbot/2018/buildbot.2018-09-04-16.00.log.html#l-100

@rodrigc
Copy link
Contributor

rodrigc commented Dec 8, 2018

I suggested a timeline for dropping Python 2.7 support: https://lists.buildbot.net/pipermail/users/2018-November/001756.html

I also recommended updating the https://buildbot.net web site to put a warning deprecating Python 2.7 support

@tardyp
Copy link
Member

tardyp commented Dec 8, 2018

Looking at the telemetry, we still have 70% of the significant installs (> 1 builder) which is python 2.7, seen over the last 90 days.

I am adding a warning at Buildbot start
#4469

Some suggested also on the documentation, which is the most looked at content, probably more than
the marketing site.

@rodrigc
Copy link
Contributor

rodrigc commented Dec 9, 2018

Not surprising, if pip install buildbot is what people do, that will install buildbot with Python 2.7.

@tardyp tardyp changed the title Should we deprecate python 2.x support for master in Buildbot 2.0? Python 2.7 support deprecated for master. Removed for Buildbot 2.0 (planned for Feb 2019) Dec 11, 2018
@tardyp tardyp changed the title Python 2.7 support deprecated for master. Removed for Buildbot 2.0 (planned for Feb 2019) Python 2.7 support deprecated for master. Dec 11, 2018
@tardyp
Copy link
Member

tardyp commented Dec 11, 2018

edited original issue to reflect what was decided in meeting

@Conan-Kudo
Copy link
Contributor

Python 3 is being requested for inclusion into RHEL/CentOS 7 base: https://bugzilla.redhat.com/show_bug.cgi?id=1639030

@rjarry rjarry added this to the 2.0.0 milestone Jan 14, 2019
@rodrigc rodrigc changed the title Python 2.7 support deprecated for master. Drop Python 2.7 support for master. Jan 19, 2019
@CAM-Gerlach
Copy link

CAM-Gerlach commented Apr 6, 2023

Random passerby here, but maybe time to retire or at least update the webpage banner, given this issue is well over 4 years old and 2.0.0 was released just over 4 years ago now?

image

Alternatively, is there a reason Python 2.7 (and 3.5-3.7) support is still shown in the site banner? 3.7.0, the PyPI version also listed there, lists support for only 3.7-3.9 (and I'm assuming it supports newer (as we're using it up through CPython 3.12) and the tags are missing).

image

Unless there is a pre-2.0 LTS release that is still supported?

@terencehonles
Copy link
Contributor

I assume the trove classifiers haven't been updated to mention newer Python versions (we also use it for newer versions, but aren't on Python 3.12 yet), but for 2.7 that might be left there because the build workers I believe still support Python 2? I'm not sure when that is planned to be dropped, but it seems 2.7 is starting to be slowly pulled from things and it may make sense to drop 2.7 on the worker in addition to the master.

I agree though, that the banner can probably be dropped or changed to reflect that this is in the past i.e. "Buildbot dropped support for Python 2.7 for the master [More Info]"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

11 participants