diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5971444b..f807b91d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -28,7 +28,7 @@ concurrency: jobs: cpp-build: secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.12 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -37,7 +37,7 @@ jobs: upload-conda: needs: [cpp-build] secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/conda-upload-packages.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/conda-upload-packages.yaml@branch-23.12 with: build_type: ${{ inputs.build_type || 'branch' }} branch: ${{ inputs.branch }} @@ -46,12 +46,12 @@ jobs: docs-build: if: github.ref_type == 'branch' secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@branch-23.12 with: arch: "amd64" branch: ${{ inputs.branch }} build_type: ${{ inputs.build_type || 'branch' }} - container_image: "rapidsai/ci:latest" + container_image: "rapidsai/ci-conda:latest" date: ${{ inputs.date }} node_type: "cpu4" run_script: "ci/build_docs.sh" diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index d4979eb4..8105141c 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -17,29 +17,29 @@ jobs: - conda-cpp-tests - docs-build secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/pr-builder.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/pr-builder.yaml@branch-23.12 checks: secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/checks.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/checks.yaml@branch-23.12 conda-cpp-build: needs: checks secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.12 with: build_type: pull-request conda-cpp-tests: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.12 with: build_type: pull-request docs-build: needs: conda-cpp-build secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@branch-23.12 with: build_type: pull-request node_type: "cpu4" arch: "amd64" - container_image: "rapidsai/ci:latest" + container_image: "rapidsai/ci-conda:latest" run_script: "ci/build_docs.sh" diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 38b565a4..6c02a92f 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -16,7 +16,7 @@ on: jobs: cpp-tests: secrets: inherit - uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.10 + uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.12 with: build_type: nightly branch: ${{ inputs.branch }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 96462e88..8369d5dc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -16,7 +16,7 @@ repos: ) - id: check-json - repo: https://github.com/pre-commit/mirrors-clang-format - rev: v16.0.1 + rev: v16.0.6 hooks: - id: clang-format types_or: [c, c++, cuda] diff --git a/RAPIDS.cmake b/RAPIDS.cmake index be1ff22b..362378e9 100644 --- a/RAPIDS.cmake +++ b/RAPIDS.cmake @@ -20,7 +20,7 @@ # Allow users to control which version is used if(NOT rapids-cmake-version) # Define a default version if the user doesn't set one - set(rapids-cmake-version 23.10) + set(rapids-cmake-version 23.12) endif() # Allow users to control which GitHub repo is fetched diff --git a/ci/build_docs.sh b/ci/build_docs.sh index 892adbfb..531f7e72 100755 --- a/ci/build_docs.sh +++ b/ci/build_docs.sh @@ -16,7 +16,7 @@ conda activate docs rapids-print-env -export RAPIDS_VERSION_NUMBER="23.10" +export RAPIDS_VERSION_NUMBER="23.12" export RAPIDS_DOCS_DIR="$(mktemp -d)" rapids-logger "Build Sphinx docs" diff --git a/docs/api.rst b/docs/api.rst index 6612f609..a2779df6 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -33,6 +33,7 @@ tracking of these dependencies for correct export support. /command/rapids_cpm_init /command/rapids_cpm_find + /command/rapids_cpm_package_override CPM Pre-Configured Packages *************************** @@ -57,7 +58,6 @@ package uses :ref:`can be found here. ` /packages/rapids_cpm_rmm /packages/rapids_cpm_spdlog /packages/rapids_cpm_thrust - /command/rapids_cpm_package_override .. _`cython`: diff --git a/docs/basics.rst b/docs/basics.rst index 8cd89afd..7927c17b 100644 --- a/docs/basics.rst +++ b/docs/basics.rst @@ -13,7 +13,7 @@ Content `_ into yo cmake_minimum_required(...) if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/_RAPIDS.cmake) - file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.10/RAPIDS.cmake + file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.12/RAPIDS.cmake ${CMAKE_CURRENT_BINARY_DIR}/_RAPIDS.cmake) endif() include(${CMAKE_CURRENT_BINARY_DIR}/_RAPIDS.cmake) @@ -58,7 +58,7 @@ like this: GIT_REPOSITORY https://github.com//rapids-cmake.git GIT_TAG ) - file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.10/RAPIDS.cmake + file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.12/RAPIDS.cmake ${CMAKE_CURRENT_BINARY_DIR}/RAPIDS.cmake) include(${CMAKE_CURRENT_BINARY_DIR}/RAPIDS.cmake) diff --git a/docs/conf.py b/docs/conf.py index fc0db2d0..c02b749c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -25,9 +25,9 @@ # built documents. # # The short X.Y version. -version = "23.10" +version = "23.12" # The full version, including alpha/beta/rc tags. -release = "23.10.00" +release = "23.12.00" # -- General configuration --------------------------------------------------- diff --git a/rapids-cmake/cpm/detail/download.cmake b/rapids-cmake/cpm/detail/download.cmake index a1ca4119..1f67704d 100644 --- a/rapids-cmake/cpm/detail/download.cmake +++ b/rapids-cmake/cpm/detail/download.cmake @@ -42,8 +42,8 @@ function(rapids_cpm_download) list(APPEND CMAKE_MESSAGE_CONTEXT "rapids.cpm.download") # When changing version verify no new variables needs to be propagated - set(CPM_DOWNLOAD_VERSION 0.35.6) - set(CPM_DOWNLOAD_MD5_HASH c15cd4b7f511bc625c92ee6580821726) + set(CPM_DOWNLOAD_VERSION 0.38.5) + set(CPM_DOWNLOAD_MD5_HASH c98d14a13dfd1952e115979c095f6794) if(CPM_SOURCE_CACHE) # Expand relative path. This is important if the provided path contains a tilde (~) diff --git a/rapids-cmake/cpm/package_override.cmake b/rapids-cmake/cpm/package_override.cmake index a70dd728..2cf87ec5 100644 --- a/rapids-cmake/cpm/package_override.cmake +++ b/rapids-cmake/cpm/package_override.cmake @@ -49,12 +49,18 @@ projects. .. note:: + .. versionadded:: v23.10.00 + + When the variable `CPM__SOURCE` exists, any override entries + for `package_name` will be ignored. + + +.. note:: If the override file doesn't specify a value or package entry the default version will be used. Must be called before any invocation of :cmake:command:`rapids_cpm_find`. - #]=======================================================================] function(rapids_cpm_package_override filepath) list(APPEND CMAKE_MESSAGE_CONTEXT "rapids.cpm.rapids_cpm_package_override") @@ -74,10 +80,10 @@ function(rapids_cpm_package_override filepath) # cmake-lint: disable=E1120 foreach(index RANGE ${package_count}) string(JSON package_name MEMBER "${json_data}" packages ${index}) - string(JSON data GET "${json_data}" packages "${package_name}") get_property(override_exists GLOBAL PROPERTY rapids_cpm_${package_name}_override_json DEFINED) - if(NOT override_exists) + if(NOT (override_exists OR DEFINED CPM_${package_name}_SOURCE)) # only add the first override for a project we encounter + string(JSON data GET "${json_data}" packages "${package_name}") set_property(GLOBAL PROPERTY rapids_cpm_${package_name}_override_json "${data}") set_property(GLOBAL PROPERTY rapids_cpm_${package_name}_override_json_file "${filepath}") endif() diff --git a/rapids-cmake/rapids-version.cmake b/rapids-cmake/rapids-version.cmake index 6d114d83..94024b14 100644 --- a/rapids-cmake/rapids-version.cmake +++ b/rapids-cmake/rapids-version.cmake @@ -17,5 +17,5 @@ # that breaks its usage by cpm/detail/package_details if(NOT DEFINED rapids-cmake-version) - set(rapids-cmake-version 23.10) + set(rapids-cmake-version 23.12) endif() diff --git a/testing/cpm/CMakeLists.txt b/testing/cpm/CMakeLists.txt index b8e66ac1..c570d5c1 100644 --- a/testing/cpm/CMakeLists.txt +++ b/testing/cpm/CMakeLists.txt @@ -34,6 +34,7 @@ add_cmake_config_test( cpm_package_override-bad-path.cmake SHOULD_FAIL "rapids_c add_cmake_config_test( cpm_package_override-before-init.cmake ) add_cmake_config_test( cpm_package_override-empty.cmake ) add_cmake_config_test( cpm_package_override-multiple.cmake ) +add_cmake_config_test( cpm_package_override-obey-cpm-source-var.cmake ) add_cmake_config_test( cpm_package_override-patches.cmake ) add_cmake_config_test( cpm_package_override-simple.cmake ) diff --git a/testing/cpm/cpm_package_override-obey-cpm-source-var.cmake b/testing/cpm/cpm_package_override-obey-cpm-source-var.cmake new file mode 100644 index 00000000..ab10e855 --- /dev/null +++ b/testing/cpm/cpm_package_override-obey-cpm-source-var.cmake @@ -0,0 +1,64 @@ +#============================================================================= +# Copyright (c) 2021-2023, NVIDIA CORPORATION. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============================================================================= +include(${rapids-cmake-dir}/cpm/init.cmake) +include(${rapids-cmake-dir}/cpm/package_override.cmake) + +rapids_cpm_init() + +# Need to write out an override file +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/override.json + [=[ +{ + "packages" : { + "rmm" : { + "git_url" : "new_rmm_url", + "git_shallow" : "OFF", + "exclude_from_all" : "ON" + }, + "not_in_base" : { + "git_url" : "new_rmm_url", + "git_shallow" : "OFF", + "exclude_from_all" : "ON" + } + } +} + ]=]) + +set(CPM_rmm_SOURCE "${CMAKE_CURRENT_BINARY_DIR}") +set(CPM_not_in_base_SOURCE "${CMAKE_CURRENT_BINARY_DIR}") +rapids_cpm_package_override(${CMAKE_CURRENT_BINARY_DIR}/override.json) + +# Verify that the override doesn't exist due to `CPM_rmm_SOURCE` +include("${rapids-cmake-dir}/cpm/detail/package_details.cmake") + +rapids_cpm_package_details(rmm version repository tag shallow exclude) +if(repository MATCHES "new_rmm_url") + message(FATAL_ERROR "custom url field should not be set, due to CPM_rmm_SOURCE") +endif() +if(shallow MATCHES "OFF") + message(FATAL_ERROR "shallow field should not be set, due to CPM_rmm_SOURCE") +endif() +if(CPM_DOWNLOAD_ALL) + message(FATAL_ERROR "CPM_DOWNLOAD_ALL should not be set, due to CPM_rmm_SOURCE") +endif() + +unset(version) +unset(repository) +unset(tag) +rapids_cpm_package_details(not_in_base version repository tag shallow exclude) +if(version OR repository OR tag) + message(FATAL_ERROR "rapids_cpm_package_details should not return anything for package that doesn't exist") +endif()