External contribution path policy
September 10, 2026 ยท View on GitHub
The machine-readable policy in
tools/github/ci/path_filter.yml is the
authoritative allowlist for external contributions. This document presents that
policy for contributors. CI rejects this file when it is not synchronized with
the machine-readable policy.
Every path changed by an external commit must match both the allowed root and one allowed suffix. Paths and suffixes are case-sensitive.
Allowed paths
| Language | Allowed repository-relative pattern |
|---|---|
| Python | source/extensions/**/*.py |
| C source | source/extensions/**/*.c |
| C header | source/extensions/**/*.h |
| C++ source | source/extensions/**/*.cpp |
| C++ header | source/extensions/**/*.hpp |
| CUDA source | source/extensions/**/*.cu |
| CUDA header | source/extensions/**/*.cuh |
| Markdown | source/extensions/**/*.md |
| reStructuredText | source/extensions/**/*.rst |
The policy applies to added, modified, and deleted files. For a rename, both the old path and the new path must match. An allowed path must contain ordinary source text; symlinks, generated output, and binary or encoded content are not allowed.
Everything else is denied
Files outside source/extensions/ and files with any other suffix are not
open to external modification. This includes:
- Extension manifests and build files such as
.tomland.lua. - OmniGraph, configuration, and schema files such as
.ogn,.json,.yaml,.yml,.xml, and.proto. - Assets, datasets, archives, executables, and other binary files.
- Python bytecode and generated source or documentation.
- Repository infrastructure, dependencies, workflows, and this policy.
There are no pull-request exceptions to this initial allowlist. Propose a scope change through a GitHub Issue or Discussion. An NVIDIA maintainer must update the machine-readable policy before an additional path or suffix becomes eligible.