Skip to content

Commit 8bdbff0

Browse files
authored
Merge branch 'main' into main
2 parents 326a960 + 1476822 commit 8bdbff0

File tree

171 files changed

+10731
-6898
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

171 files changed

+10731
-6898
lines changed

.github/workflows/backport.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
echo "OLD_BRANCH=${OLD_BRANCH}" >> $GITHUB_ENV
4444
4545
- name: Create backport pull requests
46-
uses: korthout/backport-action@01619ebc9a6e3f6820274221b9956b3e7365000a # v4.1.0
46+
uses: korthout/backport-action@3c06f323a58619da1e8522229ebc8d5de2633e46 # v4.3.0
4747
with:
4848
copy_assignees: true
4949
copy_labels_pattern: true
@@ -67,7 +67,7 @@ jobs:
6767
run: echo "BACKPORT_BRANCH=${{ inputs.backport-branch }}" >> $GITHUB_ENV
6868

6969
- name: Create backport pull requests
70-
uses: korthout/backport-action@01619ebc9a6e3f6820274221b9956b3e7365000a # v4.1.0
70+
uses: korthout/backport-action@3c06f323a58619da1e8522229ebc8d5de2633e46 # v4.3.0
7171
with:
7272
copy_assignees: true
7373
copy_labels_pattern: true

.github/workflows/bandit.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2424

2525
- name: Install uv
26-
uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1
26+
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
2727
with:
2828
enable-cache: false
2929

@@ -42,6 +42,6 @@ jobs:
4242
with:
4343
args: "check --select S --ignore ${{ steps.ignore-codes.outputs.codes }} --output-format sarif --output-file results.sarif"
4444
- name: Upload SARIF file
45-
uses: github/codeql-action/upload-sarif@v4.32.5
45+
uses: github/codeql-action/upload-sarif@v4.35.1
4646
with:
4747
sarif_file: results.sarif

.github/workflows/build-docs.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ jobs:
109109
echo "CUDA_BINDINGS_ARTIFACTS_DIR=$(realpath "$REPO_DIR/cuda_bindings/dist")" >> $GITHUB_ENV
110110
111111
- name: Download cuda-python build artifacts
112-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
112+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
113113
with:
114114
name: cuda-python-wheel
115115
path: .
@@ -122,7 +122,7 @@ jobs:
122122
ls -lahR .
123123
124124
- name: Download cuda-pathfinder build artifacts
125-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
125+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
126126
with:
127127
name: cuda-pathfinder-wheel
128128
path: ./cuda_pathfinder
@@ -136,14 +136,14 @@ jobs:
136136
137137
- name: Download cuda.bindings build artifacts
138138
if: ${{ !inputs.is-release }}
139-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
139+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
140140
with:
141141
name: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }}
142142
path: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
143143

144144
- name: Download cuda.bindings build artifacts
145145
if: ${{ inputs.is-release }}
146-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
146+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
147147
with:
148148
pattern: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }}
149149
merge-multiple: true
@@ -158,14 +158,14 @@ jobs:
158158
159159
- name: Download cuda.core build artifacts
160160
if: ${{ !inputs.is-release }}
161-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
161+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
162162
with:
163163
name: ${{ env.CUDA_CORE_ARTIFACT_NAME }}
164164
path: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
165165

166166
- name: Download cuda.core build artifacts
167167
if: ${{ inputs.is-release }}
168-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
168+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
169169
with:
170170
pattern: ${{ env.CUDA_CORE_ARTIFACT_NAME }}
171171
merge-multiple: true

.github/workflows/build-wheel.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ jobs:
150150
cuda-version: ${{ inputs.cuda-version }}
151151

152152
- name: Build cuda.bindings wheel
153-
uses: pypa/cibuildwheel@298ed2fb2c105540f5ed055e8a6ad78d82dd3a7e # v3.3.1
153+
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
154154
with:
155155
package-dir: ./cuda_bindings/
156156
output-dir: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
@@ -204,7 +204,7 @@ jobs:
204204
if-no-files-found: error
205205

206206
- name: Build cuda.core wheel
207-
uses: pypa/cibuildwheel@298ed2fb2c105540f5ed055e8a6ad78d82dd3a7e # v3.3.1
207+
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
208208
with:
209209
package-dir: ./cuda_core/
210210
output-dir: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
@@ -383,7 +383,7 @@ jobs:
383383
rmdir $OLD_BASENAME
384384
385385
- name: Build cuda.core wheel
386-
uses: pypa/cibuildwheel@298ed2fb2c105540f5ed055e8a6ad78d82dd3a7e # v3.3.1
386+
uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0
387387
with:
388388
package-dir: ./cuda_core/
389389
output-dir: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}

.github/workflows/codeql.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ jobs:
3131
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3232

3333
- name: Initialize CodeQL
34-
uses: github/codeql-action/init@40f0fa95c41fede7b43f035cb47aac899ee0ba0a # v3.31.8
34+
uses: github/codeql-action/init@34950e1b113b30df4edee1a6d3a605242df0c40b # v3.31.8
3535
with:
3636
languages: ${{ matrix.language }}
3737
build-mode: ${{ matrix.build-mode }}
3838
queries: security-extended
3939

4040
- name: Perform CodeQL Analysis
41-
uses: github/codeql-action/analyze@40f0fa95c41fede7b43f035cb47aac899ee0ba0a # v3.31.8
41+
uses: github/codeql-action/analyze@34950e1b113b30df4edee1a6d3a605242df0c40b # v3.31.8
4242
with:
4343
category: "/language:${{matrix.language}}"

.github/workflows/coverage.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ jobs:
294294
cuda-version: ${{ env.CUDA_VER }}
295295

296296
- name: Download Windows wheel artifacts
297-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
297+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
298298
with:
299299
name: coverage-windows-wheels
300300
path: ./wheels/
@@ -419,19 +419,19 @@ jobs:
419419
pip install coverage[toml] Cython
420420
421421
- name: Download Linux coverage data
422-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
422+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
423423
with:
424424
name: coverage-data-linux
425425
path: ./
426426

427427
- name: Download cuda source code
428-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
428+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
429429
with:
430430
name: cuda-source-linux
431431
path: ./cuda/
432432

433433
- name: Download Windows coverage data
434-
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
434+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
435435
with:
436436
name: coverage-data-windows
437437
path: ./

.github/workflows/pr-metadata-check.yml

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,20 @@ jobs:
4646
4747
# Module labels identify which package the PR touches.
4848
# Cross-cutting labels exempt PRs from needing a module label.
49-
LABEL_NAMES=$(echo "$LABELS" | jq -r '.[].name')
49+
# Read label names line-by-line (jq outputs one per line) so
50+
# multi-word GitHub labels are not split by shell word-splitting.
5051
MODULE_LABELS="cuda.bindings cuda.core cuda.pathfinder"
5152
MODULE_EXEMPT_LABELS="CI/CD"
5253
HAS_MODULE=false
53-
for label in $LABEL_NAMES; do
54+
while IFS= read -r label; do
55+
[ -n "$label" ] || continue
5456
for mod in $MODULE_LABELS $MODULE_EXEMPT_LABELS; do
5557
if [ "$label" = "$mod" ]; then
5658
HAS_MODULE=true
5759
break 2
5860
fi
5961
done
60-
done
62+
done < <(echo "$LABELS" | jq -r '.[].name')
6163
6264
if [ "$HAS_MODULE" = "false" ]; then
6365
ERRORS="${ERRORS}- **Missing module label**: add at least one of: \`cuda.bindings\`, \`cuda.core\`, \`cuda.pathfinder\` (or a cross-cutting label such as \`CI/CD\`).\n"
@@ -66,14 +68,15 @@ jobs:
6668
# Type labels categorize the kind of change.
6769
TYPE_LABELS="bug enhancement feature documentation test example CI/CD packaging dependencies performance experiment RFC support P0 P1 P2"
6870
HAS_TYPE=false
69-
for label in $LABEL_NAMES; do
71+
while IFS= read -r label; do
72+
[ -n "$label" ] || continue
7073
for typ in $TYPE_LABELS; do
7174
if [ "$label" = "$typ" ]; then
7275
HAS_TYPE=true
7376
break 2
7477
fi
7578
done
76-
done
79+
done < <(echo "$LABELS" | jq -r '.[].name')
7780
7881
if [ "$HAS_TYPE" = "false" ]; then
7982
ERRORS="${ERRORS}- **Missing type label**: add at least one of: \`bug\`, \`enhancement\`, \`feature\`, \`documentation\`, \`test\`, \`example\`, \`CI/CD\`, \`packaging\`, \`dependencies\`, \`performance\`, \`experiment\`, \`RFC\`, \`support\`, \`P0\`, \`P1\`, \`P2\`.\n"
@@ -84,15 +87,21 @@ jobs:
8487
fi
8588
8689
# Block PRs with labels that indicate they are not ready to merge.
87-
BLOCKED_PATTERNS="blocked DO NOT MERGE do not merge"
88-
for label in $LABEL_NAMES; do
89-
for pattern in $BLOCKED_PATTERNS; do
90-
if echo "$label" | grep -qi "$pattern"; then
91-
ERRORS="${ERRORS}- **Blocked label detected**: label \`$label\` prevents merging. Remove it when the PR is ready.\n"
92-
break
93-
fi
94-
done
95-
done
90+
# Match blocked label names exactly (case-insensitively); emit the
91+
# original spelling from the payload so error text matches GitHub.
92+
BLOCKED_LABELS=$(jq -r '
93+
(["blocked", "do not merge"]) as $blocking
94+
| .[]
95+
| .name as $n
96+
| if ($blocking | index($n | ascii_downcase)) != null
97+
then $n
98+
else empty
99+
end
100+
' <<<"$LABELS")
101+
while IFS= read -r label; do
102+
[ -n "$label" ] || continue
103+
ERRORS="${ERRORS}- **Blocked label detected**: label \`$label\` prevents merging. Remove it when the PR is ready.\n"
104+
done <<<"$BLOCKED_LABELS"
96105
97106
if [ -n "$ERRORS" ]; then
98107
echo "::error::This PR is missing required metadata. See the job summary for details."
@@ -107,7 +116,7 @@ jobs:
107116
fi
108117
109118
ASSIGNEE_LIST=$(echo "$ASSIGNEES" | jq -r '.[].login' | paste -sd ', ' -)
110-
LABEL_LIST=$(echo "$LABEL_NAMES" | paste -sd ', ' -)
119+
LABEL_LIST=$(echo "$LABELS" | jq -r '.[].name' | paste -sd ', ' -)
111120
{
112121
echo "## PR Metadata Check Passed"
113122
echo ""

.github/workflows/test-wheel-linux.yml

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ jobs:
100100
uses: ./.github/actions/install_unix_deps
101101
continue-on-error: false
102102
with:
103-
# for artifact fetching, graphics libs
104-
dependencies: "jq wget libgl1 libegl1"
103+
# for artifact fetching, graphics libs, g++ required for cffi in example
104+
dependencies: "jq wget libgl1 libegl1 g++"
105105
dependent_exes: "jq wget"
106106

107107
- name: Set environment variables
@@ -115,21 +115,21 @@ jobs:
115115
run: ./ci/tools/env-vars test
116116

117117
- name: Download cuda-pathfinder build artifacts
118-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
118+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
119119
with:
120120
name: cuda-pathfinder-wheel
121121
path: ./cuda_pathfinder
122122

123123
- name: Download cuda-python build artifacts
124124
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0'}}
125-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
125+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
126126
with:
127127
name: cuda-python-wheel
128128
path: .
129129

130130
- name: Download cuda.bindings build artifacts
131131
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0'}}
132-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
132+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
133133
with:
134134
name: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }}
135135
path: ${{ env.CUDA_BINDINGS_ARTIFACTS_DIR }}
@@ -181,7 +181,7 @@ jobs:
181181
182182
- name: Download cuda.bindings Cython tests
183183
if: ${{ env.SKIP_CYTHON_TEST == '0' }}
184-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
184+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
185185
with:
186186
name: ${{ env.CUDA_BINDINGS_ARTIFACT_NAME }}-tests
187187
path: ${{ env.CUDA_BINDINGS_CYTHON_TESTS_DIR }}
@@ -193,7 +193,7 @@ jobs:
193193
ls -lahR $CUDA_BINDINGS_CYTHON_TESTS_DIR
194194
195195
- name: Download cuda.core build artifacts
196-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
196+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
197197
with:
198198
name: ${{ env.CUDA_CORE_ARTIFACT_NAME }}
199199
path: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
@@ -205,7 +205,7 @@ jobs:
205205
206206
- name: Download cuda.core Cython tests
207207
if: ${{ env.SKIP_CYTHON_TEST == '0' }}
208-
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
208+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
209209
with:
210210
name: ${{ env.CUDA_CORE_ARTIFACT_NAME }}-tests
211211
path: ${{ env.CUDA_CORE_CYTHON_TESTS_DIR }}
@@ -261,14 +261,12 @@ jobs:
261261
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
262262
run: run-tests bindings
263263

264-
- name: Run cuda.bindings examples
264+
- name: Run cuda.bindings benchmarks (smoke test)
265265
if: ${{ env.SKIP_CUDA_BINDINGS_TEST == '0' }}
266-
env:
267-
CUDA_VER: ${{ matrix.CUDA_VER }}
268-
LOCAL_CTK: ${{ matrix.LOCAL_CTK }}
269266
run: |
270-
pushd cuda_bindings
271-
${SANITIZER_CMD} pytest -ra -s -vv examples/
267+
pip install pyperf
268+
pushd cuda_bindings/benchmarks
269+
python run_pyperf.py --fast --loops 1 --min-time 0
272270
popd
273271
274272
- name: Run cuda.core tests

0 commit comments

Comments
 (0)