贡献指南
欢迎提交 Issue 和 Pull Request!以下是参与贡献的流程。
分支策略
| 分支 | 用途 |
|---|---|
main | 稳定主分支,触发自动发版 |
develop | 开发集成分支(可选) |
feat/* | 功能开发分支 |
fix/* | Bug 修复分支 |
Commit 规范
提交信息使用中文,遵循 Conventional Commits 格式(用于 python-semantic-release 自动解析):
<type>: <描述>
<可选正文>Type 类型
| Type | 用途 | 影响版本 |
|---|---|---|
feat | 新功能 | MINOR(0.7.0 → 0.8.0) |
fix | Bug 修复 | PATCH(0.7.0 → 0.7.1) |
perf | 性能优化 | PATCH(0.7.0 → 0.7.1) |
docs | 文档更新 | 不触发发版 |
refactor | 重构 | 不触发发版 |
test | 测试 | 不触发发版 |
chore | 杂务 | 不触发发版 |
ci | CI 配置 | 不触发发版 |
style | 代码风格 | 不触发发版 |
示例
bash
feat: 新增生产计划甘特图视图
fix: 修复安装费计算使用 adjusted_price 而非实时卖出价
docs: 更新 API 参考文档⚠️ 版本影响:
feat触发 MINOR bump,fix/perf触发 PATCH bump,其余类型不触发发版;大版本由发布者手动决定。
Pull Request 流程
- Fork 或创建功能分支
- 开发并确保代码质量:bash
ruff check . --fix ruff format . mypy . --ignore-missing-imports scripts/run_tests.sh # validate:业务/DB/计算,跳过 Qt - 提交 PR,使用中文描述变更内容
- CI 自动运行全部检查(ruff + mypy + pytest + 版本校验)
- 等待 Review 后合并
代码质量要求
- Ruff:零 lint 错误 + 格式化通过
- Mypy:类型检查通过
- 测试:按 CLAUDE.md 的「测试判定表」决定写不写 —— 不是每次改动都要补测试。 本项目不设覆盖率门槛(原先此处的「> 70%」无任何工具执行,已删)。
- 提交前:
ruff check . && ruff format --check . && mypy . && scripts/run_tests.sh target(full的时机由用户定,不主动跑)
开发环境搭建
详见 开发环境。
许可证
本项目基于 Apache License 2.0 开源。提交 PR 即表示同意你的贡献在同协议下发布。