Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,23 +45,27 @@ concurrency:
permissions: {}

jobs:
build-details:
uses: rapidsai/shared-workflows/.github/workflows/compute-build-details.yaml@main
cpp-build:
permissions:
actions: read
contents: read
id-token: write
packages: read
pull-requests: read
needs: [build-details]
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
script: ci/build_cpp.sh
python-build:
needs: [cpp-build]
needs: [build-details, cpp-build]
permissions:
actions: read
contents: read
Expand All @@ -72,6 +76,7 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
sha: ${{ inputs.sha }}
Expand Down Expand Up @@ -100,10 +105,12 @@ jobs:
id-token: write
packages: read
pull-requests: read
needs: [build-details]
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
Expand Down Expand Up @@ -132,7 +139,7 @@ jobs:
package-type: cpp
publish-wheel-search-key: cuopt_wheel_cpp_libcuopt
wheel-build-cuopt:
needs: [wheel-build-libcuopt]
needs: [build-details, wheel-build-libcuopt]
permissions:
actions: read
contents: read
Expand All @@ -143,6 +150,7 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
Expand Down Expand Up @@ -176,10 +184,12 @@ jobs:
id-token: write
packages: read
pull-requests: read
needs: [build-details]
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
Expand Down Expand Up @@ -237,10 +247,12 @@ jobs:
id-token: write
packages: read
pull-requests: read
needs: [build-details]
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
Expand Down
21 changes: 15 additions & 6 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ permissions: {}
jobs:
pr-builder:
needs:
- build-details
- compute-matrix-filters
- changed-files
- checks
Expand All @@ -40,6 +41,8 @@ jobs:
if: always()
with:
needs: ${{ toJSON(needs) }}
build-details:
uses: rapidsai/shared-workflows/.github/workflows/compute-build-details.yaml@main
compute-matrix-filters:
permissions:
contents: read
Expand Down Expand Up @@ -339,7 +342,7 @@ jobs:
with:
enable_check_generated_files: false
conda-cpp-build:
needs: [checks, compute-matrix-filters, changed-files]
needs: [build-details, checks, compute-matrix-filters, changed-files]
# Consumed by conda-cpp-tests, conda-python-build, and (transitively) docs-build.
if: >-
fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp ||
Expand All @@ -355,6 +358,7 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_cpp.sh
conda-cpp-tests:
needs: [conda-cpp-build, changed-files]
Expand Down Expand Up @@ -391,7 +395,7 @@ jobs:
# Non-blocking while the multi-GPU test suite is maturing.
continue-on-error: true
conda-python-build:
needs: [conda-cpp-build, changed-files]
needs: [build-details, conda-cpp-build, changed-files]
# Consumed by conda-python-tests and docs-build.
if: >-
fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_conda ||
Expand All @@ -406,6 +410,7 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_python.sh
conda-python-tests:
needs: [conda-python-build, changed-files]
Expand Down Expand Up @@ -441,7 +446,7 @@ jobs:
container_image: "rapidsai/ci-conda:26.10-latest"
script: "ci/build_docs.sh"
wheel-build-libcuopt:
needs: [compute-matrix-filters, changed-files]
needs: [build-details, compute-matrix-filters, changed-files]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
permissions:
actions: read
Expand All @@ -457,9 +462,10 @@ jobs:
package-type: cpp
package-name: libcuopt
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_wheel_libcuopt.sh
wheel-build-cuopt:
needs: [wheel-build-libcuopt, compute-matrix-filters, changed-files]
needs: [build-details, wheel-build-libcuopt, compute-matrix-filters, changed-files]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
permissions:
actions: read
Expand All @@ -471,6 +477,7 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_wheel_cuopt.sh
package-name: cuopt
package-type: python
Expand All @@ -495,7 +502,7 @@ jobs:
script-env-secret-3-key: CUOPT_AWS_SECRET_ACCESS_KEY
script-env-secret-3-value: ${{ secrets.CUOPT_AWS_SECRET_ACCESS_KEY }}
wheel-build-cuopt-server:
needs: [checks, compute-matrix-filters, changed-files]
needs: [build-details, checks, compute-matrix-filters, changed-files]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
permissions:
actions: read
Expand All @@ -507,14 +514,15 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_wheel_cuopt_server.sh
package-name: cuopt_server
package-type: python
pure-wheel: true
# Only need 1 package per CUDA major version. This selects "ARCH=amd64 + the latest supported Python, 1 job per major CUDA version".
matrix_filter: ${{ needs.compute-matrix-filters.outputs.cuopt_server_filter }}
wheel-build-cuopt-sh-client:
needs: [compute-matrix-filters, changed-files]
needs: [build-details, compute-matrix-filters, changed-files]
if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_python_wheels
permissions:
actions: read
Expand All @@ -526,6 +534,7 @@ jobs:
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
script: ci/build_wheel_cuopt_sh_client.sh
package-name: cuopt_sh_client
package-type: python
Expand Down
2 changes: 1 addition & 1 deletion ci/build_cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -euo pipefail

source rapids-configure-sccache

source rapids-date-string
source rapids-datetime-string

export CMAKE_GENERATOR=Ninja

Expand Down
2 changes: 1 addition & 1 deletion ci/build_python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ set -euo pipefail

source rapids-configure-sccache

source rapids-date-string
source rapids-datetime-string

export CMAKE_GENERATOR=Ninja

Expand Down
7 changes: 4 additions & 3 deletions ci/build_wheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ package_name=$1
package_dir=$2

source rapids-configure-sccache
source rapids-date-string
source rapids-datetime-string
source rapids-init-pip

# Update the version to accomdate nightly and release changes for the wheel name
rapids-generate-version > ./VERSION
# Update the version to accomodate nightly and release changes for the wheel name
RAPIDS_VERSION_SUFFIX=".post${RAPIDS_DATETIME_STRING}" \
rapids-generate-version > ./VERSION

cd "${package_dir}"

Expand Down
6 changes: 3 additions & 3 deletions conda/recipes/cuopt-server/recipe.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
schema_version: 1

context:
version: ${{ env.get("RAPIDS_PACKAGE_VERSION") }}
date_string: '${{ env.get("RAPIDS_DATE_STRING") }}'
datetime_string: '${{ env.get("RAPIDS_DATETIME_STRING") }}'
py_version: ${{ env.get("RAPIDS_PY_VERSION") }}
py_buildstring: ${{ py_version | version_to_buildstring }}
head_rev: '${{ git.head_rev(".")[:8] }}'
Expand All @@ -17,7 +17,7 @@ source:
path: ../../..

build:
string: py${{ py_buildstring }}_${{ date_string }}_${{ head_rev }}
string: py${{ py_buildstring }}_${{ datetime_string }}_${{ head_rev }}
script:
content: |
# We pass an explicit matrix-entry here along with `disable-cuda=true` to
Expand Down
6 changes: 3 additions & 3 deletions conda/recipes/cuopt-sh-client/recipe.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
schema_version: 1

context:
version: ${{ env.get("RAPIDS_PACKAGE_VERSION") }}
minor_version: ${{ (version | split("."))[:2] | join(".") }}
date_string: '${{ env.get("RAPIDS_DATE_STRING") }}'
datetime_string: '${{ env.get("RAPIDS_DATETIME_STRING") }}'
py_version: ${{ env.get("RAPIDS_PY_VERSION") }}
py_buildstring: ${{ py_version | version_to_buildstring }}
head_rev: '${{ git.head_rev(".")[:8] }}'
Expand All @@ -18,7 +18,7 @@ source:
path: ../../..

build:
string: py${{ py_buildstring }}_${{ date_string }}_${{ head_rev }}
string: py${{ py_buildstring }}_${{ datetime_string }}_${{ head_rev }}
script:
content: |
./build.sh cuopt_sh_client
Expand Down
4 changes: 2 additions & 2 deletions conda/recipes/cuopt/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ context:
minor_version: ${{ (version | split("."))[:2] | join(".") }}
cuda_version: ${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[:2] | join(".") }}
cuda_major: '${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[0] }}'
date_string: '${{ env.get("RAPIDS_DATE_STRING") }}'
datetime_string: '${{ env.get("RAPIDS_DATETIME_STRING") }}'
py_version: ${{ env.get("RAPIDS_PY_VERSION") }}
py_buildstring: ${{ py_version | version_to_buildstring }}
head_rev: '${{ git.head_rev(".")[:8] }}'
Expand All @@ -20,7 +20,7 @@ source:
path: ../../..

build:
string: cuda${{ cuda_major }}_py${{ py_buildstring }}_${{ date_string }}_${{ head_rev }}
string: cuda${{ cuda_major }}_py${{ py_buildstring }}_${{ datetime_string }}_${{ head_rev }}
dynamic_linking:
overlinking_behavior: error
prefix_detection:
Expand Down
6 changes: 3 additions & 3 deletions conda/recipes/libcuopt/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ context:
minor_version: ${{ (version | split("."))[:2] | join(".") }}
cuda_version: ${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[:2] | join(".") }}
cuda_major: '${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[0] }}'
date_string: '${{ env.get("RAPIDS_DATE_STRING") }}'
datetime_string: '${{ env.get("RAPIDS_DATETIME_STRING") }}'
head_rev: '${{ git.head_rev(".")[:8] }}'
build_type: '${{ env.get("RAPIDS_BUILD_TYPE") }}'

Expand Down Expand Up @@ -115,7 +115,7 @@ outputs:
ignore:
# See https://github.com/rapidsai/build-planning/issues/160
- lib/libcuopt.so
string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }}
string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }}
requirements:
build:
- cmake ${{ cmake_version }}
Expand Down Expand Up @@ -183,7 +183,7 @@ outputs:
cmake --install cpp/build --component testing
dynamic_linking:
overlinking_behavior: "error"
string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }}
string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }}
requirements:
build:
- cmake ${{ cmake_version }}
Expand Down
2 changes: 1 addition & 1 deletion python/cuopt_server/cuopt_server/utils/job_queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class PickleForbidden(Exception):
def check_client_version(client_vers):
logging.debug(f"client_vers is {client_vers} in check")
if os.environ.get("CUOPT_CHECK_CLIENT", True) in ["True", True]:
major, minor, _ = __version__.split(".")
major, minor, *_ = __version__.split(".")

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cuopt server tests were failing like this:

  File "/pyenv/versions/3.12.13/lib/python3.12/site-packages/cuopt_server/utils/job_queue.py", line 54, in check_client_version
    major, minor, _ = __version__.split(".")
    ^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 3)

(build link)

This PR now adds a 4th component to nightly versions (e.g. 26.10.0a14.post260807023309).

Since this code only cares about the first 2 components (major and minor), just throwing away the others with * seems defensible.

I looked for other patterns like this in the codebase and didn't see any.

matches = False
if client_vers == "custom":
return []
Expand Down
Loading