Contributor Guide
This guide defines the policies and procedures for contributing to Kargo. Please read it in full before opening issues or pull requests.
Process Overview
Kargo follows an issue-first contribution model. Unless authored by a maintainer, all code contributions require a linked issue that has been reviewed and unblocked by maintainers in advance.
Ideas and contributions from the community are always welcome, however, items not appearing on the roadmap are reviewed on a best-effort basis. While we cannot guarantee specific timelines or outcomes, we value and consider every submission.
-
Open an issue using the Bug Report or Feature Request template.
-
Wait for maintainer review. Maintainers will triage the issue, ask clarifying questions, and determine whether the work aligns with the project's priorities and roadmap.
-
Wait for the issue to be unblocked. When an issue is ready for external contribution, a maintainer will remove all blocking labels. Do not begin work while any blocking labels are present.
-
Open a pull request that references the unblocked issue using
Closes #<number>in the PR body.
Blocking Labels
The following labels indicate an issue is not ready for external contribution. Pull requests linked to issues carrying any of these labels will be automatically closed.
| Label | Meaning |
|---|---|
kind/proposal | Feature request under consideration. Not yet unblocked. |
needs discussion | Needs further discussion before any work begins. |
needs research | Needs investigation or research before work begins. |
maintainer only | Reserved for maintainers due to size, complexity, or sensitivity. |
area/security | Involves security-sensitive code. Maintainer-coordinated only. |
size/large | Large scope. Requires maintainer coordination. |
size/x-large | Very large scope. Requires maintainer coordination. |
size/xx-large | Extremely large scope. Requires maintainer coordination. |
An issue is ready for external contribution when none of these labels are present.
Automatic Enforcement
Pull requests that do not observe the process described above are automatically closed. This includes:
-
PRs with no linked issue.
-
PRs linked to issues that still carry blocking labels.
-
Unsolicited PRs (no corresponding issue exists).
This enforcement applies to external contributors only. Maintainers are exempt.
Quality Expectations
All pull requests must:
-
Be authored and reviewed by a human. AI-assisted coding is acceptable, but every line must be understood and verified by the submitter. Submissions that appear to be generated without meaningful human review will be closed.
-
Include appropriate tests for new and modified code.
-
Follow existing code conventions and patterns.
-
Include DCO sign-off on all commits (see Signing Commits).
-
Include documentation updates where user-facing behavior has changed.
Cryptographic signing of all commits is strongly encouraged.
Specific Topics
📄️ Hacking on Kargo
Learn how to set up a development environment to begin contributing to Kargo
📄️ Debugging Kargo
Steps to help you debug Kargo when you run into issues.
📄️ Signing Commits
Find out how to sign commits when contributing to Kargo
📄️ Code of Conduct
Contributor Code of Conduct for the open source Kargo project