"git@developer.sourcefind.cn:tianlh/lightgbm-dcu.git" did not exist on "dc09d1b41f95f413a4dcb648478fdebf862c49ea"
Unverified Commit cb4972ee authored by Oliver Borchert's avatar Oliver Borchert Committed by GitHub
Browse files

[ci] Fix R 3.6 tests, dask tests, compatibility with dask>=2024.3.1 (#6357)

parent b27d81ea
...@@ -126,9 +126,9 @@ fi ...@@ -126,9 +126,9 @@ fi
# older versions of Dask are incompatible with pandas>=2.0, but not all conda packages' metadata accurately reflects that # older versions of Dask are incompatible with pandas>=2.0, but not all conda packages' metadata accurately reflects that
# #
# ref: https://github.com/microsoft/LightGBM/issues/6030 # ref: https://github.com/microsoft/LightGBM/issues/6030
CONSTRAINED_DEPENDENCIES="'dask-core>=2023.5.0' 'distributed>=2023.5.0' 'pandas>=2.0'" CONSTRAINED_DEPENDENCIES="'dask>=2023.5.0' 'distributed>=2023.5.0' 'pandas>=2.0'"
if [[ $PYTHON_VERSION == "3.7" ]]; then if [[ $PYTHON_VERSION == "3.7" ]]; then
CONSTRAINED_DEPENDENCIES="'dask-core' 'distributed' 'pandas<2.0'" CONSTRAINED_DEPENDENCIES="'dask' 'distributed' 'pandas<2.0'"
fi fi
# including python=version[build=*cpython] to ensure that conda doesn't fall back to pypy # including python=version[build=*cpython] to ensure that conda doesn't fall back to pypy
...@@ -322,7 +322,7 @@ matplotlib.use\(\"Agg\"\)\ ...@@ -322,7 +322,7 @@ matplotlib.use\(\"Agg\"\)\
# importing the library should succeed even if all optional dependencies are not present # importing the library should succeed even if all optional dependencies are not present
conda uninstall -n $CONDA_ENV --force --yes \ conda uninstall -n $CONDA_ENV --force --yes \
cffi \ cffi \
dask-core \ dask \
distributed \ distributed \
joblib \ joblib \
matplotlib \ matplotlib \
......
...@@ -81,6 +81,8 @@ fi ...@@ -81,6 +81,8 @@ fi
# Installing R precompiled for Mac OS 10.11 or higher # Installing R precompiled for Mac OS 10.11 or higher
if [[ $OS_NAME == "macos" ]]; then if [[ $OS_NAME == "macos" ]]; then
brew update-reset --auto-update
brew update --auto-update
if [[ $R_BUILD_TYPE == "cran" ]]; then if [[ $R_BUILD_TYPE == "cran" ]]; then
brew install automake || exit 1 brew install automake || exit 1
fi fi
......
...@@ -91,7 +91,11 @@ if ($env:R_MAJOR_VERSION -eq "3") { ...@@ -91,7 +91,11 @@ if ($env:R_MAJOR_VERSION -eq "3") {
$env:R_LIB_PATH = "$env:BUILD_SOURCESDIRECTORY/RLibrary" -replace '[\\]', '/' $env:R_LIB_PATH = "$env:BUILD_SOURCESDIRECTORY/RLibrary" -replace '[\\]', '/'
$env:R_LIBS = "$env:R_LIB_PATH" $env:R_LIBS = "$env:R_LIB_PATH"
$env:PATH = "$env:RTOOLS_BIN;" + "$env:RTOOLS_MINGW_BIN;" + "$env:R_LIB_PATH/R/bin/x64;"+ $env:PATH $env:PATH = "$env:RTOOLS_BIN;" + "$env:RTOOLS_MINGW_BIN;" + "$env:R_LIB_PATH/R/bin/x64;"+ $env:PATH
$env:CRAN_MIRROR = "https://cran.rstudio.com" if ([version]$env:R_VERSION -lt [version]"4.0") {
$env:CRAN_MIRROR = "https://cran-archive.r-project.org"
} else {
$env:CRAN_MIRROR = "https://cran.rstudio.com"
}
$env:MIKTEX_EXCEPTION_PATH = "$env:TEMP\miktex" $env:MIKTEX_EXCEPTION_PATH = "$env:TEMP\miktex"
# don't fail builds for long-running examples unless they're very long. # don't fail builds for long-running examples unless they're very long.
......
...@@ -275,7 +275,6 @@ jobs: ...@@ -275,7 +275,6 @@ jobs:
clang-version: clang-version:
- 16 - 16
- 17 - 17
- 18
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: rhub/debian-clang-devel container: rhub/debian-clang-devel
env: env:
...@@ -316,7 +315,7 @@ jobs: ...@@ -316,7 +315,7 @@ jobs:
all-r-package-jobs-successful: all-r-package-jobs-successful:
if: always() if: always()
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [test, test-r-sanitizers, test-r-debian-clang] needs: [test, test-r-debian-clang]
steps: steps:
- name: Note that all tests succeeded - name: Note that all tests succeeded
uses: re-actors/alls-green@v1.2.2 uses: re-actors/alls-green@v1.2.2
......
...@@ -164,7 +164,17 @@ try: ...@@ -164,7 +164,17 @@ try:
from dask.distributed import Client, Future, default_client, wait from dask.distributed import Client, Future, default_client, wait
DASK_INSTALLED = True DASK_INSTALLED = True
except ImportError: # catching 'ValueError' here because of this:
# https://github.com/microsoft/LightGBM/issues/6365#issuecomment-2002330003
#
# That's potentially risky as dask does some significant import-time processing,
# like loading configuration from environment variables and files, and catching
# ValueError here might hide issues with that config-loading.
#
# But in exchange, it's less likely that 'import lightgbm' will fail for
# dask-related reasons, which is beneficial for any workloads that are using
# lightgbm but not its Dask functionality.
except (ImportError, ValueError):
DASK_INSTALLED = False DASK_INSTALLED = False
dask_array_from_delayed = None # type: ignore[assignment] dask_array_from_delayed = None # type: ignore[assignment]
......
...@@ -213,13 +213,17 @@ def _create_data(objective, n_samples=1_000, output="array", chunk_size=500, **k ...@@ -213,13 +213,17 @@ def _create_data(objective, n_samples=1_000, output="array", chunk_size=500, **k
def _r2_score(dy_true, dy_pred): def _r2_score(dy_true, dy_pred):
numerator = ((dy_true - dy_pred) ** 2).sum(axis=0, dtype=np.float64) y_true = dy_true.compute()
denominator = ((dy_true - dy_true.mean(axis=0)) ** 2).sum(axis=0, dtype=np.float64) y_pred = dy_pred.compute()
return (1 - numerator / denominator).compute() numerator = ((y_true - y_pred) ** 2).sum(axis=0)
denominator = ((y_true - y_true.mean(axis=0)) ** 2).sum(axis=0)
return 1 - numerator / denominator
def _accuracy_score(dy_true, dy_pred): def _accuracy_score(dy_true, dy_pred):
return da.average(dy_true == dy_pred).compute() y_true = dy_true.compute()
y_pred = dy_pred.compute()
return (y_true == y_pred).mean()
def _constant_metric(y_true, y_pred): def _constant_metric(y_true, y_pred):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment