参与贡献
Tanrei 为什么不接受外部贡献,如何报告 bug 或提问,以及规则写在哪里。
不接受外部贡献
仓库已在
github.com/chnotchy/tanrei 公开,好让任何人都能读到 Tanrei 是怎样做出来的。所有修改都由维护者进行:来自外部的拉取请求(Pull Request)会不经合并直接关闭,也不接受新组件或新令牌的提议。原因在于供应链的安全:Tanrei 是运行在别人产品里的代码,每一个来自外部的修改,都是一条让维护者没有写过的代码进入这些产品的通道;鉴于当前的安全形势,本项目不承担这种风险。报告 bug 或提问,请
新建一个 issue。安全问题请按仓库中 SECURITY.md 的说明私下报告,切勿写在 issue 里。
仓库根目录的 AGENTS.md 是修改仓库的人(无论是人还是 AI)的权威指南。它很短,先读一遍可以节省时间。每个包和源码目录都可以再放一份嵌套的 AGENTS.md 来补充本地规则;以最近的那份为准,但任何一份都不得削弱根目录的规则。根目录的 CONTRIBUTING.md 是它的详细版本。
篇幅更长的资料放在仓库的 docs/ 目录下:架构概览,以及说明谁决定什么的治理规则。
每一次修改都遵循以下步骤,无论由谁来做。
- 从唯一可信来源开始。 对组件公开接口的修改从
specs/开始,对设计值的修改从tokens/开始。平台代码随后跟进。 - 在本地运行检查。 依次运行
pnpm validate、pnpm generate和pnpm check。如果漂移检查失败,请重新生成;不要去编辑生成的文件。 - 如实反映各平台的状态。 如果某个平台没能完成,就让它的状态保持真实情况。状态矩阵由仓库生成,不得声称比实际存在的更多。
- 添加 changeset。 凡是用户看得到的修改都要添加,并使用 Conventional Commits(
feat(web): …、fix(tokens): …、docs: …)。
- 在组件内部硬编码颜色、半径、字体排印、间距、动效或不透明度。
- 为了让测试通过而更新快照基准图。
- 放宽对比度或无障碍阈值。
- 从其他设计系统抄来的文档文字。Tanrei 的所有文字都是原创的。
本站位于 apps/docs/。正文是手写的 MDX:英文是源文,每个页面都翻译成本站的其他语言(语言列表,以及译文如何记录自己译自哪个版本的源文,见 apps/docs/i18n/README.md)。凡是能由规格、令牌文件或状态矩阵提供的表格,都从这些数据渲染而来,绝不手工录入。本地规则见 apps/docs/AGENTS.md。