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

Python 2.7 support deprecated for master. #4439

Open
p12tic opened this Issue Nov 17, 2018 · 12 comments

Comments

Projects
None yet
6 participants
@p12tic
Copy link
Contributor

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

This comment has been minimized.

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

This comment has been minimized.

Copy link
Contributor

p12tic commented Nov 18, 2018

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

@p12tic p12tic closed this Nov 18, 2018

@tardyp tardyp reopened this Nov 18, 2018

@tardyp

This comment has been minimized.

Copy link
Member

tardyp commented Nov 18, 2018

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

@p12tic

This comment has been minimized.

Copy link
Contributor

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

This comment has been minimized.

Copy link
Contributor

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

This comment has been minimized.

Copy link
Member

seankelly commented Nov 18, 2018

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

This comment has been minimized.

Copy link
Collaborator

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

This comment has been minimized.

Copy link
Collaborator

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

This comment has been minimized.

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.

@tardyp tardyp referenced this issue Dec 9, 2018

Merged

Python2.7 #43

@rodrigc

This comment has been minimized.

Copy link
Collaborator

rodrigc commented Dec 9, 2018

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

@rodrigc rodrigc referenced a pull request that will close this issue Dec 10, 2018

Open

Eliminate Python 2.7 support on buildbot master only #4470

@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

This comment has been minimized.

Copy link
Member

tardyp commented Dec 11, 2018

edited original issue to reflect what was decided in meeting

@Conan-Kudo

This comment has been minimized.

Copy link

Conan-Kudo commented Dec 12, 2018

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment