containerd/containerd
How to contribute
This section is the local, code-level guide for contributing to containerd/containerd. It complements the upstream contributor docs at containerd/project (see https://github.com/containerd/project/blob/main/CONTRIBUTING.md) and the repo's own CONTRIBUTING.md.
At a glance
- Fork → branch → develop →
make check binaries test→ PR. - Keep the package layout rules in
CONTRIBUTING.mdin mind: no source files in the repo root, and use the right top-level directory (core,plugins,pkg,internal,client,cmd,api,docs). - PRs must be opened by humans. Any AI-assisted authorship must be reviewed by the human author before submission (see
CONTRIBUTING.md). - Follow the DCO rules from
containerd/project: every commit needsSigned-off-by:.
Pages in this section
Where each kind of code goes
From CONTRIBUTING.md and the actual layout of the v2 tree:
| Directory | What belongs here |
|---|---|
api/ |
Protobuf service and message definitions, generated .pb.go/_grpc.pb.go/_ttrpc.pb.go files |
client/ |
The Go client used by ctr, third-party programs, and the CRI plugin in-process |
cmd/ |
main packages and code only used by a single command |
contrib/ |
External tooling and example shims (snapshot service helpers, ansible, fuzz drivers, …) |
core/ |
Core interface definitions and the most important built-in implementations |
defaults/ |
Per-OS default constants (paths, addresses) |
docs/ |
Markdown documentation |
internal/ |
Daemon-internal packages, not for external import (e.g. internal/cri) |
pkg/ |
Reusable helpers usable by clients (oci, archive, namespaces, ioutil, sys, …) |
plugins/ |
Built-in plugins registered via init() |
script/ |
CI and dev-loop helper scripts |
version/ |
The exported version string (populated by -ldflags from the Makefile) |
Conventions enforced by tooling
make checkrunsgolangci-lintwith the rules in.golangci.yml.make check-protosverifies that any.protochange has been re-generated (make protos). This requiresprotocandbuf.buf format --diff --exit-codeenforces protobuf formatting.- The lychee link checker runs on docs (
.lycheeignoreconfigures exclusions).
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.