--- name: CI/CD 经验 description: Python 版本固定、工具版本一致性、Ruff 忽略规则等 CI/CD 相关经验 type: reference --- # CI/CD 经验 ## Python 版本固定 - 使用 `.python-version` 文件固定 Python 版本,确保 CI 和本地开发环境一致 - uv 会自动读取 `.python-version` - 文件格式:单行版本号,如 `3.12.13` ## 工具版本一致性 - **Server 和 Desktop 的 `pyproject.toml` 必须保持工具版本一致** - 当前统一版本: - mypy: `>=1.19.1` - ruff: `>=0.15.7` - pytest: `>=9.0.2` - 过于宽松的版本约束(如 `ruff>=0.2.0`)会导致 CI 检查结果与本地不一致 ## Ruff 忽略规则分析 | 风险级别 | 规则 | 建议 | |---------|------|------| | 高 | RUF012 (可变类属性) | 应修复,使用 `ClassVar` 注解 | | 高 | ARG001-005 (未使用参数) | Qt signal handler 场景可忽略 | | 中 | I001 (导入排序) | 风格问题,可忽略 | | 低 | RUF001 (中文字符) | 中文注释场景合理忽略 | | 低 | TC001-003 (TYPE_CHECKING) | 仅影响导入优化,可忽略 | | 低 | UP042, UP046 (类型语法) | Python 3.12 新语法,可忽略 |