Skip to main content

Contributor Quickstart

Contributions use the same ownership and evidence rules described throughout this site. Start with a small, reviewable change and prove the behavior at the lowest meaningful layer before requesting broader CI.

The repository-root CONTRIBUTING.md is authoritative for the external contribution workflow, licensing, and Developer Certificate of Origin requirements. This page adds project-specific development and validation detail.

1. Fork the repository and prepare a clean branch

External development happens in a personal fork. Use GitHub's Fork button on the canonical repository, then clone your fork, add the NVIDIA repository as upstream, and start from its current main:

git clone https://github.com/YOUR-GITHUB-USERNAME/TensorRT-Model-Connect.git
cd TensorRT-Model-Connect
git remote add upstream https://github.com/NVIDIA/TensorRT-Model-Connect.git
git fetch upstream
git switch -c docs/improve-getting-started upstream/main

In this layout, origin is your writable fork and upstream is the canonical repository. Do not develop on either repository's main, and preserve unrelated local work.

For source changes, use the development environment described in System Requirements.

2. Find the owner before editing

Choose the narrowest current owner:

ChangeStart here
Native model supportAdd a Model Family
Exact delegated runtime for an existing familyAdd an Optimized Runtime Implementation
Native runtime behaviorAdd a Runtime Strategy
User-facing configurationAdd a Config Schema
Model validationValidate a Model Contribution
External family-owned kernelBring Your Own Kernel
Public API or shared infrastructureDeveloper Guide, then the owning architecture or API reference

Similar model behavior is not automatically shared infrastructure. Family semantics stay with the owning family unless at least two real owners require the same model-independent contract.

  • Keep existing copyright, license, and attribution notices.
  • Add the repository SPDX header to new source files.
  • Identify third-party source, version, license, and required notices in the pull request.
  • Sign every commit:
git commit --signoff

The sign-off certifies the contribution under the Developer Certificate of Origin. Unsigned commits are not accepted.

4. Validate the smallest meaningful scope

Always start with repository consistency:

PYTHONPATH=python:. python3 tools/model_ci.py validate
PYTHONPATH=python:. python3 tools/test_impact.py --validate
git diff --check

Then run focused tests for the owner you changed. Model changes also need the declared E2E contract and its required model, runtime, GPU, and comparison artifacts. Documentation changes need strict references and a production site build:

python3 tools/check_doc_file_references.py --strict website/docs
npm --prefix website ci
npm --prefix website run build

Do not weaken an acceptance threshold to make a change pass. If a test is wrong, explain the evidence and request maintainer review.

5. Push to your fork and open the pull request

Sync with current upstream, push the short-lived branch to your fork, and open a pull request targeting NVIDIA/TensorRT-Model-Connect:main:

git fetch upstream
git rebase upstream/main
git push --set-upstream origin docs/improve-getting-started

The pull request should record:

  • exact scope and non-goals;
  • exact base and tested head revisions;
  • commands actually executed;
  • model, artifact, hardware, and environment for GPU claims;
  • remaining risks and paths not executed.

Compilation, source tests, model parity, target-hardware execution, performance, and release qualification are different evidence tiers.

6. Coordinate repository CI

The repository premerge workflow is one-shot and label-driven. Pushing a branch or creating a pull request alone does not start the gate. After local checks pass and the pull request is ready, add this comment:

@yifeif-nv This PR is ready for CI. Please trigger CI for the current head.

The maintainer verifies the PR's headRefOid and applies run-internal-ci. The trusted bridge consumes that label, captures the immutable PR head SHA, and dispatches private premerge validation for that exact revision.

Wait for the trtmc/premerge/required status on the same head SHA to complete successfully. If the head changes intentionally, finish the update and local validation before mentioning @yifeif-nv once to request a new run. Only a maintainer with repository maintain or admin permission can authorize the trigger. Private CI repository details, runner information, logs, artifacts, and URLs are not public documentation.