Contribution Flow

Take a change from proposal through pull request review
View as Markdown

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.

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 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).

Submit and Refine the Change

1

Create a focused branch

Update your local main branch and create a descriptive branch:

$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.

2

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.

Commit each logical change with DCO sign-off:

$git commit -s -m "fix(router): handle streaming timeout"
3

Open the pull request

Push your branch to your fork:

$git push -u origin yourname/fix-router-timeout

Open a pull request 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.

4

Complete automated review and CI

Respond to actionable automated review comments and fix failing checks.

For a fork pull request, automatic trusted-CI approval requires the contributor or latest branch update to meet repository approval criteria and every PR commit to have a cryptographic signature that GitHub reports as Verified. git commit -s adds a DCO sign-off but does not add a cryptographic signature. Signing does not itself qualify a pull request for automatic approval. When automatic approval is unavailable, a maintainer can review the current head and comment /ok to test <sha> to start CI. Wait for that action rather than repeatedly pushing unchanged commits.

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

5

Request and address review

Request review from the maintainer who approved the issue when applicable. The teams that own the areas your pull request touches are auto-requested when it opens; preview them with python .github/codeowners/who_owns.py --codeowners CODEOWNERS --changed. Any one owner per matched rule satisfies the gate.

If the codeowners check fails because your pull request adds a directory no area claims, add a one-line claim under the owning area in areas.yaml, regenerate, and commit both files together — see the CODEOWNERS README.

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

6

Keep the branch current

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

$git fetch upstream
$git rebase upstream/main
$git push --force-with-lease

Recheck DCO trailers after rewriting commits. See DCO and Licensing for a branch-wide check.

Issue and Review States

Common issue labels communicate the next action:

LabelMeaning
needs-triageMaintainers have not completed initial review
needs-infoThe issue needs more information from its author
approved-for-prThe proposed implementation can proceed
in-progressA contributor is working on the issue
blockedProgress 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.