文档贡献

贡献

我们接受的补丁。我们拒绝的补丁。

开放的贡献者流程 — 对纪律略有主张,但对你是谁绝无成见。

01

挑选一件事来做

仓库将适合初次上手的议题标记为 good-first-issue。维护者对这些进行分类,以确认范围合理、步骤清晰。若你完成了一个,请保留其标记 — 这能帮到下一个人。

对于较大的工作,请先开启一场讨论。我们会说 好、不,或 暂时不行,原因如下。说不,是尊重你时间的一部分。

02

为你的提交签名

shell# in your local clone
git config user.signingkey YOUR_KEY_FINGERPRINT
git config commit.gpgsign true
git config tag.gpgsign true

我们要求 GPG 签名的提交。这不是为了设卡 — 而是为了让项目供应链保持诚实。若你还没有密钥,仓库 wiki 会引导你生成一个。

签署行
每条提交消息都必须以一条开发者原创声明(Developer Certificate of Origin)签署结尾(Signed-off-by: Name <email>)。使用 git commit -s 来自动添加它。
03

编写一条约定式提交消息

提交消息feat(lsia): emit telemetry on safe-mode entry

Adds a single counter when the immune-system engine enters safe mode.
The counter is hashed-pattern only and respects the privacy gate.

Refs: #842
Signed-off-by: A. Researcher <a@example.org>

对于首行,我们遵循 Conventional Commits 规范。正文解释为什么。页脚引用议题或相关变更。

04

开启拉取请求

拉取请求会经过三道自动化关卡和一次人工评审:

  • 可复现构建检查验证你的补丁不会破坏确定性。
  • 隐私关卡验证未引入任何原始数据路径。
  • 单元与集成测试套件必须通过。
  • 两名评审在合并前批准。涉及安全敏感区域需要一名安全评审。
若隐私关卡失败
停下。仔细重读差异 — 当某条代码路径可能泄露原始标识符(IP、邮箱、IMEI、GPS)时,该测试会失败。修复方案几乎从不是禁用该测试。
05

致谢

每一项被接受的贡献都会出现在下一份发布说明中 — 附带署名,除非你要求匿名。AUTHORS 文件会在你首次合并变更时自动更新。

对于较大的工作 — 一项重大功能、一次审计、一份翻译 — 更新日志条目会点名表彰你。匿名署名是一项寻常请求,而非特殊请求。

06

行为准则

我们遵循 Contributor Covenant 2.1。人身攻击、威胁、人肉搜索和骚扰均属立即移除的违规行为,无需投诉链。全文位于仓库的 CODE_OF_CONDUCT.md 中。