Skip to content
Closed
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
131 changes: 131 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

# Assign active maintainers; use contribution history only to suggest candidates.
# Keep documentation, plugin, and example entries in their own sections.
# The last matching rule replaces earlier owners, including the "*" fallback.
# Repeat maintainers on specific rules if they should also count as code owners.
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-syntax

# Repository maintainers cover unmatched paths, including build and packaging.
* @jiwenc-nv @aristarkhovNV

# Device I/O, recording, replay, and haptics.
/src/core/deviceio_base/ @rwiltz @aristarkhovNV
/src/core/deviceio_session/ @rwiltz @aristarkhovNV
/src/core/deviceio_trackers/ @rwiltz @aristarkhovNV
/src/core/live_trackers/ @rwiltz @aristarkhovNV
/src/core/replay_trackers/ @rwiltz @aristarkhovNV
/src/core/mcap/ @rwiltz @aristarkhovNV
/src/python/isaaccapture/deviceio/ @rwiltz @aristarkhovNV
/src/python/isaaccapture/deviceio_session/ @rwiltz @aristarkhovNV
/src/python/isaaccapture/deviceio_trackers/ @rwiltz @aristarkhovNV
/src/python/isaaccapture/mcap/ @rwiltz @aristarkhovNV
/src/python/isaaccapture/haptic_devices/ @rwiltz @aristarkhovNV
/tests/cpp/core/deviceio_trackers/ @rwiltz @aristarkhovNV
/tests/cpp/core/live_trackers/ @rwiltz @aristarkhovNV
/tests/cpp/core/replay_deviceio_session/ @rwiltz @aristarkhovNV
/tests/cpp/core/mcap/ @rwiltz @aristarkhovNV
/tests/python/core/deviceio_trackers/ @rwiltz @aristarkhovNV

# Schemas and generated contracts, including the tracker manifest override.
/src/core/schema/ @lotusl-code @nv-mhaselton
/src/core/schema_compat/ @lotusl-code @nv-mhaselton
/src/core/codegen/ @lotusl-code @nv-mhaselton
/src/core/deviceio_trackers/trackers.toml @lotusl-code @nv-mhaselton
/src/python/isaaccapture/schema/ @lotusl-code @nv-mhaselton
/cmake/GenerateFlatBuffers.cmake @lotusl-code @nv-mhaselton
/cmake/GenerateTrackers.cmake @lotusl-code @nv-mhaselton
/tests/cpp/core/schema/ @lotusl-code @nv-mhaselton
/tests/cpp/core/tracker_metadata/ @lotusl-code @nv-mhaselton
/tests/python/core/schema/ @lotusl-code @nv-mhaselton

# OpenXR runtime and utilities.
/src/core/oxr/ @aristarkhovNV @ivany-nv
/src/core/oxr_utils/ @aristarkhovNV @ivany-nv
/src/python/isaaccapture/oxr/ @aristarkhovNV @ivany-nv
/deps/third_party/openxr_extensions/ @aristarkhovNV @ivany-nv

# Retargeting graphs, source nodes, mappings, and tuning UI.
/src/python/isaaccapture/retargeting_engine/ @sgrizan-nv @rwiltz
/src/python/isaaccapture/retargeters/ @sgrizan-nv @rwiltz
/src/python/isaaccapture/retargeting_engine_ui/ @sgrizan-nv @rwiltz
/tests/python/core/retargeting_engine/ @sgrizan-nv @rwiltz

# Teleoperation session orchestration and control transitions.
/src/python/isaaccapture/teleop_session_manager/ @sgrizan-nv @ivany-nv
/tests/python/core/teleop_session_manager/ @sgrizan-nv @ivany-nv

# CloudXR runtime, deployment, and remote control.
/src/core/cloudxr/ @jiwenc-nv @aristarkhovNV
/src/python/isaaccapture/cloudxr/ @jiwenc-nv @aristarkhovNV
/src/python/isaaccapture/cloudxr_exp/ @jiwenc-nv @aristarkhovNV
/deps/cloudxr/ @jiwenc-nv @aristarkhovNV
/scripts/*cloudxr* @jiwenc-nv @aristarkhovNV
/tests/python/core/cloudxr/ @jiwenc-nv @aristarkhovNV

# CloudXR web client and its build/publication integration.
/deps/cloudxr/webxr_client/ @yanziz-nvidia @gareth-morgan-nv
/.github/actions/build-cloudxr-web-client/ @yanziz-nvidia @gareth-morgan-nv
/.github/workflows/promote-stable-client.yaml @yanziz-nvidia @gareth-morgan-nv

# Visualization.
/src/viz/ @farbod-nv @nv-mhaselton
/src/python/isaaccapture/viz/ @farbod-nv @nv-mhaselton
/tests/cpp/viz/ @farbod-nv @nv-mhaselton
/tests/python/viz/ @farbod-nv @nv-mhaselton

# EgoPost remains one component, including its nested tests and model tooling.
/src/python/isaaccapture_egopost/ @shaosu-nvidia @tifchen-nvda

# The native and Python logging halves share one contract.
/src/core/log_bridge/ @lotusl-code @AndreusNvidius
/src/python/isaaccapture/logging_config/ @lotusl-code @AndreusNvidius
/tests/cpp/core/log_bridge/ @lotusl-code @AndreusNvidius
/tests/python/core/logging_config/ @lotusl-code @AndreusNvidius

# Shared documentation owners, with EgoPost guides owned by its maintainers.
/docs/ @jiwenc-nv @ivany-nv @aristarkhovNV
/docs/source/ego_post_processing/ @shaosu-nvidia @tifchen-nvda

# Plugin infrastructure, integrations, and tests share owners; avoid device overrides.
/src/plugins/ @jiwenc-nv @aristarkhovNV @ivany-nv @rwiltz @sgrizan-nv @shaosu-nvidia @lotusl-code
/tests/cpp/plugins/ @jiwenc-nv @aristarkhovNV @ivany-nv @rwiltz @sgrizan-nv @shaosu-nvidia @lotusl-code
/src/core/pusherio/ @jiwenc-nv @aristarkhovNV @ivany-nv @rwiltz @sgrizan-nv @shaosu-nvidia @lotusl-code
/src/core/plugin_manager/ @jiwenc-nv @aristarkhovNV @ivany-nv @rwiltz @sgrizan-nv @shaosu-nvidia @lotusl-code
/src/python/isaaccapture/plugin_manager/ @jiwenc-nv @aristarkhovNV @ivany-nv @rwiltz @sgrizan-nv @shaosu-nvidia @lotusl-code
/tests/cpp/core/plugin_manager/ @jiwenc-nv @aristarkhovNV @ivany-nv @rwiltz @sgrizan-nv @shaosu-nvidia @lotusl-code

# Examples and their tests.
/examples/camera_viz/ @farbod-nv @nv-mhaselton
/tests/python/examples/camera_viz/ @farbod-nv @nv-mhaselton
/examples/cloudxr_mujoco_teleop/ @jiwenc-nv @aristarkhovNV
/examples/deviceio_live_view/ @rwiltz @aristarkhovNV
/tests/python/examples/deviceio_live_view/ @rwiltz @aristarkhovNV
/examples/haptic_feedback/ @rwiltz @aristarkhovNV
/examples/lerobot/ @rwiltz @aristarkhovNV
/examples/mcap_record_replay/ @rwiltz @aristarkhovNV
/examples/native_openxr/ @aristarkhovNV @ivany-nv
/examples/noitom/ @jiwenc-nv @aristarkhovNV
/examples/oglo_tactile/ @jiwenc-nv @aristarkhovNV
/examples/oxr/ @aristarkhovNV @ivany-nv
/examples/rebot/ @jiwenc-nv @aristarkhovNV
/examples/retargeting/ @sgrizan-nv @rwiltz
/examples/robot_viz/ @farbod-nv @nv-mhaselton
/examples/schemaio/ @lotusl-code @nv-mhaselton
/examples/sharpa_avatar/ @lotusl-code @jiwenc-nv
/examples/soma_body_publisher/ @lotusl-code @nv-mhaselton
/tests/python/examples/soma_body_publisher/ @lotusl-code @nv-mhaselton
/examples/soma_hand_publisher/ @lotusl-code @nv-mhaselton
/tests/python/examples/soma_hand_publisher/ @lotusl-code @nv-mhaselton
/examples/tactile/ @lotusl-code @nv-mhaselton
/examples/teleop/ @sgrizan-nv @ivany-nv
/tests/python/examples/teleop/ @sgrizan-nv @ivany-nv
/tests/python/examples/teleop_keyboard/ @sgrizan-nv @ivany-nv
/examples/teleop_ros2/ @sgrizan-nv @nv-mhaselton
/tests/python/examples/teleop_ros2/ @sgrizan-nv @nv-mhaselton
/examples/teleop_session_manager/ @sgrizan-nv @ivany-nv
/examples/vehicle_teleop/ @jiwenc-nv @aristarkhovNV

# Changes to ownership itself stay with repository maintainers.
/.github/CODEOWNERS @jiwenc-nv @aristarkhovNV
18 changes: 18 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,24 @@ GitHub Actions builds the default targets and runs tests.
3. Describe motivation, changes, and testing in the PR
4. Link related issues

### Code ownership

[`.github/CODEOWNERS`](.github/CODEOWNERS) maps subsystems to reviewers, with
repository maintainers covering unmatched paths. Keep related source, bindings,
and tests assigned together when adding or moving files. Files under `docs/`
share the documentation owners, except `docs/source/ego_post_processing/`, which
follows the EgoPost maintainers. Plugin infrastructure, integrations, and tests
share the plugin owners. Examples have their own entries. Rules are ordered from
broad defaults to specific overrides; the last matching rule wins.

Owners must have repository write access. Update the map as maintainers change,
keeping a backup reviewer for each area.
Multiple owners on a line are alternatives, not a requirement for both to approve.

GitHub requests owner reviews for ready pull requests once the file is on their
base branch. Requiring owner approval before merge is a separate repository
ruleset or branch-protection setting; adding this file does not enable it.

## Signing Your Work

* We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
Expand Down
Loading