参与贡献
欢迎为 CocoCat 贡献代码、文档或想法。
工作流程
- Fork 仓库:点击 GitHub 上的 Fork 按钮
- 创建分支:
git checkout -b feature/my-feature - 开发:遵循代码规范
- 测试:确保测试通过
- 提交 PR:描述变更内容和动机
代码规范
通用
- 模仿现有模式:在修改前查看同类代码的风格和模式
- 遵循工具命名:Tool 名使用
snake_case,类名使用PascalCase - 不要添加注释:除非代码的意图不够明显
- 不要文档化:除非用户明确要求,不创建 README 或文档文件
Python
- 遵循 PEP 8
- 类型注解:所有函数参数和返回值添加类型 hint
- 导入顺序:标准库 → 第三方 → 本地模块
- 使用
pathlib.Path而非os.path - 异常处理:捕获具体异常而非
except: - f-string 用于字符串格式化
TypeScript/React
- 使用 TypeScript strict 模式
- 函数组件 + Hooks
- Tailwind CSS 样式
- shadcn/ui 组件库
测试要求
- Bug 修复:添加回归测试
- 新功能:添加至少一个测试用例
- Python 测试:使用 pytest,位于
tests/
运行测试
bash
# Python
python -m pytest tests/ -v
# Lint
# Python: ruff check .
# TypeScript: cd web-ui && npx tsc --noEmit提交 PR 前检查
- [ ] 代码通过 lint 检查
- [ ] 测试通过
- [ ] 无硬编码密钥或敏感信息
- [ ] 新增功能有对应的测试
- [ ] 遵循现有代码风格
提交信息格式
bash
feat: 新功能描述
fix: Bug 修复描述
refactor: 重构描述
docs: 文档变更
test: 测试变更
chore: 构建/工具变更分支策略
main:稳定版本,通过 CI 检查feature/*:功能开发分支fix/*:Bug 修复分支- Squash merge 到 main 保持历史整洁