-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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
[RFC] 4.0.0 Release #5153
Comments
For now, I've locked the conversation on this issue so that only collaborators in the repo are able to comment, to keep the conversation focused on what maintainers are comfortable committing to for v4.0.0. Users and other outside interested parties can open other issues referencing this one with questions or concerns. |
Great plan! I strongly believe we should focus on bug fixes and reviewing PRs from an outside contributors to keep users' loyalty. |
I also feel that it's probably far away given the current project activity level, but I wanted to at least try to push v4.0.0 forward. I hope maybe the conversation on this issue will encourage Microsoft and other maintainers here to devote more time and resources to making it happen. I expect that many (maybe even most) LightGBM users won't rely on specific commits, either via And I can say that for me personally, it's difficult to stay motivated to spend time on challenging bug fixes, pull request reviews, and user questions in issues if it seems like that work might not ever be released 😞 |
For the GPU(non-CUDA) bugs, I think it is hard to fix them, as we cannot reach its original developer. |
How about we make two lists? one is for necessary changes, another one is optional. |
My goal with this issue was to define the list of "what is required for v4.0.0", and I think that's enough. The implication of that would be that anything not listed here is optional. |
@jameslamb haha, there are 52 items, so I think maybe it is too large, and some "hard" items may block us to release. So I propose to have a "core" list that must be done for the v4.0.0. |
I'm very disappointed in this decision 🙁 As I said earlier, OpenCL-based version that is able to run on AMD and Intel GPUs is a competitive advantage of LightGBM.
Have you tried to reach him via email? |
@StrikerRUS for the AMD GPU, we can use rocm, and there are several tools that can covert CUDA code to rocm code. What I mean is to deprecate old GPU algorithm, and move to the new one. And we can adapt the new GPU algorithm to more platforms. |
@jameslamb Thanks for opening this! I'm glad and excited to work towards 4.0.0. I'll commit more time from now on to guarantee the progress.
We will make cuda_exp version supporting as many platforms as now by LightGBM. However, before cuda_exp is stable enough, I think we can still maintain the current CUDA and GPU versions, including bug fixing. |
Oh, interesting idea, I've never heard about such tools! I was sure that CUDA can be run exclusively on NVIDIA cards. However, do you think code transpiling will be convenient for LightGBM users? Honestly, I don't believe that ordinary users will do such things. In contrast, OpenCL version can be used just out of the box on Windows and possibly on Linux in the future.
Probably, they will:
|
@StrikerRUS the code conversion should be manually done by our, and commit to repo. |
@guolinke |
Since the previous release, https://cran.r-project.org/web/packages/lightgbm/index.html Including a fairly high-profile one, I'm planning to try to do some work on those projects to make them compatible with v3.3.2 AND v4.0.0. |
I've opened issues with offers of support for all of
I also want to document this small function in R (proposed in tidymodels/bonsai#42) that can be used to check for the installed version of using_newer_lightgbm_version <- function(){
utils::packageVersion("lightgbm") > package_version("3.3.2")
}
# example
if (using_newer_lightgbm_version()) {
predict(bst, X, rawscore = TRUE)
} else {
predict(bst, X, type = "raw")
} I hope we can get v4.0.0 out soon, and that we'll start releasing more frequently in the future so that we can just use a cycle of deprecation warnings to communicate such changes, instead of needing to go submit patches. |
@shiyu1994 @guolinke can you please devote some time to LightGBM over the next few weeks, and can we try to get a 4.0 release out? At this point, it's been more than a year since the last release with substantive changes (v3.3.1, in October 2021). We really need your help. |
@jameslamb Sure. Personally I feel very anxious whenever I think of that our goal is not finished. Sorry for being blocked by another project in the past few weeks. I'm coming back and will devote more time. Hopefully we can get 4.0.0 done before the new year. |
@jameslamb And thanks for your support all the time. |
Of course! At this point, since it's been more than a year since the last release, I think we need to accept that all the things we'd hoped to get into v4.0.0 aren't going to make it there. It would be better to get a v4.0.0 out and then plan other breaking changes for a v5.0.0 in the future, in my opinion, then to delay v4.0.0 another 6+ months. |
Strongly agree with that. |
I'm focusing most of my attention right now on fixing the issues related to Python packaging and CI as soon as possible, in preparation for this release. It has gotten really complicated, so typing out here the sequence that things need to happen.
I'm happy to try to do most of the work, but really hope @StrikerRUS will be available to provide his expertise. If he isn't, then @jmoralez @shiyu1994 @guolinke I will really need your help with reviews on these. If we are really struggling I can also try to recruit a volunteer from outside of LightGBM who's very familiar with Python packaging. |
@jameslamb Thank you! ping me when you need reviews. |
Just added quantized training (#5606) in the TODO list. |
I'd like to revisit this comment from April (#5153 (comment))
I'm happy to see the progress on implementing more objective functions in the @shiyu1994 @guolinke Do you think we should just remove the version that's currently called I think we should do that at this point, to:
I don't think this project is healthy enough right now (e.g. releasing frequently enough) to do something like release v4.0.0 with both |
Yes. We can do that in v4.0.0. |
Excellent, thanks! I just opened #5677 for your consideration. |
The last thing I absolutely want to get done for v4.0.0 is fix #5061, updating the way I'm working on that in #5759, and have started opening up some other small PRs to help with it (e.g. #5761). @shiyu1994 @guolinke what else do you think absolutely needs to be done before we can put up a v4.0 release? |
@jameslamb For objective functions and metrics on new CUDA version, we will make most of them available on GPU. We may leave some of them (which are not very frequently used) falling back to CPU. This part we've almost done. In addition, I think we should include quantized training. The code is ready in https://github.com/Quantized-GBDT/Quantized-GBDT. We just need to merge it into the official repo. (1~2 weeks ETA) Finally, if possible, we may have a initial support for multi-GPU training on CUDA. An initial support of multi-GPU training may again takes 1~2 weeks. Depending on the progress of development and the date we want to make 4.0.0 released, we may adjust this goal. |
Ok works for me! I'm happy to help with reviews, docs, tests, whatever you need. |
There are now 1.5+ years worth of fixes and improvements sitting on @shiyu1994 @guolinke @jmoralez I think now that #5061 has been addressed and CPU-based quantized training has been added (#5800) we should finally do a v4.0.0 release and not wait any longer. Do you agree? If yes, I'll create the release PR and we can talk more there. |
@shiyu1994 Do we have any other breaking changes? |
@jameslamb @guolinke What about we at least have #5933 merged into v4.0.0? |
That PR doesn't contain breaking changes, so I don't think we should wait for it. It could be part of a 4.1 or 4.0.1 release. If you can't think of any other breaking changes, I think we should move forward with v4.0.0. |
That's OK. We can move forward. |
I have one more small breaking change that is ready to be reviewed: After that, I'll make a PR for the 4.0 release. Exciting!!! |
For anyone subscribed to notifications and wondering why v4.0.0 of the R package isn't on CRAN yet... it won't be until at least mid-August. See #5952 (comment) |
Summary
@StrikerRUS @guolinke @shiyu1994 @jmoralez @btrotta @Laurae2 could you please try to list out what you all feel is required before a v4.0.0 release of LightGBM is prepared?
Please edit this description and add issues that you feel should be fixed prior to a v4.0.0 release. I've proposed an initial list below.
Python package
n_jobs
and change default to number of cores #5105R package
r-package (windows-latest, MINGW, R 3.6, cran)
CI job fails #5036predict
ignorespredict_raw_score
#4670CUDA
GPU (non-CUDA)
Quantized Training
Other
thread
sanitizer #4331macOS-10.15
Azure Pipelines environment is deprecated #5391Motivation
The most recent release of LightGBM, v3.3.1, was about 6 months ago (October 27, 2021.
There was a v3.3.2 release on January 7, 2022, but it just contained a single small patch to satisfy CRAN
We have been talking for even longer than that about putting out a 4.0.0 release of LightGBM. Many many fixes, features, and breaking changes have been merged since v3.3.1, and the state of this project on
master
is now significantly different from what users will get runningpip install lightgbm
.I'd like to try to list out everything that we feel needs to be done before the 4.0.0 release, to focus our efforts and hopefully get that release out to users soon. I think an issue like this was successful with the v3.3.0 release (#4310).
Other Items for Release Checklist
stable
tag on readthedocsThe text was updated successfully, but these errors were encountered: