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

LanguageAllowed repository-relative pattern
Pythonsource/extensions/**/*.py
C sourcesource/extensions/**/*.c
C headersource/extensions/**/*.h
C++ sourcesource/extensions/**/*.cpp
C++ headersource/extensions/**/*.hpp
CUDA sourcesource/extensions/**/*.cu
CUDA headersource/extensions/**/*.cuh
Markdownsource/extensions/**/*.md
reStructuredTextsource/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 .toml and .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.