Skip to content

代码结构混乱:defect_repair / scheduler 既在顶层又在 agentManager/ 下,且两套实现不一致 #6

@Zld1994

Description

@Zld1994

问题

仓库里同时存在两套同名包,且实现并不相同:

顶层 子包 (在 agentManager/ 下)
defect_repair/__init__.py agentManager/defect_repair/__init__.py
defect_repair/classifier.py (10.9K) agentManager/defect_repair/defect_classifier.py (3.9K)
defect_repair/repair_engine.py (8.5K) (不存在)
defect_repair/repair_strategies.py (18.1K) agentManager/defect_repair/repair_strategies.py (8.6K)
defect_repair/repair_pipeline.py (11.5K) agentManager/defect_repair/repair_pipeline.py (5.9K)
scheduler/resource_manager.py (8.2K) (无 agentManager/scheduler/ 子包)

文件大小相差悬殊,明显是两套不同的实现。

pyproject.tomlpackages.find 把它们都注册了:

include = ["agentManager*", "defect_repair*", "scheduler*"]

引发的问题:

  1. 不清楚哪一套是 source of truth
  2. 测试一会 from defect_repair.classifier import ...,一会 from agentManager.defect_repair.defect_classifier import ...,e2e 还引用了根本不存在的 from agentManager.scheduler.* import ...(见 tests/e2e 完全无法收集:导入了一批不存在的模块和类 #4
  3. tests/unit/defect_repair/__init__.py 与顶层 defect_repair 包名冲突(见 tests/unit/defect_repair/__init__.py 引起 pytest 包名冲突 #3
  4. 任何 pip install -e . 的用户都会同时拿到两份包,import 顺序不确定

解决方案

统一到一种结构。建议:

方案 A(推荐):把所有源码迁到 agentManager/ 命名空间下

  • defect_repair/ 迁移合并到 agentManager/defect_repair/,保留更完整的那一份
  • scheduler/ 迁移到 agentManager/scheduler/
  • 修改所有测试的 import 为 from agentManager.defect_repair.* import ...
  • 修改 pyproject.toml 只保留 include = ["agentManager*"]

方案 B:保留顶层结构,删除 agentManager/defect_repair/ 子包

  • 修改所有 from agentManager.defect_repair.*from defect_repair.*

影响

  • 严重程度:高(影响项目可维护性、可发布性、测试稳定性)
  • 范围:整个 defect_repairscheduler 子系统

Metadata

Metadata

Assignees

No one assigned

    Labels

    phase-2Phase 2 development tasks

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions