Skip to content

Commit

Permalink
Merge pull request #466 from rapidsai/branch-23.10
Browse files Browse the repository at this point in the history
[RELEASE] rapids-cmake v23.10
raydouglass authored Oct 11, 2023
2 parents 1403422 + f0d9bb2 commit 4026fda
Showing 24 changed files with 174 additions and 37 deletions.
4 changes: 4 additions & 0 deletions .github/copy-pr-bot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Configuration file for `copy-pr-bot` GitHub App
# https://docs.gha-runners.nvidia.com/apps/copy-pr-bot/

enabled: true
1 change: 0 additions & 1 deletion .github/ops-bot.yaml
Original file line number Diff line number Diff line change
@@ -5,5 +5,4 @@ auto_merger: true
branch_checker: true
label_checker: true
release_drafter: true
copy_prs: true
external_contributors: false
8 changes: 4 additions & 4 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -28,7 +28,7 @@ concurrency:
jobs:
cpp-build:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.10
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.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-upload-packages.yaml@branch-23.10
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.08
uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@branch-23.10
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"
12 changes: 6 additions & 6 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
@@ -17,29 +17,29 @@ jobs:
- conda-cpp-tests
- docs-build
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/pr-builder.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/pr-builder.yaml@branch-23.10
checks:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/checks.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/checks.yaml@branch-23.10
conda-cpp-build:
needs: checks
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-build.yaml@branch-23.10
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.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.10
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.08
uses: rapidsai/shared-action-workflows/.github/workflows/custom-job.yaml@branch-23.10
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"
2 changes: 1 addition & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ on:
jobs:
cpp-tests:
secrets: inherit
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.08
uses: rapidsai/shared-action-workflows/.github/workflows/conda-cpp-tests.yaml@branch-23.10
with:
build_type: nightly
branch: ${{ inputs.branch }}
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -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]
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
# rapids-cmake 23.10.00 (11 Oct 2023)

## 🐛 Bug Fixes

- Quote the list of patch files in case they have spaces in their paths ([#463](https://github.com/rapidsai/rapids-cmake/pull/463)) [@ericniebler](https://github.com/ericniebler)
- cpm overrides don't occur when `CPM_<pkg>_SOURCE` exists ([#458](https://github.com/rapidsai/rapids-cmake/pull/458)) [@robertmaynard](https://github.com/robertmaynard)
- Use `conda mambabuild` not `mamba mambabuild` ([#457](https://github.com/rapidsai/rapids-cmake/pull/457)) [@bdice](https://github.com/bdice)
- Support fmt use in debug builds ([#456](https://github.com/rapidsai/rapids-cmake/pull/456)) [@robertmaynard](https://github.com/robertmaynard)

## 📖 Documentation

- Move rapids_cpm_package_override to CPM section of docs ([#462](https://github.com/rapidsai/rapids-cmake/pull/462)) [@robertmaynard](https://github.com/robertmaynard)
- Improve docs around fetch content and rapids-cmake overrides ([#444](https://github.com/rapidsai/rapids-cmake/pull/444)) [@robertmaynard](https://github.com/robertmaynard)

## 🚀 New Features

- Bump cuco version ([#452](https://github.com/rapidsai/rapids-cmake/pull/452)) [@PointKernel](https://github.com/PointKernel)

## 🛠️ Improvements

- Update image names ([#461](https://github.com/rapidsai/rapids-cmake/pull/461)) [@AyodeAwe](https://github.com/AyodeAwe)
- Update to CPM v0.38.5 ([#460](https://github.com/rapidsai/rapids-cmake/pull/460)) [@trxcllnt](https://github.com/trxcllnt)
- Update to clang 16.0.6. ([#459](https://github.com/rapidsai/rapids-cmake/pull/459)) [@bdice](https://github.com/bdice)
- Use `copy-pr-bot` ([#455](https://github.com/rapidsai/rapids-cmake/pull/455)) [@ajschmidt8](https://github.com/ajschmidt8)

# rapids-cmake 23.08.00 (9 Aug 2023)

## 🐛 Bug Fixes
2 changes: 1 addition & 1 deletion RAPIDS.cmake
Original file line number Diff line number Diff line change
@@ -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.08)
set(rapids-cmake-version 23.10)
endif()

# Allow users to control which GitHub repo is fetched
2 changes: 1 addition & 1 deletion ci/build_cpp.sh
Original file line number Diff line number Diff line change
@@ -11,6 +11,6 @@ rapids-print-env

rapids-logger "Begin cpp build"

rapids-mamba-retry mambabuild conda/recipes/rapids_core_dependencies
rapids-conda-retry mambabuild conda/recipes/rapids_core_dependencies

rapids-upload-conda-to-s3 cpp
2 changes: 1 addition & 1 deletion ci/build_docs.sh
Original file line number Diff line number Diff line change
@@ -16,7 +16,7 @@ conda activate docs

rapids-print-env

export RAPIDS_VERSION_NUMBER="23.08"
export RAPIDS_VERSION_NUMBER="23.10"
export RAPIDS_DOCS_DIR="$(mktemp -d)"

rapids-logger "Build Sphinx docs"
5 changes: 4 additions & 1 deletion dependencies.yaml
Original file line number Diff line number Diff line change
@@ -132,7 +132,7 @@ dependencies:
packages:
- pip
- pip:
- sphinxcontrib-moderncmakedomain
- sphinxcontrib-moderncmakedomain
- sphinx
- sphinx-copybutton
- sphinx_rtd_theme
@@ -145,6 +145,9 @@ dependencies:
- scikit-build>=0.13.1
- libpng
- zlib
- output_types: [conda]
packages:
- fmt==9.1.0
style_checks:
common:
- output_types: [conda, requirements]
2 changes: 1 addition & 1 deletion docs/api.rst
Original file line number Diff line number Diff line change
@@ -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. <cpm_versions>`
/packages/rapids_cpm_rmm
/packages/rapids_cpm_spdlog
/packages/rapids_cpm_thrust
/command/rapids_cpm_package_override

.. _`cython`:

4 changes: 2 additions & 2 deletions docs/basics.rst
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ Content <https://cmake.org/cmake/help/latest/module/FetchContent.html>`_ into yo
cmake_minimum_required(...)
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/<PROJ>_RAPIDS.cmake)
file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.08/RAPIDS.cmake
file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.10/RAPIDS.cmake
${CMAKE_CURRENT_BINARY_DIR}/<PROJ>_RAPIDS.cmake)
endif()
include(${CMAKE_CURRENT_BINARY_DIR}/<PROJ>_RAPIDS.cmake)
@@ -58,7 +58,7 @@ like this:
GIT_REPOSITORY https://github.com/<my_fork>/rapids-cmake.git
GIT_TAG <my_feature_branch>
)
file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.08/RAPIDS.cmake
file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-23.10/RAPIDS.cmake
${CMAKE_CURRENT_BINARY_DIR}/RAPIDS.cmake)
include(${CMAKE_CURRENT_BINARY_DIR}/RAPIDS.cmake)
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -25,9 +25,9 @@
# built documents.
#
# The short X.Y version.
version = "23.08"
version = "23.10"
# The full version, including alpha/beta/rc tags.
release = "23.08.00"
release = "23.10.00"


# -- General configuration ---------------------------------------------------
4 changes: 2 additions & 2 deletions rapids-cmake/cpm/detail/download.cmake
Original file line number Diff line number Diff line change
@@ -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 (~)
9 changes: 9 additions & 0 deletions rapids-cmake/cpm/find.cmake
Original file line number Diff line number Diff line change
@@ -128,7 +128,16 @@ Example on how to use :cmake:command:`rapids_cpm_find` to include common project
"BENCHMARK_ENABLE_INSTALL OFF"
)
Overriding
^^^^^^^^^^
The :cmake:command:`rapids_cpm_package_override` command provides a way
for projects to override the default values for any :cmake:command:`rapids_cpm_find`, `rapids_cpm_* <../api.html#cpm-pre-configured-packages>`__,
`CPM <https://github.com/cpm-cmake/CPM.cmake>`_, and :cmake:module:`FetchContent() <cmake:module:FetchContent>` package.
By default when an override for a project is provided no local search
for that project will occur. This is done to make sure that the requested
modified version is used.
#]=======================================================================]
# cmake-lint: disable=R0912,R0915
21 changes: 14 additions & 7 deletions rapids-cmake/cpm/package_override.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#=============================================================================
# Copyright (c) 2021, NVIDIA CORPORATION.
# 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.
@@ -21,14 +21,15 @@ rapids_cpm_package_override
.. versionadded:: v21.10.00
Override `CPM` preset package information for the project.
Overrides the :cmake:command:`rapids_cpm_find`, `rapids_cpm_* <../api.html#cpm-pre-configured-packages>`__,
`CPM <https://github.com/cpm-cmake/CPM.cmake>`_, and :cmake:module:`FetchContent() <cmake:module:FetchContent>` package information for the project.
.. code-block:: cmake
rapids_cpm_package_override(<json_file_path>)
Allows projects to override the default values for any rapids-cmake
pre-configured cpm package.
Allows projects to override the default values for any :cmake:command:`rapids_cpm_find`,
`rapids_cpm_* <../api.html#cpm-pre-configured-packages>`__, `CPM <https://github.com/cpm-cmake/CPM.cmake>`_, and :cmake:module:`FetchContent() <cmake:module:FetchContent>` package.
The user provided json file must follow the `versions.json` format,
which is :ref:`documented here<cpm_version_format>` and shown in the below
@@ -48,12 +49,18 @@ projects.
.. note::
.. versionadded:: v23.10.00
When the variable `CPM_<package_name>_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")
@@ -73,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()
2 changes: 1 addition & 1 deletion rapids-cmake/cpm/patches/command_template.cmake.in
Original file line number Diff line number Diff line change
@@ -68,7 +68,7 @@ function(rapids_cpm_run_git_patch file issue)
set(msg_state ${msg_state} PARENT_SCOPE)
endfunction()

set(files @patch_files_to_run@)
set(files "@patch_files_to_run@")
set(issues "@patch_issues_to_ref@")
set(output_file "@log_file@")
foreach(file issue IN ZIP_LISTS files issues)
13 changes: 13 additions & 0 deletions rapids-cmake/cpm/patches/fmt/no_debug_warnings.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/include/fmt/core.h b/include/fmt/core.h
index f6a37af..ffabe63 100644
--- a/include/fmt/core.h
+++ b/include/fmt/core.h
@@ -286,7 +286,7 @@

// Enable minimal optimizations for more compact code in debug mode.
FMT_GCC_PRAGMA("GCC push_options")
-#if !defined(__OPTIMIZE__) && !defined(__NVCOMPILER)
+#if !defined(__OPTIMIZE__) && !defined(__NVCOMPILER) && !defined(__LCC__) && !defined(__CUDACC__)
FMT_GCC_PRAGMA("GCC optimize(\"Og\")")
#endif

11 changes: 9 additions & 2 deletions rapids-cmake/cpm/versions.json
Original file line number Diff line number Diff line change
@@ -10,12 +10,19 @@
"version" : "0.0.1",
"git_shallow" : false,
"git_url" : "https://github.com/NVIDIA/cuCollections.git",
"git_tag" : "303f134573afa315cf14fca3f7a0b730438497c3"
"git_tag" : "5186b39522e13a3681c0eb591db4eaacbf969485"
},
"fmt" : {
"version" : "9.1.0",
"git_url" : "https://github.com/fmtlib/fmt.git",
"git_tag" : "${version}"
"git_tag" : "${version}",
"patches" : [
{
"file" : "fmt/no_debug_warnings.diff",
"issue" : "No warnings during debug builds [https://github.com/fmtlib/fmt/issues/3351]",
"fixed_in" : "10.0"
}
]
},
"GTest" : {
"version" : "1.13.0",
2 changes: 1 addition & 1 deletion rapids-cmake/rapids-version.cmake
Original file line number Diff line number Diff line change
@@ -17,5 +17,5 @@
# that breaks its usage by cpm/detail/package_details

if(NOT DEFINED rapids-cmake-version)
set(rapids-cmake-version 23.08)
set(rapids-cmake-version 23.10)
endif()
1 change: 1 addition & 0 deletions testing/cpm/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -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 )

9 changes: 7 additions & 2 deletions testing/cpm/cpm_generate_patch_command-current_json_dir.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#=============================================================================
# Copyright (c) 2022, NVIDIA CORPORATION.
# Copyright (c) 2022-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.
@@ -38,6 +38,11 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/override.json
"file" : "${current_json_dir}/example.diff",
"issue" : "explain",
"fixed_in" : ""
},
{
"file" : "${current_json_dir}/example2.diff",
"issue" : "explain",
"fixed_in" : ""
}
]
}
@@ -51,7 +56,7 @@ if(NOT patch_command)
message(FATAL_ERROR "rapids_cpm_package_override specified a patch step for `pkg_with_patch`")
endif()

set(to_match_string "set(files ${CMAKE_CURRENT_BINARY_DIR}/example.diff)")
set(to_match_string "set(files \"${CMAKE_CURRENT_BINARY_DIR}/example.diff;${CMAKE_CURRENT_BINARY_DIR}/example2.diff\")")

list(POP_BACK patch_command script_to_run)
file(READ "${script_to_run}" contents)
64 changes: 64 additions & 0 deletions testing/cpm/cpm_package_override-obey-cpm-source-var.cmake
Original file line number Diff line number Diff line change
@@ -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()

0 comments on commit 4026fda

Please sign in to comment.