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

[VOTE] Ending Python 2.x support in next release (0.83) #4379

Closed
hcho3 opened this issue Apr 16, 2019 · 15 comments
Closed

[VOTE] Ending Python 2.x support in next release (0.83) #4379

hcho3 opened this issue Apr 16, 2019 · 15 comments

Comments

@hcho3
Copy link
Collaborator

hcho3 commented Apr 16, 2019

Given that Python 2 will reach its end of life at the end of this year, we should drop Python 2 support. That is, contributors would no longer be required to write Python code that's compatible with Python 2.7. Also, Python distributions of XGBoost on PyPI will be Python 3 exclusive.

Indicate your support by replying "+1" to this thread. I want to get 4-5 votes from the committers to proceed with this decision. (Others, feel free to voice support with +1 reply as well, although only committers will have binding votes.)

@dmlc/xgboost-committer

@terrytangyuan
Copy link
Member

Definitely +1

@trivialfis
Copy link
Member

+1.

We need to upgrade Python on test farm then.

@RAMitchell
Copy link
Member

+1

@CodingCat
Copy link
Member

+1

2 similar comments
@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 17, 2019

+1

@pommedeterresautee
Copy link
Member

+1

@tqchen
Copy link
Member

tqchen commented Apr 17, 2019

+1

@hcho3
Copy link
Collaborator Author

hcho3 commented Apr 21, 2019

With 7 votes from committers, it is decided that the upcoming release (0.83) will support Python 3 exclusively. I filed #4381 to migrate pylint to Python 3, and #4380 will use Python 3 exclusively for all CI tests. Thanks!

@hcho3 hcho3 closed this as completed Apr 21, 2019
@hcho3 hcho3 mentioned this issue Apr 21, 2019
18 tasks
@CAM-Gerlach
Copy link

CAM-Gerlach commented May 3, 2019

Given the major status of this project and the major importance of this project to the scientific Python community, you should consider adding your name and logo to Python3Statement.org of projects planning to drop support for Python 2 on or before Jan 1 2020, to maximize public visibility of your support timeline in a central location, and help send the message that remaining Python 2 users should start transitioning now to minimize the pain later. To add XGBoost, you can just submit a simple PR to the Python3Statement repo with your name and logo—a SVG or transparent PNG of this would be ideal:

image

Or, if you like, I can create a PR for you there and @hcho3 or whomever responsible can sign off, if you want. Thanks!

@hcho3
Copy link
Collaborator Author

hcho3 commented May 3, 2019

@CAM-Gerlach Yes, we'd love to put our logo there. Can you go ahead and create a PR on our behalf? I'll sign it off.

@CAM-Gerlach
Copy link

@hcho3 Sure; I'll go ahead and tag you there. Thanks!

@CAM-Gerlach
Copy link

CAM-Gerlach commented May 3, 2019

@hcho3 Particularly since it is ending Python 2 support before 2020, it would be really nice to have the project in the timeline. What date should I put for the beginning of Python 3 support (or has it always supported Python 3 since the first release in 2014)? I couldn't find any info on this in the obvious places (Trove classifiers, .travis.yml/appveyor.yml, release notes, readme, etc).

Also, is there an approx release date for 0.90 (it doesn't have to be exact, just the likely date of release assuming Spark 2.4.3 drops on as planned on or about May 5 (which it looks it will) and implementing the remaining items for #4389 go according to plan; due to the long time span of the charge, a difference of up to a couple weeks from the actual won't really be visible. Thanks!

@hcho3
Copy link
Collaborator Author

hcho3 commented May 3, 2019

@CAM-Gerlach XGBoost has been tested with Python 3.x for a long while. At PyPI, we have been distributing "universal" wheels of XGBoost that are both Python 2 and 3 compatible. See https://pypi.org/project/xgboost/#files.

Only change with 0.90 release is that we will no longer make guarantee about supporting Python 2. We hope to release 0.90 by middle of May, assuming we can address the items in the Roadmap.

@CAM-Gerlach
Copy link

XGBoost has been tested with Python 3.x for a long while.

Okay, so about what rough timeframe should I put down for that, then?

@hcho3
Copy link
Collaborator Author

hcho3 commented May 3, 2019

At least since Nov 2015, based on this commit: 25c4fbd. This commit adds a compatibility layer to support Python 2 and 3.

@lock lock bot locked as resolved and limited conversation to collaborators Aug 1, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants