Open StrikerRUS opened 3 years ago
@jameslamb Please help to clarify. Should we monitor new releases for R 3.x stuff or they have been frozen forever?
@jameslamb Please help to clarify. Should we monitor new releases for R 3.x stuff or they have been frozen forever?
No R 3.x resources will change.
Rtools for R 3.x is frozen forever. https://cran.r-project.org/bin/windows/Rtools/history.html
We also do not need to look for new versions of R itself. R doesn't have a concept of "long-term support" releases like other projects. So you won't see a bugfix that results in, say, R 4.1.1 and R 3.6.4 at the same time.
You can see the history of release dates at https://cran.r-project.org/bin/windows/base/old/.
I'm so sorry for my English, but I can read this answer in two ways. Which one is correct? 😄
No, R 3.x resources will change.
No R 3.x resources will change.
Rtools for R 3.x is frozen forever.
Ah, I see, thanks! Removed from the list.
You can see the history of release dates at https://cran.r-project.org/bin/windows/base/old/.
I see there are
R 4.0.3 (October, 2020)
R 4.0.2 (June, 2020)
R 4.0.1 (June, 2020)
R 4.0.0 (April, 2020)
What about 4.0.4
? Why we shouldn't wait for it?
Oh sorry, let me rephrase.
For 4.x series, there will continue to be new releases. They tend to do 4 or 5 per year. The next release of R will be R 4.1.0. That might or might not involve a new Rtools 4.x release. I use this mirror of the R source (R development is not actually done on GitHub) to keep track: https://github.com/wch/r-source/blob/trunk/VERSION
Thank you very much! Then I'm removing R 3.x from the list as well.
The next release of R will be R 4.1.0. That might or might not involve a new Rtools 4.x release.
Got it, great! Then I think we can have them both in the list.
They tend to do 4 or 5 per year.
Quite frequent. For instance,
Visual Studio version for OpenCL libraries integration
VS releases have 2-year cycle, but I still find it useful to have VS mentioned here.
I want to note here that R 4.1.0 is planned for release on May 18, 2021.
https://twitter.com/pdalgd/status/1383008275545919488
You can see a full list of changes in that version at https://stat.ethz.ch/R-manual/R-devel/doc/html/NEWS.html. There is only one that looks immediately relevant to {lightgbm}
, although it's hard to tell since some of the changes are deep in the internals of R and {lightgbm}
may indirectly rely on them.
The default C++ standard has been changed to C++14 where available (which it is on all currently checked platforms): if not (as before) C++11 is used if available otherwise C++ is not supported.
Packages which specify C++11 will still be installed using C++11.
Either specify C++11 (see ‘Writing R Extensions’) or modernize the code and if needed specify C++14
I don't think {lightgbm}
needs to worry about this, because it already declares its use of C++11 in the way that is recommended by "Writing R Extensions"
CXX_STD
in Makevars
: https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Using-C_002b_002b-code
I don't think that any action is required at this time to prepare for R 4.1.0. But that release will be a big one so I just wanted to note that it's coming so we're prepared.
This project's Windows R-package CI jobs will need to update to a new RTools toolchain, RTools43
, once R 4.3 is released.
docs: https://cran.r-project.org/bin/windows/Rtools/rtools43/rtools.html
announcement on the R-pkg-devel
mailing list: https://stat.ethz.ch/pipermail/r-package-devel/2023q1/008780.html
Looks like this issue haven't been updated from more than 1.5 year. I guess a lot of things have been changed.
Should we close this issue? @jameslamb
Many of the things mentioned in this issue have been updated in the last year and a half, but I hadn't started from this issue and so did not remember to link it.
The list is a very useful list of all the places that could be updated and I'd hoped we would get outside contributors helping with this via the good first issue
label, but:
Despite that.... I vote that we keep it open. I will try to do a better job of linking back to this in version updates, and can spend some time updating the list and links in the issue description.
I also think there are some opportunities to use more automation for managing versions and to centralize version numbers in fewer places.
For example:
dependabot
for GitHub Actions versions in #6449@jameslamb Thanks a lot for your position! Renovate looks interesting! I remember I saw it somewhere in the past but didn't give it a try, unfortunately...
@jameslamb without reading through the entirety of this issue:
SHAs of commits of third-party dependencies
we could also automate this using dependabot just like GH actions :smile:
we could also automate this using dependabot just like GH actions
Oh that would be excellent!
I'd support a PR that does that. At this point I'm very confident in this project's CI to catch issues with new versions of those dependencies, and it would be great to integrate bugfixes and performance improvements more often.
Here is a list of different places in LightGBM's GitHub repo where we specify some dependencies or helpers. Quite often we should specify a particular version of such software. And these versions are tend to obsolete with time. If you see that there is a newer version comparing to what we have, please feel free to propose a PR with updates or simply leave a comment here.
external_libs
folder. If there are some checkpoints (markers of stable versions) of these libraries, e.g. Releases at GitHub, the most recent stable release should be used (not the unstable latestmaster
commit). If there are no such indicators of stable commit, use the latest available one. How to update GitHub submodules.PublishBuildArtifacts
Azure Pipelines task (multiple occurrences, do search the file forPublishBuildArtifacts
keyword)DownloadBuildArtifacts
Azure Pipelines task https://github.com/microsoft/LightGBM/blob/f997a0692ca0f26740d2bdef2695c3e881d4e918/.vsts-ci.yml#L220NuGetCommand
Azure Pipelines task https://github.com/microsoft/LightGBM/blob/f997a0692ca0f26740d2bdef2695c3e881d4e918/.vsts-ci.yml#L228PublishBuildArtifacts
Azure Pipelines task https://github.com/microsoft/LightGBM/blob/f997a0692ca0f26740d2bdef2695c3e881d4e918/.vsts-ci.yml#L233GitHubRelease
Azure Pipelines task https://github.com/microsoft/LightGBM/blob/f997a0692ca0f26740d2bdef2695c3e881d4e918/.vsts-ci.yml#L238CMakeLists.txt
in case of adding new breaking changes in the CPP code of LightGBM (also, make updates in the installation guide and in the Python installation guide)Checkout repository
GitHub Action (multiple occurrences, do search in the.github/workflows
folder foractions/checkout
keyword in all files)upload-artifact
GitHub Action https://github.com/microsoft/LightGBM/blob/f2695daba2506d047831e39aeb521e94adec5e8d/.github/workflows/r_artifacts.yml#L48setup-pandoc
GitHub Action https://github.com/microsoft/LightGBM/blob/f2695daba2506d047831e39aeb521e94adec5e8d/.github/workflows/r_package.yml#L119application/vnd.github
keyword in the repo)lightgbm-ci-docker
repository that are used in our CI environmentslibboost
from Martin Hierholzer's ppa https://github.com/microsoft/LightGBM/blob/f2695daba2506d047831e39aeb521e94adec5e8d/.ci/setup.sh#L70gcc
version that comes frombrew
on macOS https://github.com/microsoft/LightGBM/blob/f2695daba2506d047831e39aeb521e94adec5e8d/.ci/test.sh#L4-L5Autoconf
version for R-package https://github.com/microsoft/LightGBM/blob/d107872a5342442420edaa1d1849901f865f2331/R-package/configure.ac#L6Autoconf
version for R-packageconfigure
file for R-package: https://github.com/microsoft/LightGBM/tree/master/R-package#changing-the-cran-package and https://github.com/microsoft/LightGBM/blob/9388b2ecc1649d0a68d3c1ff053775ff00d4d288/.github/workflows/r_configure.yml#L12{roxygen2}
used in R-package docslibboost
for GPU-version inCMakeLists.txt
(also, make updates in the installation guide) https://github.com/microsoft/LightGBM/blob/d107872a5342442420edaa1d1849901f865f2331/CMakeLists.txt#L137OpenCL
for GPU-version (multiple occurrences, do search foropencl
keyword in the installation guide)build
section; adding new and removing deprecated config values)sphinx_rtd_theme
for documentation generation indocs
' folder README file (search forsphinx_rtd_theme
; version should be the same as in conda environment)docs
' folder README file (search forreadthedocs/build
; tag should be the most recently released)docker
folder