Skip to content

参与贡献

欢迎为 CocoCat 贡献代码、文档或想法。

工作流程

  1. Fork 仓库:点击 GitHub 上的 Fork 按钮
  2. 创建分支git checkout -b feature/my-feature
  3. 开发:遵循代码规范
  4. 测试:确保测试通过
  5. 提交 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 保持历史整洁

基于 MIT 协议开源