diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000000..1a8098071ba3 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,35 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "maven" + directory: "/jvm-packages" + schedule: + interval: "monthly" + - package-ecosystem: "maven" + directory: "/jvm-packages/xgboost4j" + schedule: + interval: "monthly" + - package-ecosystem: "maven" + directory: "/jvm-packages/xgboost4j-gpu" + schedule: + interval: "monthly" + - package-ecosystem: "maven" + directory: "/jvm-packages/xgboost4j-example" + schedule: + interval: "monthly" + - package-ecosystem: "maven" + directory: "/jvm-packages/xgboost4j-spark" + schedule: + interval: "monthly" + - package-ecosystem: "maven" + directory: "/jvm-packages/xgboost4j-spark-gpu" + schedule: + interval: "monthly" + - package-ecosystem: "github-actions" + directory: / + schedule: + interval: "monthly" diff --git a/.github/lock.yml b/.github/lock.yml new file mode 100644 index 000000000000..f916abe5a367 --- /dev/null +++ b/.github/lock.yml @@ -0,0 +1,32 @@ +# Configuration for lock-threads - https://github.com/dessant/lock-threads + +# Number of days of inactivity before a closed issue or pull request is locked +daysUntilLock: 90 + +# Issues and pull requests with these labels will not be locked. Set to `[]` to disable +exemptLabels: + - feature-request + +# Label to add before locking, such as `outdated`. Set to `false` to disable +lockLabel: false + +# Comment to post before locking. Set to `false` to disable +lockComment: false + +# Assign `resolved` as the reason for locking. Set to `false` to disable +setLockReason: true + +# Limit to only `issues` or `pulls` +# only: issues + +# Optionally, specify configuration settings just for `issues` or `pulls` +# issues: +# exemptLabels: +# - help-wanted +# lockLabel: outdated + +# pulls: +# daysUntilLock: 30 + +# Repository to extend settings from +# _extends: repo diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml new file mode 100644 index 000000000000..d3208a1294d1 --- /dev/null +++ b/.github/workflows/freebsd.yml @@ -0,0 +1,34 @@ +name: FreeBSD + +on: [push, pull_request] + +permissions: + contents: read # to fetch code (actions/checkout) + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 20 + name: A job to run test in FreeBSD + steps: + - uses: actions/checkout@v4 + with: + submodules: 'true' + - name: Test in FreeBSD + id: test + uses: vmactions/freebsd-vm@v1 + with: + usesh: true + prepare: | + pkg install -y cmake git ninja googletest + + run: | + mkdir build + cd build + cmake .. -GNinja -DGOOGLE_TEST=ON + ninja -v + ./testxgboost diff --git a/.github/workflows/r_nold.yml b/.github/workflows/r_nold.yml new file mode 100644 index 000000000000..4b506927e06c --- /dev/null +++ b/.github/workflows/r_nold.yml @@ -0,0 +1,44 @@ +# Run expensive R tests with the help of rhub. Only triggered by a pull request review +# See discussion at https://github.com/dmlc/xgboost/pull/6378 + +name: XGBoost-R-noLD + +on: + pull_request_review_comment: + types: [created] + +permissions: + contents: read # to fetch code (actions/checkout) + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + test-R-noLD: + if: github.event.comment.body == '/gha run r-nold-test' && contains('OWNER,MEMBER,COLLABORATOR', github.event.comment.author_association) + timeout-minutes: 120 + runs-on: ubuntu-latest + container: + image: rhub/debian-gcc-devel-nold + steps: + - name: Install git and system packages + shell: bash + run: | + apt update && apt install libcurl4-openssl-dev libssl-dev libssh2-1-dev libgit2-dev libglpk-dev libxml2-dev libharfbuzz-dev libfribidi-dev git -y + + - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + with: + submodules: 'true' + + - name: Install dependencies + shell: bash -l {0} + run: | + /tmp/R-devel/bin/Rscript -e "source('./R-package/tests/helper_scripts/install_deps.R')" + + - name: Run R tests + shell: bash + run: | + cd R-package && \ + /tmp/R-devel/bin/R CMD INSTALL . && \ + /tmp/R-devel/bin/R -q -e "library(testthat); setwd('tests'); source('testthat.R')" diff --git a/.github/workflows/sycl_tests.yml b/.github/workflows/sycl_tests.yml index 54ebcb5f9532..b317050fc652 100644 --- a/.github/workflows/sycl_tests.yml +++ b/.github/workflows/sycl_tests.yml @@ -5,6 +5,10 @@ on: [push, pull_request] permissions: contents: read # to fetch code (actions/checkout) +defaults: + run: + shell: bash -l {0} + concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true @@ -37,20 +41,16 @@ jobs: conda info conda list - name: Build and install XGBoost - shell: bash -l {0} run: | mkdir build cd build - cmake .. -DGOOGLE_TEST=ON -DUSE_DMLC_GTEST=ON -DPLUGIN_SYCL=ON -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX - make -j$(nproc) - - name: Run gtest binary for SYCL - run: | - cd build - ./testxgboost --gtest_filter=Sycl* - - name: Run gtest binary for non SYCL + cmake .. -DGOOGLE_TEST=ON -DUSE_DMLC_GTEST=ON -DPLUGIN_SYCL=ON -DCMAKE_CXX_COMPILER=g++ \ + -DCMAKE_C_COMPILER=gcc -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -GNinja + ninja + - name: Run gtest run: | cd build - ./testxgboost --gtest_filter=-Sycl* + ./testxgboost python-sycl-tests-on-ubuntu: name: Test XGBoost Python package with SYCL on ${{ matrix.os }} @@ -82,8 +82,9 @@ jobs: run: | mkdir build cd build - cmake .. -DPLUGIN_SYCL=ON -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DCMAKE_PREFIX_PATH=$CONDA_PREFIX - make -j$(nproc) + cmake .. -DPLUGIN_SYCL=ON -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc \ + -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -GNinja + ninja - name: Install Python package run: | cd python-package diff --git a/ops/conda_env/linux_sycl_test.yml b/ops/conda_env/linux_sycl_test.yml index 5b3a15f7e3b1..f1ce49492d42 100644 --- a/ops/conda_env/linux_sycl_test.yml +++ b/ops/conda_env/linux_sycl_test.yml @@ -18,6 +18,7 @@ dependencies: - pytest-timeout - pytest-cov - dask +- ninja - dpcpp_linux-64 - onedpl-devel - intel-openmp diff --git a/ops/docker/dockerfile/Dockerfile.gpu_build_rockylinux8 b/ops/docker/dockerfile/Dockerfile.gpu_build_rockylinux8 index d021190b6744..ae79e88b15b3 100644 --- a/ops/docker/dockerfile/Dockerfile.gpu_build_rockylinux8 +++ b/ops/docker/dockerfile/Dockerfile.gpu_build_rockylinux8 @@ -76,7 +76,7 @@ RUN set -ex; \ # Default entry-point to use if running locally # It will preserve attributes of created files -COPY entrypoint.sh /scripts/ +COPY docker/entrypoint.sh /scripts/ WORKDIR /workspace ENTRYPOINT ["/scripts/entrypoint.sh"] diff --git a/ops/pipeline/build-jvm-doc-impl.sh b/ops/pipeline/build-jvm-doc-impl.sh index c334b8ad91d1..4e95f284e25c 100755 --- a/ops/pipeline/build-jvm-doc-impl.sh +++ b/ops/pipeline/build-jvm-doc-impl.sh @@ -27,7 +27,7 @@ mvn --no-transfer-progress javadoc:javadoc -Pdocs # Package JVM docs in a tarball mkdir -p tmp/scaladocs -cp -rv xgboost4j/target/site/apidocs/ ./tmp/javadocs/ +cp -rv xgboost4j/target/reports/apidocs/ ./tmp/javadocs/ cp -rv xgboost4j/target/site/scaladocs/ ./tmp/scaladocs/xgboost4j/ cp -rv xgboost4j-spark/target/site/scaladocs/ ./tmp/scaladocs/xgboost4j-spark/ cp -rv xgboost4j-spark-gpu/target/site/scaladocs/ ./tmp/scaladocs/xgboost4j-spark-gpu/