Open-Source Wikis

/

containerd

/

How to contribute

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

  1. Fork → branch → develop → make check binaries test → PR.
  2. Keep the package layout rules in CONTRIBUTING.md in mind: no source files in the repo root, and use the right top-level directory (core, plugins, pkg, internal, client, cmd, api, docs).
  3. PRs must be opened by humans. Any AI-assisted authorship must be reviewed by the human author before submission (see CONTRIBUTING.md).
  4. Follow the DCO rules from containerd/project: every commit needs Signed-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 check runs golangci-lint with the rules in .golangci.yml.
  • make check-protos verifies that any .proto change has been re-generated (make protos). This requires protoc and buf.
  • buf format --diff --exit-code enforces protobuf formatting.
  • The lychee link checker runs on docs (.lycheeignore configures exclusions).

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

How to contribute – containerd wiki | Factory