Skip to content

Commit e0f7368

Browse files
authored
Merge branch 'main' into codex/woa-xrepo-public-automation
2 parents dcd7b6f + a76263c commit e0f7368

788 files changed

Lines changed: 314008 additions & 6029 deletions

File tree

Some content is hidden

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

‎.clang-format‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
# A clang-format style derived from Python's PEP 7 (4-space indent, Stroustrup braces,
6+
# return type on its own line), except that the column limit is 120 rather than 79.
7+
# Based on https://gist.github.com/pganssle/0e3a5f828b4d07d79447f6ced8e7e4db
8+
BasedOnStyle: Google
9+
BreakAfterReturnType: AllDefinitions
10+
AllowShortIfStatementsOnASingleLine: Never
11+
BreakBeforeBraces: Stroustrup
12+
ColumnLimit: 120
13+
DerivePointerAlignment: false
14+
IndentWidth: 4
15+
Language: Cpp
16+
PointerAlignment: Right
17+
ReflowComments: Always
18+
SpaceBeforeParens: ControlStatements
19+
SpacesInParens: Never
20+
TabWidth: 4
21+
UseTab: Never
22+
23+
# Keep include order as written; reordering can break order-sensitive builds.
24+
SortIncludes: {Enabled: false}
25+
26+
# Ruff-like wrapping: break after "(", indent arguments, put ")" on its own line.
27+
# This does not contradict PEP7, but extends it to the consistent style where
28+
# calls either fit on a single line or they are broken across multiple lines with
29+
# one argument per line (indented).
30+
AlignAfterOpenBracket: true
31+
BreakAfterOpenBracketBracedList: true
32+
BreakAfterOpenBracketFunction: true
33+
BreakAfterOpenBracketIf: true
34+
BreakBeforeCloseBracketBracedList: true
35+
BreakBeforeCloseBracketFunction: true
36+
BreakBeforeCloseBracketIf: true
37+
PackArguments: {BinPack: OnePerLine}
38+
PackParameters: {BinPack: OnePerLine}
39+
AllowAllArgumentsOnNextLine: false

‎.coderabbit.yaml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ reviews:
6565
custom_checks: []
6666

6767
path_instructions:
68-
- path: "cuda_bindings/**/*"
68+
- path: "cuda_bindings_13/**/*"
6969
instructions: |
7070
Focus on Cython binding correctness, API and ABI stability, error-code propagation,
7171
resource ownership and reference counting, GIL handling, cross-platform behavior.
@@ -122,23 +122,23 @@ knowledge_base:
122122
filePatterns:
123123
- "AGENTS.md"
124124
- "CONTRIBUTING.md"
125-
- "cuda_bindings/AGENTS.md"
125+
- "cuda_bindings_13/AGENTS.md"
126126
- "cuda_core/AGENTS.md"
127127
- "cuda_core/tests/AGENTS.md"
128128
- "cuda_pathfinder/AGENTS.md"
129129
- "cuda_python/AGENTS.md"
130130
- "benchmarks/cuda_bindings/AGENTS.md"
131131
- "benchmarks/cuda_core/AGENTS.md"
132-
- "cuda_bindings/README.md"
132+
- "cuda_bindings_13/README.md"
133133
- "cuda_core/README.md"
134134
- "cuda_pathfinder/DESCRIPTION.rst"
135135
- "cuda_python/DESCRIPTION.rst"
136-
- "cuda_bindings/docs/source/contribute.rst"
136+
- "cuda_bindings_13/docs/source/contribute.rst"
137137
- "cuda_core/docs/source/contribute.rst"
138138
- "cuda_core/docs/source/concurrency.rst"
139139
- "cuda_core/docs/source/error_handling.rst"
140140
- "cuda_pathfinder/docs/source/contribute.rst"
141-
- "cuda_bindings/docs/source/release.rst"
141+
- "cuda_bindings_13/docs/source/release.rst"
142142
- "cuda_core/docs/source/release.rst"
143143
- "cuda_pathfinder/docs/source/release.rst"
144144
- "cuda_python/docs/source/release.rst"

‎.gitattributes‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,11 @@ pixi.lock merge=binary linguist-language=YAML linguist-generated=true
1414
# `setuptools-scm` to correctly determine the version when building from a git
1515
# archive. See #1609.
1616
.git_archival.txt export-subst
17+
18+
# cuda.core compiles against the libcu++ headers of the vendored CCCL submodule
19+
# only; cuda_core/MANIFEST.in grafts those headers (and their licenses) into the
20+
# sdist explicitly. setuptools-scm 10 lists the files of an initialized
21+
# submodule, which would otherwise add the entire CCCL tree to the sdist and
22+
# make every egg_info walk it. "export-ignore" makes its file finder skip the
23+
# submodule. See #2940.
24+
cuda_core/third_party/cccl export-ignore

‎.github/CODERABBIT.md‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
2+
<!-- SPDX-License-Identifier: Apache-2.0 -->
3+
4+
# CodeRabbit Configuration
5+
6+
This document explains how CodeRabbit is configured for CUDA Python. For review
7+
commands and guidance, see the
8+
[CodeRabbit section of the contributing guide](../CONTRIBUTING.md#coderabbit).
9+
For complete product documentation, see the
10+
[CodeRabbit documentation](https://docs.coderabbit.ai/).
11+
12+
CUDA Python configures CodeRabbit through [`.coderabbit.yaml`](../.coderabbit.yaml)
13+
in the repository root. For pull requests from a branch in the same repository,
14+
the configuration in that branch is used for the review. Pull requests from
15+
forks use the target branch's configuration instead, so changes to
16+
`.coderabbit.yaml` in a fork do not affect that review.
17+
18+
When setting up or updating CodeRabbit:
19+
20+
1. Keep repository-specific settings in `.coderabbit.yaml`.
21+
2. Use `@coderabbitai configuration` on a pull request to inspect the resolved
22+
configuration. This is useful when checking whether CodeRabbit is using the
23+
expected repository settings for that pull request.
24+
3. Use `@coderabbitai generate configuration` to export the resolved
25+
configuration if a new baseline is needed. This is useful when moving
26+
settings into a reviewable repository configuration file.
27+
4. Keep configuration changes small and reviewable.
28+
5. Use `reviews.path_instructions` for path-specific review guidance.
29+
6. Use `knowledge_base.code_guidelines.filePatterns` for CUDA Python guidance
30+
files that CodeRabbit should read as review context.
31+
32+
The CUDA Python configuration should keep comments focused on correctness, API
33+
stability, performance, security, and other high-impact issues. Avoid enabling
34+
features that add noisy generated comments or code by default.

‎.github/RELEASE-core.md‎

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,32 @@
66
This document covers the `cuda.core` release process. For other packages:
77
`cuda-bindings` and `cuda-python` involve a private repository and are not
88
documented here; `cuda-pathfinder` is largely automated by the
9-
[release-cuda-pathfinder.yml](workflows/release-cuda-pathfinder.yml)
9+
[CI: Release](workflows/release.yml)
1010
workflow.
1111

12+
To release `cuda-pathfinder`, dispatch **CI: Release** with
13+
`component` set to `cuda-pathfinder`, `release-action` set
14+
to `full-release`, and `git-tag` set to the existing
15+
`cuda-pathfinder-v<VERSION>` tag. The workflow finds the successful
16+
tag-triggered CI run, checks release notes, creates or reuses a draft,
17+
builds and deploys versioned docs, and uploads the source archive, checksum,
18+
and wheels. It publishes to TestPyPI, verifies installation and the imported
19+
version, then publishes to PyPI and verifies again before publishing the
20+
GitHub Release without marking it as latest. A failed
21+
docs build prevents asset uploads, package publication, and finalization.
22+
23+
The release-note checker runs from `git-tag`, not the workflow revision.
24+
For Pathfinder, that tag must contain a version
25+
of `ci/tools/check_release_notes.py` that writes `version=<VERSION>` to
26+
`GITHUB_OUTPUT`. The release-notes job rejects an empty version before
27+
documentation, asset uploads, or package publication can start. Pathfinder
28+
package publication also requires successful draft metadata preparation.
29+
30+
The default `dry-run` action validates preparation, builds docs, and
31+
collects release artifacts without creating a GitHub Release or publishing
32+
packages. It can be dispatched from a development branch; use
33+
`dry-run-docs-branch` only when a preview deployment is needed.
34+
1235
Each section below provides detailed guidance for a step in the
1336
[Release Checklist](ISSUE_TEMPLATE/release_checklist.yml). To start a
1437
release, create a new issue from that template and work through it item by

‎.github/actionlint.yaml‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,14 @@ paths:
2121
".github/workflows/ci-workflow-health.yml":
2222
ignore:
2323
- 'unexpected key "queue" for "concurrency" section'
24+
# GitHub supports self-repository ($/) action references, but the latest
25+
# actionlint release does not yet recognize them (rhysd/actionlint#711).
26+
".github/workflows/release.yml":
27+
ignore:
28+
- 'specifying action "\$/[^"]+" in invalid format because ref is missing'
29+
".github/workflows/test-wheel-linux.yml":
30+
ignore:
31+
- 'specifying action "\$/[^"]+" in invalid format because ref is missing'
32+
".github/workflows/test-wheel-windows.yml":
33+
ignore:
34+
- 'specifying action "\$/[^"]+" in invalid format because ref is missing'

‎.github/actions/check-doc-links/action.yml‎

Lines changed: 0 additions & 114 deletions
This file was deleted.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
#
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
name: Harden pip
6+
description: >-
7+
Install the security-fixed pip (26.2.2) from a hash-pinned wheel so that later
8+
pip invocations do not fall back on the vendored certifi bundle that trusts the
9+
compromised eMudhra/emSign intermediate CAs. The sha256 fragment guarantees the
10+
bootstrap download's integrity even if the bootstrapping pip's trust store is
11+
compromised. See https://github.com/NVIDIA/cuda-python/issues/3195 and
12+
https://discuss.python.org/t/109576.
13+
14+
inputs:
15+
python:
16+
description: Python interpreter whose pip should be hardened (e.g. a venv's python).
17+
default: python
18+
19+
runs:
20+
using: composite
21+
steps:
22+
- name: Install hash-pinned pip 26.2.2
23+
shell: bash --noprofile --norc -xeuo pipefail {0}
24+
env:
25+
HARDEN_PIP_PYTHON: ${{ inputs.python }}
26+
run: |
27+
"${HARDEN_PIP_PYTHON}" -m pip install \
28+
"pip @ https://files.pythonhosted.org/packages/3f/06/3e4420302363fbb71be3c7f35ce042f54bfca330e3e66b3a2e3c4cca579f/pip-26.2.2-py3-none-any.whl#sha256=fd7f4dfa8190e014013b9f08f3e973f4e4c26ffd179a204895533a7254813a70"

0 commit comments

Comments
 (0)