@adlc/ commer- 前置
ADLC相: D2 — 时间拨/扇出力学
冲突预测+并行出票执行的调度时间表. 预想在任何代理运行前合并冲突,验证安全扇出宽度,并发布一个基础-第一合并时间表.
使用量
merge-forecast [options]
Options:
--tickets <path> Path to tickets JSON (default: .adlc/tickets.json)
--width <N> Desired fan-out width; gate fails (exit 2) if > firstWaveWidth
--build-min <X> Mean ticket build time in minutes (for backpressure width)
--merge-min <Y> Mean merge-rebase-regreen time in minutes
--co-change-limit <N> Git log depth for co-change mining (default: 500)
--conflict-threshold <F> Score >= this triggers SEQUENCE verdict (default: 0.5)
--graph-coupling <path> Path to semantic call/symbol graph coupling JSON
--json Machine-readable JSON output
--help Show this help
预测从 git 寄存器根上将树和地雷共同改变,从而得出任何子目录的相同结果; --tickets 财务报告和审定财务报表 --graph-coupling 从工作目录中解析路径。 在 git 寄存器外, 工作目录为根并用警告跳过 .
退出代码
| 代码 | 含义 |
|---|---|
| 0 个 | 出入口——时间表按建议的宽度安全 |
| 1个 | 操作错误 — 糟糕的门票文件, 无法解答的输入 |
| 2个 | 门失败—— --width 超过第一个WaveWidth,或否决/高风险对同时排定 |
信号
每对平行资格的票对(在DAG中都不是对方的祖先)被打出5个信号. 组合分数=单个信号的最大分数.
| 分数 | 信号 | 说明 |
|---|---|---|
| 1.0 国家 | scope-overlap | 难维多 ——门票申报范围重叠. 这些必须连载. |
| 0.8 (简体中文) | namespace-collision | 动态路由片段冲突([pk] 对 [voteKey] 或迁移前缀相撞(drizzle/0005_* 对 migrations/0005_*) (中文(简体) ). |
| 0.7 (简体中文) | graph-coupling | 语义调用/同义图相接(例如:斯潘纳图, mcp__spannercg,或导出图表组合. |
| 0.6 (中文(简体) ) | import-radius | 匹配票A范围从票B范围导入的文件,反之亦然. |
| 0-0.5 (英语) | co-change | 历史共同承诺组合 : pairCount / min(fileCountA, fileCountB) × 0.5。 。 。 . |
或以上对等 --conflict-threshold 得到一个 SEQUENCE 判决。 阈值以下: PARALLEL。 。 。 .
这个 --co-change-limit 选项必须是整数% 1。 当 git 历史输出为0 时, 合并预测输出为描述性警告 warnings。 。 。 .
无瞄准镜或空瞄准镜的入场券发出警告(ticket "<id>" has no scope defined),并且其宣布的范围与寄存器中零文件相匹配的门票发出警告(ticket "<id>" scope matches 0 files in repo) (中文(简体) ). 任何一对涉及无扫描或零相配的入场券均视为 SEQUENCE (分数1.0,信号) unscoped),并被排除在平行波宽计算之外.
宽度分析
- 第一个WaveWidth ——贪婪最大的独立集聚地 电波-1 入场券(所有对子都低于门槛的入场券). 答复 我现在能发送多宽的信号数字
--width被门对面. - 调度窗口 - 同样的计算适用于 每个 挥出最宽的一面 答复 这个时间表能走多远对于一个基金会第一DAG, 第1波持有单一的票,所以
firstWaveWidth是 1 时scheduleWidth报告背后的粉丝. - 认证窗口 —— 说 折旧的别名
firstWaveWidth,保留给现有消费者。 追踪到一号波scheduleWidth。 。 。 . - 后压风向 —— 说
round(buildMin / mergeMin)当两旗被授予时. 从整流器-行道吞吐量中衍生出来:如果建成速度快于并吞吸收它们,队列深度化合物. - 建议 宽度 —— 说
min(firstWaveWidth, backpressureWidth?, --width?)。 。 。 .
时间表
时刻表取自由卡恩地貌波的车票DAG. 同一波中的所有门票都准备同时建造(它们的依赖性在更早的波浪中完成). 合并顺序是 基础第一 (线粒体依赖性在受抚养人之前合并;在一级之内,先排位后。).
实例
# Basic forecast (auto-detect .adlc/tickets.json)
merge-forecast
# Gate against fan-out width
merge-forecast --width 4
# With backpressure — 20-min builds, 4-min merges
merge-forecast --width 5 --build-min 20 --merge-min 4
# JSON output for orchestrators
merge-forecast --json
# Custom tickets path + looser threshold
merge-forecast --tickets plan/tickets.json --conflict-threshold 0.7
# Deep co-change history
merge-forecast --co-change-limit 1000
与兄弟姐妹工具的关系
- 上游: 车票由
model-router(P2阶段)。 此工具在代理运行前验证分区质量 . - 下游地区数字 :
rails-guard执行合同铁路merge-forecast确定冲突表面. - 补充: 在完成平行分支之后,
merge-forecast可针对更新后的主干线重新运行以确认再基安全.
核心差距
@adlc/core 提供 activeTickets 过滤已完成的门票( 投放完成)
门票和条纹边缘指向它们,使剩下的DAG有效)所以
积压的清点器没有安排已完成的工作.