贡献指南
感谢您有兴趣为此项目做出贡献!本项目遵循规范驱动开发(SDD),这意味着所有代码变更都必须由 /specs 目录中的规范指导。
开发流程
- Fork 本仓库
- 创建 功能分支:
git checkout -b feature/your-feature - 审查或更新
/specs/中的规范(编码前) - 实现 遵循规范的变更
- 测试 您的变更
- 提交 使用约定式提交
- 推送 并创建 Pull Request
开发环境设置
前置条件
- Node.js 18+
- npm 9+
安装
bash
# 克隆您的 fork
git clone https://github.com/YOUR_USERNAME/tiny-dl-inference.git
cd tiny-dl-inference
# 安装依赖
npm install
# 验证设置
npm run typecheck
npm test1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
构建命令
bash
# 类型检查
npm run typecheck
# 运行测试
npm test
# 运行覆盖率测试
npm run test:coverage
# 构建分发版本
npm run build1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
代码风格
TypeScript
- 严格模式:所有代码必须通过
strict: true - 显式类型:为导出函数添加返回类型
- 禁止
any:使用unknown配合类型收窄代替
格式化
遵循 .editorconfig:
ini
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true1
2
3
4
5
6
2
3
4
5
6
命名约定
| 类型 | 约定 | 示例 |
|---|---|---|
| 类 | PascalCase | Conv2dOperator |
| 接口 | PascalCase | OperatorParams |
| 函数 | camelCase | computeOutputShape |
| 常量 | SCREAMING_SNAKE_CASE | FLT_MIN |
提交信息
遵循 约定式提交:
feat: 添加 BatchNorm 算子
fix: 修正 Conv2d 中的填充计算
docs: 更新 API 参考
test: 为 Dense 算子添加属性测试
refactor: 简化着色器编译
perf: 优化 NHWC 内存布局1
2
3
4
5
6
2
3
4
5
6
测试指南
测试要求
- 新算子:必须包含属性测试
- Bug 修复:必须包含回归测试
- 所有变更:现有测试必须通过
Pull Request 流程
提交前
- 运行所有检查:bash
npm run typecheck npm test npm run build1
2
3 - 为新功能添加测试
- 如有需要更新文档
PR 描述模板
markdown
## 描述
变更的简要说明
## 变更类型
- [ ] Bug 修复(非破坏性)
- [ ] 新功能(非破坏性)
- [ ] 破坏性变更
- [ ] 文档更新
## 测试
- [ ] 添加了单元测试
- [ ] 所有测试通过1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
完整贡献指南请参见 GitHub CONTRIBUTING.md。