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 · 13 comments
Closed

Drop Python 2.7 support for master. #4439

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

Comments

@p12tic
Copy link
Member

@p12tic 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 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 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
Copy link
Member

@tardyp 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 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 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

@seankelly 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
Copy link
Collaborator

@rodrigc 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
Collaborator

@rodrigc 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 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
Collaborator

@rodrigc 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 tardyp commented Dec 11, 2018

edited original issue to reflect what was decided in meeting

@Conan-Kudo
Copy link

@Conan-Kudo 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
@rodrigc rodrigc changed the title Python 2.7 support deprecated for master. Drop Python 2.7 support for master. Jan 19, 2019
@tardyp tardyp closed this in #4470 Jan 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
8 participants
@seankelly @tardyp @Conan-Kudo @rjarry @p12tic @rodrigc and others