> This page is for version v1.4.1.
> For other versions, use one of these documentation indexes:
> - Latest (v1.5.1) (default): https://docs.nvidia.com/dynamo/latest/llms.txt
> - dev: https://docs.nvidia.com/dynamo/dev/llms.txt
> - v1.5.1: https://docs.nvidia.com/dynamo/v1.5.1/llms.txt
> - v1.5.0: https://docs.nvidia.com/dynamo/v1.5.0/llms.txt
> - v1.4.2: https://docs.nvidia.com/dynamo/v1.4.2/llms.txt
> - v1.4.1: https://docs.nvidia.com/dynamo/v1.4.1/llms.txt
> - v1.4.0: https://docs.nvidia.com/dynamo/v1.4.0/llms.txt
> - v1.3.0: https://docs.nvidia.com/dynamo/v1.3.0/llms.txt
> - v1.2.1: https://docs.nvidia.com/dynamo/v1.2.1/llms.txt
> - v1.2.0: https://docs.nvidia.com/dynamo/v1.2.0/llms.txt
> - v1.1.1: https://docs.nvidia.com/dynamo/v1.1.1/llms.txt
> - v1.1.0: https://docs.nvidia.com/dynamo/v1.1.0/llms.txt
> - v1.0.2: https://docs.nvidia.com/dynamo/v1.0.2/llms.txt
> - v1.0.1: https://docs.nvidia.com/dynamo/v1.0.1/llms.txt
> - v1.0.0: https://docs.nvidia.com/dynamo/v1.0.0/llms.txt
> - v0.9.1: https://docs.nvidia.com/dynamo/v-0-9-1/llms.txt
> - v0.9.0: https://docs.nvidia.com/dynamo/v-0-9-0/llms.txt
> - v0.8.1: https://docs.nvidia.com/dynamo/v-0-8-1/llms.txt
> - v0.8.0: https://docs.nvidia.com/dynamo/v-0-8-0/llms.txt
> - v0.7.1: https://docs.nvidia.com/dynamo/v-0-7-1/llms.txt
> - v0.7.0: https://docs.nvidia.com/dynamo/v-0-7-0/llms.txt

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://docs.nvidia.com/dynamo/llms.txt. For full content including API reference and SDK examples, see https://docs.nvidia.com/dynamo/llms-full.txt.

# Contribution Flow

This guide describes the normal contribution path after your local environment is ready. If you
have not prepared a fork or configured commit sign-off, begin with
[Getting Started](/dynamo/v1.4.1/contributing/getting-started).

## Decide Whether to Open an Issue

Small, focused changes can usually go directly to a pull request. Examples include typo fixes,
documentation corrections, small bug fixes, and narrow configuration changes.

Open a [Contribution Request](https://github.com/ai-dynamo/dynamo/issues/new?template=contribution_request.yml)
before implementation when a change is large, introduces a feature, spans multiple components, or
would benefit from agreement on the approach. Wait for maintainer approval before investing in a
substantial implementation.

Changes that modify public APIs, communication-plane architecture, backend integration contracts,
or multiple major components require a
[Dynamo Enhancement Proposal (DEP)](https://github.com/ai-dynamo/enhancements).

## Submit and Refine the Change

#### Create a focused branch

Update your local `main` branch and create a descriptive branch:

```bash
git fetch upstream
git switch main
git rebase upstream/main
git switch -c yourname/fix-router-timeout
```

Keep one concern per branch and pull request.

#### Implement and validate

Make the smallest complete change that solves the problem. Add or update tests when behavior
changes, and run the relevant checks from [Code Quality](/dynamo/v1.4.1/contributing/code-quality).

Commit each logical change with DCO sign-off:

```bash
git commit -s -m "fix(router): handle streaming timeout"
```

#### Open the pull request

Push your branch to your fork:

```bash
git push -u origin yourname/fix-router-timeout
```

[Open a pull request](https://github.com/ai-dynamo/dynamo/compare) against `main`. Link the
approved issue when one exists. Use a Conventional Commit title, such as
`fix(router): handle streaming timeout`, and include **Summary** and **Validation** sections in
the pull request description.

#### Complete automated review and CI

Respond to actionable automated review comments and fix failing checks.

For external contributions, a maintainer might need to authorize CI for the latest commit. If
requested, wait for a maintainer to trigger the tests rather than repeatedly pushing unchanged
commits.

> **Info**
>
> You are responsible for understanding and validating all submitted code, including code
> produced with AI assistance.

#### Request and address review

Request review from the maintainer who approved the issue when applicable. The repository
[CODEOWNERS](https://github.com/ai-dynamo/dynamo/blob/v1.4.1/CODEOWNERS) file identifies required
reviewers for many paths.

Respond to review comments, push follow-up commits with DCO sign-off, and re-request review when
the change is ready.

#### Keep the branch current

If the target branch advances or the pull request develops conflicts, rebase on the current
upstream branch:

```bash
git fetch upstream
git rebase upstream/main
git push --force-with-lease
```

Recheck DCO trailers after rewriting commits. See
[DCO and Licensing](/dynamo/v1.4.1/contributing/dco-and-licensing#verify-every-commit) for a branch-wide check.

## Issue and Review States

Common issue labels communicate the next action:

| Label             | Meaning                                          |
| ----------------- | ------------------------------------------------ |
| `needs-triage`    | Maintainers have not completed initial review    |
| `needs-info`      | The issue needs more information from its author |
| `approved-for-pr` | The proposed implementation can proceed          |
| `in-progress`     | A contributor is working on the issue            |
| `blocked`         | Progress depends on another change or decision   |

Review timing depends on the size, risk, and maintainer availability. If a pull request has had no
activity for a week, leave a concise follow-up comment or contact the approving maintainer.