traefik/traefik
How to contribute
This section is the practical "I have a change in mind, what now?" companion to the official contributing docs at https://doc.traefik.io/traefik/contributing/.
The repo's own CONTRIBUTING.md is intentionally short and links to the official docs for the formal PR / issue / security policies. The pages here are for engineers reading the source: how to find your way around, what conventions to mirror, and how to be confident your change is actually correct.
What to read first
| Page | When to read it |
|---|---|
| Development workflow | Before opening your first PR. Covers branches, generated files, releases. |
| Patterns and conventions | When you start writing code. Covers logging, errors, configuration tags, deprecation. |
| Testing | When you need to write or run tests. Covers unit, integration, conformance. |
| Debugging | When something is wrong. Covers logs, dashboard, common pitfalls. |
| Tooling | When you need to regenerate code or wire CI. |
Definition of done
Most contributions converge on the same checklist:
- Code compiles cleanly:
go build ./.... - Lint passes:
make lint(golangci-lint runagainst.golangci.yml). - Unit tests pass:
make test-unit. - If you touched dynamic-config types:
make generate-crdto refresh deepcopy and CRD manifests. - If you added user-visible options: update the relevant pages under
docs/content/reference/. - If you added a configuration field:
go generateregenerates the documentation reference (CLI/env/file pages). - If you touched routing, providers, middlewares, or load balancing: an integration test in
integration/is expected.
CI runs the matching workflows in .github/workflows/ (test-unit.yaml, test-integration.yaml, validate.yaml, check_doc.yaml).
Pull request process
The official pull-request guide explains the social side. The mechanical side, derived from the repo:
- Branch from
masterfor new features, or from a release branch (e.g.v3.7) for bug fixes targeting an existing release. - Use the GitHub PR template — it asks you to confirm CHANGELOG and docs updates.
- Maintainers triage using labels documented in https://github.com/traefik/contributors-guide.
- CI must pass. The matrix in
.github/workflows/test-integration.yamlshards integration tests across multiple jobs; Gateway API and Knative conformance run on their own workflows when relevant. - Releases are cut from version branches by maintainers — see the lore page for the cadence.
Where to get help
- The community forum: https://community.traefik.io/.
- The maintainers list and process at https://github.com/traefik/contributors-guide.
- For security issues, follow
SECURITY.md. Do not file public GitHub issues.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.