本文档为贡献 etcd 项目提供了全面的指南。它解释了从查找 issue 到提交 pull request 的贡献流程,以及社区结构和对贡献者的期望。有关构建和测试 etcd 的信息,请参阅 构建与测试。
在贡献 etcd 之前,您应该熟悉该项目、其架构和开发工作流程。
要有效地为 etcd 做贡献,您首先应该了解该项目
有两种支持的设置开发环境的选项。
这是 etcd 的原始开发环境。
makeprotoc (v3.20.3)yamllintjqxzmake build 验证安装。对于 etcd v3.6+,您可以使用 devcontainer,它提供了自动化的设置。
这种方法提供了一个具有所有必需工具的完全配置的环境。
etcd 项目在 GitHub issue tracker 中跟踪所有工作。有几种方法可以找到需要处理的 issue:
为 etcd 贡献的通用工作流程遵循以下步骤:
在实施更改时,请遵循以下指南:
make verify 来执行所有检查。make fix 来修复所有检查。make test-unit 来运行单元测试。make test-integration 来运行集成测试。make test-e2e 来运行端到端测试。etcd 遵循特定的提交消息约定。
etcdserver:)。Signed-off-by: firstname lastname <email@example.com>。示例
etcdserver: add grpc interceptor to log info on incoming requests
To improve debuggability of etcd v3. Added a grpc interceptor to log
info on incoming requests to etcd server. The log output includes
remote client info, request content (with value field redacted), request
handling latency, response size, etc. Uses zap logger if available,
otherwise uses capnslog.
Signed-off-by: FirstName LastName <github@github.com>
创建拉取请求时
在请求审查之前
needs-ok-to-test 标签,则组织成员需要评论 /ok-to-test。etcd 项目拥有一个定义完善的社区结构,包含各种角色和职责。
| 角色 | 职责 | 要求 | 由...定义 |
|---|---|---|---|
| 成员 | 活跃贡献者 | 多次贡献,由 2 名审查者赞助 | etcd GitHub 组织成员 |
| 审查者 | 审查贡献。 | 审查和作者身份的历史记录,作为成员 3 个月以上。 | 查看 OWNERS 文件中的审查者条目。 |
| 维护者 | 设定方向和优先级 | 展示责任感和技术判断力。 | 查看 OWNERS 文件中的批准者条目。 |
维护者是项目长期成功方面表现出承诺的贡献者。他们进行和批准技术设计决策,设定技术方向,定义里程碑,并确保项目的持续健康。
当前维护者列在 OWNERS 文件中。
来源: Documentation/contributor-guide/community-membership.md1-170 和 OWNERS1-13
etcd 项目使用标签来指示 issues 的常见属性,例如 area、type 和 priority。
Triage issues 的步骤:
type/bug、type/feature、type/flake 等)。area/* 标签定义受影响的区域。priority/* 标签确定 issue 的优先级。good first issue 或 help wanted 标签。来源: Documentation/contributor-guide/triage_issues.md1-193
有效管理 pull request 对项目的健康至关重要。
/ok-to-test 来确保 PR 上的测试已运行,前提是 PR 具有 needs-ok-to-test 标签来源: Documentation/contributor-guide/triage_prs.md1-33
etcd 遵循滚动发布模型,支持两个稳定版本
release- 前缀的分支都是稳定分支来源: Documentation/contributor-guide/branch_management.md1-26
etcd 项目有一个专门的发布管理团队,负责
发布流程包括:
来源: Documentation/contributor-guide/release.md1-132
etcd 中的功能遵循一个分阶段的方法,类似于 Kubernetes
| 阶段 | 特性 | 默认启用 | 支持策略 |
|---|---|---|---|
| Alpha | 可能存在 bug,测试较少 | 否 | 可能在不通知的情况下弃用 |
| Beta | 在发布版本中受支持 | 是 | 必须遵循弃用策略 |
| GA (普遍可用) | 完全支持 | 始终启用 | 必须遵循弃用策略 |
新功能通常作为 Alpha 功能添加,遵循以下步骤
来源: Documentation/contributor-guide/features.md1-87
etcd 使用开发者来源证书 (DCO) 来进行贡献。通过贡献,您证明:
您必须通过 git commit --signoff 来签署您的提交,以表示同意。
来源: DCO1-37
etcd 社区定期举行会议
联系渠道
来源: README.md139-161