mega icon indicating copy to clipboard operation
mega copied to clipboard

[r2cn] CL 支持 Draft 状态

Open benjamin-747 opened this issue 2 months ago • 7 comments

[任务] CL 支持Draft 状态

[任务分值] 20 分

[背景描述]

当前 Mega 系统中的 CL(Change List,变更列表)用于承载开发者的代码提交与合并流程。 现有流程中,CL 一经创建,即会进入正常的评审(Reviewer)与合并(Merge)流程。

但在实际开发中,存在以下问题:

当前 CL 状态仅有「Open / Merged / Closed」,无法区分「未准备评审」与「可评审」状态;

[需求描述]

  • 在 CL 模型中新增 “Draft” 状态;

  • 支持开发者在创建或编辑 CL 时设置 “是否为 Draft”;

  • 当 CL 处于 Draft 状态时:

    • Reviewer 无法执行 Approve;
    • Merge Box 禁用 “Confirm Merge” 按钮;
    • UI 上有明显标识;
  • 支持将 Draft 状态转为正常状态(Ready for Review)。

功能模块 行为
创建 CL 用户可选择是否勾选 “Draft”
编辑 CL 支持修改 Draft 状态(Draft ↔ Open)
Reviewer 面板 当 CL 为 Draft 时,不显示 Approve 按钮
Merge Box Draft 状态下禁用 Merge 按钮,并显示提示:“CL 尚未准备评审”
CL 列表 Draft CL 在列表中添加灰色标签 DRAFT
API 过滤 GET /api/cl?status=draft 可筛选 Draft CL

[代码标准]

  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 开源实习计划 - 学生注册与审核

benjamin-747 avatar Nov 03 '25 02:11 benjamin-747

任务创建成功。

r2cn-bot[bot] avatar Nov 03 '25 02:11 r2cn-bot[bot]

/request-assign

WiedersehenM avatar Nov 10 '25 09:11 WiedersehenM

认领失败:你已经存在认领中的任务了。

r2cn-bot[bot] avatar Nov 10 '25 09:11 r2cn-bot[bot]

/request-assign

WiedersehenM avatar Nov 13 '25 12:11 WiedersehenM

认领成功:等待导师审核,请及时联系导师进行审核。

r2cn-bot[bot] avatar Nov 13 '25 12:11 r2cn-bot[bot]

/intern-approve

benjamin-747 avatar Nov 14 '25 03:11 benjamin-747

认领审核成功:已将该任务分配给学生。

r2cn-bot[bot] avatar Nov 14 '25 03:11 r2cn-bot[bot]