-
Notifications
You must be signed in to change notification settings - Fork 3.9k
[ci] Drop support for Python 3.7 and Python 3.8 #6896
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
Conversation
@jameslamb the AppVeyor CI fails to solve the environment. However, I can't replicate this behavior locally (even for Windows) -- any idea how to debug this? |
Links and a bit of plaintext logs would be helpful, to narrow it down. "fails to solve the environment" could take many different forms. I just looked in the history of Appveyor runs It looks like the solve setting up the environment succeeded as did all of the Python unit tests.
I guess you probably mean this later solve, after the tests:
Since it's after the tests, I guess it must be this one: Line 146 in ec5492f
Do this initial Lines 79 to 85 in ec5492f
Run If there are differences in any package versions, then that means there's something different between your local environment and CI, and those differences are the result of the different behavior. The relevant difference will probably exist in the output of these commands: conda config --get
conda info
conda --version If all of the versions and |
Thanks for the hint @jameslamb, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this! I left one small suggestion for your consideration.
Overall, I'm supporting of changing the Python support policy in this project to Python version support is dropped when a version of Python reaches end-of-life, according to https://devguide.python.org/versions/.
That'd be more aggressive than we've been in the past, but I think it's defensible given that many of lightgbm
's dependencies are even more aggressive (SPEC 0) and so is conda-forge
(https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html#managing-python).
But let's not merge this until @StrikerRUS has a chance to comment as well, I'd like to hear his thoughts.
Also... @borchero , I know it's been a little while since your last PR here. As a reminder... every PR in this repo needs to have a label from the set of release notes sections:
LightGBM/.github/release-drafter.yml
Lines 3 to 15 in ec5492f
categories: | |
- title: '💡 New Features' | |
label: 'feature' | |
- title: '🔨 Breaking' | |
label: 'breaking' | |
- title: '🚀 Efficiency Improvement' | |
label: 'efficiency' | |
- title: '🐛 Bug Fixes' | |
label: 'fix' | |
- title: '📖 Documentation' | |
label: 'doc' | |
- title: '🧰 Maintenance' | |
label: 'maintenance' |
Please add them on all of the PRs you've opened. This one would be breaking
, similar to when we dropped Python 3.6: #6459
dask=2022.12.* | ||
distributed=2022.12.* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd support updating the minimum for dask
in the [dask]
extra to >=2022.12.0
to match this.
Here:
LightGBM/python-package/pyproject.toml
Line 42 in ec5492f
"dask[array,dataframe,distributed]>=2.0.0", |
That's 2+ years old at this point, which is a LOT of time given the speed of development in Dask.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll do this in a follow-up PR, let's not grow the size of this PR too much more.
I don't mind to change the Python support policy. I believe this change will be understandable from the community point of view given our small team size. Also, nowadays there are a lot of [cool] environment managing tools besides conda that extremely simplify the process of creating new envs. So for newcomers it should be a problem. And for old users, as @jameslamb already mentioned, they are locked with old package versions including the deps. P.S. Another example of harsh policy for version retirement: #6520. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
It's been 3 months without a response from @borchero (who mentioned to me offline that he has not had much time for LightGBM recently), so I took this over. I just pushed the following changes:
Since I pushed changes here, my review shouldn't count towards a merge. @StrikerRUS if you don't mind, could you please re-review? |
dismissing because now I've pushed changes here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jameslamb Thanks a lot for picking this up!
Motivation
In our CI, we are still testing for old Python versions, namely Python 3.7 and Python 3.8. However:
conda-forge
does not build packages for Python <3.9 anymoreI'd argue that we can simplify our CI by dropping support for 3.7 and 3.8 and, instead, test on 3.9 the new "oldest supported Python version".
Changes