perf(ci): 用 ruff 替换 flake8 - 规则完全对齐,速度提升 10x+ #342

Merged
xiaoxia merged 2 commits from feat/ruff-replace-flake8 into develop 2026-07-15 10:12:26 +08:00
Owner

概述

用 ruff 完全替换 flake8 作为代码质量门禁,规则集完全对齐,零新增阻断。速度提升 10 倍以上。

变更内容

pyproject.toml - ruff 配置对齐 flake8

  1. select 从 E/F/W/B 精简为 E/F/W:移除 B(bugbear),与 flake8 默认规则集完全对齐。B 规则后续修完再加回。

  2. ignore 列表对齐

    • 移除 W503:ruff 0.14+ 已废弃该规则(行为变默认),原配置导致 ruff 解析失败
    • 移除 B008:B 规则集已移除,无需单独 ignore
    • 保留 E203/E501/E302/E402/E722/W291/W293/F401/F403/F405/F841,与 setup.cfg 完全一致
  3. per-file-ignores 补充

    • tests/* 增加 F821(与 .flake8 对齐)
    • 新增 3 个单独排除文件:auth.py / workspaces.py / middleware/auth.py(与 setup.cfg exclude 对齐)
    • packages/ports/* 移除 E704(ruff 0.14+ 已废弃)

requirements-dev.txt

  • flake8==7.3.0 → ruff==0.14.0

ci-cd.yml

  • "Run code quality checks" 步骤中,flake8 命令替换为 ruff check ... --statistics
  • 删除独立的 "Ruff lint (advisory mode)" 步骤(已升级为门禁级,合并入主检查)
  • ruff 现为阻断级(set -eu),跟 flake8 之前一样

验证

  • flake8 全量扫描:0 个错误
  • ruff E/F/W 对齐配置全量扫描:0 个错误
  • 规则完全对齐,零新增阻断

性能收益

工具 全量扫描时间
flake8 ~10-15s
ruff ~1-2s

Validate 阶段整体节省约 10 秒。

后续计划

  • Phase 2:修完 B(bugbear)规则后加入门禁(B904×71 + B007×12 + B011×6)
  • Phase 3:启用 UP(pyupgrade) + SIM(simplify)
  • Phase 4:启用 RET(return) + ARG(unused-args)
## 概述 用 ruff 完全替换 flake8 作为代码质量门禁,规则集完全对齐,零新增阻断。速度提升 10 倍以上。 ## 变更内容 ### pyproject.toml - ruff 配置对齐 flake8 1. **select 从 E/F/W/B 精简为 E/F/W**:移除 B(bugbear),与 flake8 默认规则集完全对齐。B 规则后续修完再加回。 2. **ignore 列表对齐**: - 移除 W503:ruff 0.14+ 已废弃该规则(行为变默认),原配置导致 ruff 解析失败 - 移除 B008:B 规则集已移除,无需单独 ignore - 保留 E203/E501/E302/E402/E722/W291/W293/F401/F403/F405/F841,与 setup.cfg 完全一致 3. **per-file-ignores 补充**: - tests/* 增加 F821(与 .flake8 对齐) - 新增 3 个单独排除文件:auth.py / workspaces.py / middleware/auth.py(与 setup.cfg exclude 对齐) - packages/ports/* 移除 E704(ruff 0.14+ 已废弃) ### requirements-dev.txt - flake8==7.3.0 → ruff==0.14.0 ### ci-cd.yml - "Run code quality checks" 步骤中,flake8 命令替换为 `ruff check ... --statistics` - 删除独立的 "Ruff lint (advisory mode)" 步骤(已升级为门禁级,合并入主检查) - ruff 现为阻断级(set -eu),跟 flake8 之前一样 ## 验证 - ✅ flake8 全量扫描:0 个错误 - ✅ ruff E/F/W 对齐配置全量扫描:0 个错误 - ✅ 规则完全对齐,零新增阻断 ## 性能收益 | 工具 | 全量扫描时间 | |------|-------------| | flake8 | ~10-15s | | ruff | ~1-2s | Validate 阶段整体节省约 10 秒。 ## 后续计划 - **Phase 2**:修完 B(bugbear)规则后加入门禁(B904×71 + B007×12 + B011×6) - **Phase 3**:启用 UP(pyupgrade) + SIM(simplify) - **Phase 4**:启用 RET(return) + ARG(unused-args)
auto-approve-bot approved these changes 2026-07-15 09:18:52 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia force-pushed feat/ruff-replace-flake8 from ce2fffb77b to 245ae6f737 2026-07-15 09:22:26 +08:00 Compare
xiaoxia reviewed 2026-07-15 10:06:12 +08:00
xiaoxia left a comment
Author
Owner

LGTM - ruff 规则与 flake8 完全对齐,三门禁全绿,可以合并

LGTM - ruff 规则与 flake8 完全对齐,三门禁全绿,可以合并
xiaoxia added 2 commits 2026-07-15 10:09:07 +08:00
- pyproject.toml: ruff select 只保留 E/F/W 与 flake8 对齐
- pyproject.toml: 补充 per-file-ignores 完全对齐(tests/* 加 F821,3 个单独排除文件)
- pyproject.toml: 移除 W503/E704(ruff 0.14+ 已废弃,原配置导致解析失败)
- requirements-dev.txt: flake8→ruff==0.14.0
- ci-cd.yml: flake8 步骤替换为 ruff check,删除独立的告警模式 ruff 步骤
- ruff 现为阻断级,速度比 flake8 快 10 倍以上
fix(ci): ruff 扫描范围与 flake8 对齐,排除 scripts 目录
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m18s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 2m42s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m30s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m16s
859c7a6bc0
xiaoxia force-pushed feat/ruff-replace-flake8 from 245ae6f737 to 859c7a6bc0 2026-07-15 10:09:07 +08:00 Compare
xiaoxia merged commit 4397c670d8 into develop 2026-07-15 10:12:26 +08:00
Sign in to join this conversation.