Skip to content

[r2cn] 基于新算法统一构建范围计算,并升级 Orion Server API 与 Mono 调用逻辑 #1743

@benjamin-747

Description

@benjamin-747

[任务] 基于新算法统一构建范围计算,并升级 Orion Server API 与 Mono 调用逻辑

[任务分值] 30 分

[背景描述]

在当前 Mega Monorepo 的构建流程中,构建范围(Build Scope / Targets) 的确定存在明显的历史遗留问题:

1.Mono 侧承担了过多构建范围计算逻辑

  • Mono 在接收到 CL / 文件变更后:
    • 主动在仓库中 扫描 BUCK 文件
    • 通过 BUCK 文件所在目录 反推出构建根目录
  • 这种方式本质上是:
    • “从文件系统结构猜测构建范围”

2.构建范围计算方式不精确

  • 仅根据 BUCK 文件所在目录:
    • 容易将构建范围扩大到整个子树
    • 无法准确定位到真正受影响的 target
  • 在基础库变更场景下:
    • 经常导致 全量或超大范围构建

3.Orion 与 Mono 的职责边界需要重新梳理

  • 目前:

    • Mono:负责“算构建范围”
    • Orion:只负责“触发构建”
  • 目标状态应为:

    • Mono:提供变更上下文
    • Orion:基于统一算法确定最终构建范围并执行

因此,需要对现有流程进行一次系统性调整:

  • 移除 Mono 侧基于 BUCK 文件的构建范围推断
  • 升级 Orion Server 的 API,以支持新的构建范围输入与输出
  • 同步更新 Mono 调用 Orion 时的行为与数据结构

[需求描述]

  1. 构建范围计算职责调整

目标原则
• 构建范围的“最终决定权”应集中在 Orion Server
• Mono 不再进行 BUCK 文件扫描与构建目录推断

  1. Orion Server API 升级

需要对 Orion Server 提供的构建触发 API 进行升级( breaking changes )

  1. Mono 调用逻辑更新
  • 移除 Mono 中:
    • 基于 BUCK 文件的扫描逻辑
    • 构建目录推断代码
  • 调整为:
    • 直接调用 Orion 新 API
    • 传递最小、准确的上下文数据

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;

[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。

  1. Quanyi Ma [email protected]
  2. Tianxing Ye [email protected]

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务r2cn 开源实习计划 - 学生注册与审核

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions