From 6ca1ce8449a2bb49899eda933d67bce1e54e2ef6 Mon Sep 17 00:00:00 2001 From: functionstackx <47992694+functionstackx@users.noreply.github.com> Date: Mon, 28 Sep 2026 23:00:57 -0400 Subject: [PATCH] chore(ci): remove unused sweep-enabled label from workflows and docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the bare `sweep-enabled` PR label from all workflow conditions, label lists, Python label sets, tests, and documentation. The trimmed- sweep behavior it activated (--trim-conc) is retained in the matrix generators and e2e-tests.yml workflow_dispatch input for manual use; only the label-driven path is removed. 移除所有工作流条件、标签列表、Python 标签集合、测试和文档中未使用的 `sweep-enabled` PR 标签。该标签激活的精简扫描行为(--trim-conc)在矩阵 生成器和 e2e-tests.yml 的 workflow_dispatch 输入中保留供手动使用; 仅移除标签驱动路径。 Co-Authored-By: Claude Opus 5.5 (1M context) --- .github/AGENT_OPERATIONS.md | 1 - .github/workflows/README.md | 3 +-- .github/workflows/run-sweep.yml | 17 +---------------- .github/workflows/trusted-external-sweep.yml | 5 ++--- inferencex-e2e/docs/ci-procedures.md | 7 +++---- inferencex-e2e/docs/ci-procedures_zh.md | 7 +++---- inferencex-e2e/docs/testing.md | 4 ++-- inferencex-e2e/docs/testing_zh.md | 4 ++-- inferencex-e2e/infx/klaud/lifecycle.py | 1 - .../workflows/test_acknowledge_sweep_reuse.py | 2 +- .../workflows/test_find_reusable_sweep_run.py | 2 +- .../tests/workflows/test_merge_with_reuse.py | 2 +- .../infx/tests/workflows/test_stage_results.py | 6 +++--- .../infx/workflows/merge_with_reuse.py | 1 - 14 files changed, 20 insertions(+), 42 deletions(-) diff --git a/.github/AGENT_OPERATIONS.md b/.github/AGENT_OPERATIONS.md index 3e3d93c08c..3b0c8ae2e3 100644 --- a/.github/AGENT_OPERATIONS.md +++ b/.github/AGENT_OPERATIONS.md @@ -28,7 +28,6 @@ Write natural technical Chinese used by ML infrastructure engineers. Preserve mo A PR sweep requires exactly one primary label: -- `sweep-enabled`: trim every parallelism configuration to its lowest concurrency. Use for most lightweight validation. - `full-sweep-fail-fast`: canary-gated full sweep with matrix-scoped fail-fast. Recommended for image bumps, recipe changes, bring-up, and other full sweeps. - `full-sweep-enabled`: canary-gated full sweep without fail-fast. Use when a flaky job must not cancel its matrix's in-flight work. - `full-sweep-fail-fast-no-canary`: full, matrix-scoped fail-fast without the canary. Use when the canary is flaky or unrepresentative. diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 9aabf8460d..e178f1e8d6 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -219,8 +219,7 @@ selects the latest successful eligible run automatically; bare `/use` is rejecte Both names share authorization, validation, and reactions. Source validation checks identity and artifacts, not full-matrix coverage. -A successful `sweep-enabled` trim sweep can also be selected automatically; -reusing it publishes only its recorded points on `main`. Acceptance does not +Acceptance does not certify a green full sweep. Verify coverage and pin the run ID when a full sweep is required by the review process. diff --git a/.github/workflows/run-sweep.yml b/.github/workflows/run-sweep.yml index b7d4a0b2e5..c3d5c0b3e0 100644 --- a/.github/workflows/run-sweep.yml +++ b/.github/workflows/run-sweep.yml @@ -6,7 +6,6 @@ concurrency: sweep-${{ github.event.pull_request.number || github.sha }}-${{ github.event_name == 'pull_request' && (github.event.action == 'labeled' || github.event.action == 'unlabeled') && - github.event.label.name != 'sweep-enabled' && github.event.label.name != 'full-sweep-enabled' && github.event.label.name != 'non-canary-full-sweep-enabled' && github.event.label.name != 'full-sweep-fail-fast' && @@ -58,7 +57,6 @@ jobs: github.event.pull_request.head.repo.full_name == github.repository && ( (github.event.action != 'labeled' && github.event.action != 'unlabeled') || - github.event.label.name == 'sweep-enabled' || github.event.label.name == 'full-sweep-enabled' || github.event.label.name == 'non-canary-full-sweep-enabled' || github.event.label.name == 'full-sweep-fail-fast' || @@ -83,7 +81,6 @@ jobs: [ .[] | select( - . == "sweep-enabled" or . == "full-sweep-enabled" or . == "non-canary-full-sweep-enabled" or . == "full-sweep-fail-fast" or @@ -209,7 +206,6 @@ jobs: github.event.pull_request.head.repo.full_name == github.repository && needs.check-changelog.outputs.skip-pr-sweep != 'true' && ( - contains(github.event.pull_request.labels.*.name, 'sweep-enabled') || contains(github.event.pull_request.labels.*.name, 'full-sweep-enabled') || contains(github.event.pull_request.labels.*.name, 'non-canary-full-sweep-enabled') || contains(github.event.pull_request.labels.*.name, 'full-sweep-fail-fast') || @@ -217,7 +213,6 @@ jobs: ) && ( (github.event.action != 'labeled' && github.event.action != 'unlabeled') || - github.event.label.name == 'sweep-enabled' || github.event.label.name == 'full-sweep-enabled' || github.event.label.name == 'non-canary-full-sweep-enabled' || github.event.label.name == 'full-sweep-fail-fast' || @@ -344,11 +339,6 @@ jobs: GH_TOKEN: ${{ github.token }} PR_LABELS: ${{ toJson(github.event.pull_request.labels.*.name) }} PRIORITY_CRITERIA: ${{ steps.priority-criteria.outputs.criteria || '' }} - TRIM_CONC: >- - ${{ - github.event_name == 'pull_request' && - contains(github.event.pull_request.labels.*.name, 'sweep-enabled') - }} ALL_EVALS: >- ${{ github.event_name == 'pull_request' && @@ -377,9 +367,6 @@ jobs: --base-ref "$BASE_REF" --head-ref "$HEAD_REF" ) - if [ "$TRIM_CONC" = "true" ]; then - CMD+=(--trim-conc) - fi if [ "$ALL_EVALS" = "true" ]; then CMD+=(--all-evals) fi @@ -935,7 +922,7 @@ jobs: matrix = json.loads(os.environ['SWEEP_MATRIX']) labels = set(json.loads(os.environ['SWEEP_LABELS']) or []) sweep_labels = labels & { - 'sweep-enabled', 'full-sweep-enabled', 'non-canary-full-sweep-enabled', + 'full-sweep-enabled', 'non-canary-full-sweep-enabled', 'full-sweep-fail-fast', 'full-sweep-fail-fast-no-canary', 'all-evals', 'evals-only', 'agentx-fast', } @@ -1203,7 +1190,6 @@ jobs: needs.setup.result == 'success' && github.event_name == 'pull_request' && ( - contains(github.event.pull_request.labels.*.name, 'sweep-enabled') || contains(github.event.pull_request.labels.*.name, 'full-sweep-enabled') || contains(github.event.pull_request.labels.*.name, 'non-canary-full-sweep-enabled') || contains(github.event.pull_request.labels.*.name, 'full-sweep-fail-fast') || @@ -1211,7 +1197,6 @@ jobs: ) && ( (github.event.action != 'labeled' && github.event.action != 'unlabeled') || - github.event.label.name == 'sweep-enabled' || github.event.label.name == 'full-sweep-enabled' || github.event.label.name == 'non-canary-full-sweep-enabled' || github.event.label.name == 'full-sweep-fail-fast' || diff --git a/.github/workflows/trusted-external-sweep.yml b/.github/workflows/trusted-external-sweep.yml index 62c65af333..535a3c0539 100644 --- a/.github/workflows/trusted-external-sweep.yml +++ b/.github/workflows/trusted-external-sweep.yml @@ -26,7 +26,7 @@ jobs: if: >- github.event.pull_request.head.repo.full_name != github.repository && contains( - fromJson('["sweep-enabled","full-sweep-enabled","non-canary-full-sweep-enabled","full-sweep-fail-fast","full-sweep-fail-fast-no-canary"]'), + fromJson('["full-sweep-enabled","non-canary-full-sweep-enabled","full-sweep-fail-fast","full-sweep-fail-fast-no-canary"]'), github.event.label.name ) runs-on: ubuntu-latest @@ -37,7 +37,6 @@ jobs: github-token: ${{ github.token }} script: | const primaryLabels = new Set([ - 'sweep-enabled', 'full-sweep-enabled', 'non-canary-full-sweep-enabled', 'full-sweep-fail-fast', @@ -108,7 +107,7 @@ jobs: 'ref': pull.merge_commit_sha, 'changelog-base-ref': pull.base.sha, 'changelog-head-ref': pull.head.sha, - 'trim-conc': String(primary[0] === 'sweep-enabled'), + 'trim-conc': 'false', 'all-evals': String(labels.includes('all-evals')), 'evals-only': String(labels.includes('evals-only')), 'fail-fast': String(primary[0].includes('fail-fast')), diff --git a/inferencex-e2e/docs/ci-procedures.md b/inferencex-e2e/docs/ci-procedures.md index f9323105e0..6f9f48e767 100644 --- a/inferencex-e2e/docs/ci-procedures.md +++ b/inferencex-e2e/docs/ci-procedures.md @@ -236,7 +236,6 @@ The same-repository check applies before checking out PR code in changelog valid | Primary label | Matrix scope | Canary | Matrix fail-fast | | --- | --- | --- | --- | -| `sweep-enabled` | Changelog matrix trimmed to the minimum concurrency per configuration | No | No | | `full-sweep-fail-fast` | Full changelog matrix | Yes | Yes. Recommended full-sweep default | | `full-sweep-enabled` | Full changelog matrix | Yes | No. Use when every matrix point must continue | | `full-sweep-fail-fast-no-canary` | Full changelog matrix | No | Yes | @@ -256,7 +255,7 @@ Changing a recognized primary or modifier label shares the active sweep concurre Canary and fail-fast solve different problems: -1. A canary is created only for `full-sweep-enabled` or `full-sweep-fail-fast` PRs. No-canary labels and `sweep-enabled` skip it. +1. A canary is created only for `full-sweep-enabled` or `full-sweep-fail-fast` PRs. No-canary labels skip it. 2. Canary selection first considers single-node fixed-sequence `1k1k` and `8k1k` entries and single-node AgentX entries. If none are eligible, it considers multi-node AgentX entries. It excludes eval entries, chooses the lowest-concurrency candidate, runs it with the matching single-node or multi-node workflow, and removes it from the later matrix. 3. If there is no eligible candidate, the canary is skipped. Otherwise all benchmark/eval matrices require the canary to succeed. A failed canary prevents their fan-out. 4. `full-sweep-fail-fast` and `full-sweep-fail-fast-no-canary` set `strategy.fail-fast: true` separately on each matrix job family. The first failing point cancels queued/in-progress siblings in that matrix family. It is not one global kill switch for every independent family. @@ -373,7 +372,7 @@ Each request, including all its pages, has a 60-second timeout. A request is stageable only when all of the following hold: - The commenter has `write`, `maintain`, or `admin` repository permission. -- The PR currently has one of the four full-sweep labels. `sweep-enabled` is not enough. +- The PR currently has one of the four full-sweep labels (`full-sweep-enabled`, `non-canary-full-sweep-enabled`, `full-sweep-fail-fast`, or `full-sweep-fail-fast-no-canary`). - The candidate is a completed `pull_request` run of `run-sweep.yml`, created while a full-sweep label was active, with conclusion `success`, `failure`, or `cancelled`. - The candidate is associated with the PR under the workflow's current-head/historical-pin rules. - Unexpired `changelog-metadata` and at least one of `results_bmk`, `eval_results_all`, or `bmk_agentic_*` exist. Failed/cancelled runs may therefore stage useful partial data, but empty or metadata-only runs cannot. @@ -403,7 +402,7 @@ Reuse prevents an approved full PR sweep from being rerun on `main`. It is not a 4. An `OWNER`, `MEMBER`, or `COLLABORATOR` authorizes reuse with `/use `. Keep the command and required run ID on one line. The legacy `/reuse-sweep-run ` remains equivalent; bare `/reuse-sweep-run` selects automatically. Both names share authorization, validation, and reactions. The newest authorized matching command across both names wins. 5. Unpinned selection requires the latest eligible source run to be successful. A pinned run is an explicit maintainer decision and may have conclusion `success`, `failure`, or `cancelled`. Downstream ingestion keeps only available/valid rows, so report it as partial rather than green. -Reuse validation checks source identity and available artifacts, not full-matrix coverage. A successful `sweep-enabled` (trimmed) source is eligible, including for automatic selection, and publishes only its recorded points on `main`. Acceptance does not certify a green full sweep or satisfy that review requirement. To reuse a full sweep specifically, verify its coverage and pin its run ID. +Reuse validation checks source identity and available artifacts, not full-matrix coverage. Acceptance does not certify a green full sweep or satisfy that review requirement. To reuse a full sweep specifically, verify its coverage and pin its run ID. The comment starts a lightweight validation workflow using default-branch code and `GITHUB_TOKEN`. It adds 👍 to the original comment when accepted, or 👎 when rejected; the Actions run summary explains a rejection. It posts no separate comment and starts no GPU work. Editing the command clears the bot's old reaction and checks the new request. Human reactions are preserved; the newest authorized command still takes precedence. diff --git a/inferencex-e2e/docs/ci-procedures_zh.md b/inferencex-e2e/docs/ci-procedures_zh.md index 6023fe0f45..df8dd5b996 100644 --- a/inferencex-e2e/docs/ci-procedures_zh.md +++ b/inferencex-e2e/docs/ci-procedures_zh.md @@ -228,7 +228,6 @@ B200 Kimi 配方采用 DCP8,且关闭 Mooncake Offload。Master Config 记录 | 主标签 | 矩阵范围 | Canary | 矩阵 Fail-fast | | --- | --- | --- | --- | -| `sweep-enabled` | Changelog 矩阵裁剪为每个配置的最低并发 | 无 | 无 | | `full-sweep-fail-fast` | 完整 Changelog 矩阵 | 有 | 有;推荐的完整扫描默认值 | | `full-sweep-enabled` | 完整 Changelog 矩阵 | 有 | 无;需要每个矩阵点继续运行时使用 | | `full-sweep-fail-fast-no-canary` | 完整 Changelog 矩阵 | 无 | 有 | @@ -248,7 +247,7 @@ B200 Kimi 配方采用 DCP8,且关闭 Mooncake Offload。Master Config 记录 Canary 和 Fail-fast 解决不同问题: -1. 只有使用 `full-sweep-enabled` 或 `full-sweep-fail-fast` 的 PR 才创建 Canary。No-canary 标签和 `sweep-enabled` 会跳过它。 +1. 只有使用 `full-sweep-enabled` 或 `full-sweep-fail-fast` 的 PR 才创建 Canary。No-canary 标签会跳过它。 2. Canary 首先检查单节点固定序列 `1k1k`、`8k1k` 和单节点 AgentX 条目;若没有合格条目,再检查多节点 AgentX 条目。它排除 Eval 条目,选取最低并发候选,使用对应的单节点或多节点工作流运行,并从后续矩阵移除该条目。 3. 如果没有合格候选,Canary 会被跳过。否则所有 Benchmark/Eval 矩阵都要求 Canary 成功;Canary 失败会阻止其扇出。 4. `full-sweep-fail-fast` 与 `full-sweep-fail-fast-no-canary` 会分别为每个矩阵 Job Family 设置 `strategy.fail-fast: true`。首个失败点会取消同一矩阵 Family 中排队或运行中的兄弟项;它不是跨所有独立 Family 的全局 Kill Switch。 @@ -355,7 +354,7 @@ Klaud 和恢复工具继续使用现有的 `gh` 认证。GitHub CLI 跟随分页 请求只有在全部满足下列条件时才可暂存: - 评论者具有仓库 `write`、`maintain` 或 `admin` 权限。 -- PR 当前具有四个完整扫描标签之一;`sweep-enabled` 不够。 +- PR 当前具有四个完整扫描标签之一(`full-sweep-enabled`、`non-canary-full-sweep-enabled`、`full-sweep-fail-fast` 或 `full-sweep-fail-fast-no-canary`)。 - 候选是已结束的 PR `run-sweep.yml` Run,创建时完整扫描标签处于活动状态,结论为 `success`、`failure` 或 `cancelled`。 - 候选按照 Workflow 当前 Head/历史 Pin 规则与该 PR 关联。 - 存在未过期的 `changelog-metadata`,并且至少存在 `results_bmk`、`eval_results_all` 或 `bmk_agentic_*` 之一。因此失败/取消的 Run 可以暂存有用的部分数据,但空 Run 或仅有 Metadata 的 Run 不行。 @@ -385,7 +384,7 @@ Klaud 和恢复工具继续使用现有的 `gh` 认证。GitHub CLI 跟随分页 4. `OWNER`、`MEMBER` 或 `COLLABORATOR` 通过 `/use ` 授权复用。必须提供 Run ID,并与命令放在同一行。原有的 `/reuse-sweep-run ` 仍然等效;不带 ID 的 `/reuse-sweep-run` 会自动选择源 Run。两种命令使用相同的授权、验证和表态规则,并以两者中最新的合格授权命令为准。 5. 不指定 ID 时,自动选择要求最新的合格源 Run 成功。指定 Run 是维护者的明确决定,允许结论为 `success`、`failure` 或 `cancelled`;下游入库只保留存在且有效的行,因此应将其报告为部分数据,而不是绿色 Run。 -复用验证检查源 Run 的身份和可用产物,不检查完整矩阵覆盖范围。成功的 `sweep-enabled`(裁剪扫描)源 Run 也可复用,包括自动选择;在 `main` 上只会发布该 Run 已记录的数据点。请求被接受不代表已通过完整扫描,也不能代替评审中的完整扫描要求。如需复用某次完整扫描,请先确认其覆盖范围,再固定该 Run ID。 +复用验证检查源 Run 的身份和可用产物,不检查完整矩阵覆盖范围。请求被接受不代表已通过完整扫描,也不能代替评审中的完整扫描要求。如需复用某次完整扫描,请先确认其覆盖范围,再固定该 Run ID。 评论会触发轻量验证工作流,使用默认分支代码和 `GITHUB_TOKEN`。接受后在原评论上添加 👍,拒绝时添加 👎;拒绝原因显示在 Actions 运行摘要中。不发布额外评论,也不启动 GPU 工作。编辑命令时会清除机器人的旧表态并检查新请求。用户的表态保持不变,仍以最新的合格授权命令为准。 diff --git a/inferencex-e2e/docs/testing.md b/inferencex-e2e/docs/testing.md index 780b9e0d3f..a5166b7e40 100644 --- a/inferencex-e2e/docs/testing.md +++ b/inferencex-e2e/docs/testing.md @@ -41,7 +41,7 @@ Tests runs suites under `infx/tests/`, `utils/`, `runners/`, `../collectivex/tes | Schema and matrix | A config key validates and emits the intended matrix fields | Runner availability, server startup, or performance | | Focused Python tests | Changed generator, changelog, result, eval, collection, or reuse contracts behave on covered inputs | Container, accelerator, network, or Slurm behavior | | Smoke run | One tightly filtered path allocates, starts a server, runs a workload, and emits artifacts | The complete concurrency/search space or merge eligibility | -| Trimmed PR sweep | Each selected single-node group runs its lowest concurrency (`sweep-enabled`) | Intermediate concurrency points required by a full sweep | +| Trimmed PR sweep | Each selected single-node group runs its lowest concurrency (manual `--trim-conc` dispatch) | Intermediate concurrency points required by a full sweep | | Full sweep and eval | The selected untrimmed matrix and eval jobs execute on the reviewed commit | Correctness of evidence that was not inspected, or unrelated configurations | A green later layer does not erase missing earlier evidence. For example, a green collector can aggregate an empty set, so review must inspect the underlying executed jobs and artifacts. @@ -188,10 +188,10 @@ A smoke run is not merge evidence: it intentionally omits configurations and con ### Trimmed and full sweeps -- `sweep-enabled` trims each parallelism group to its lowest concurrency and is the default for most PR feedback. - `full-sweep-fail-fast` is the recommended full-sweep label. It uses the sequential single-node canary and stops each matrix after that matrix's first failure while preserving completed results. - Use a no-canary full-sweep label only when the canary is known to be flaky or unrepresentative. Use `full-sweep-enabled` instead of fail-fast only when every matrix job must continue despite a failure. - Apply exactly one primary sweep label. Modifier-only or conflicting primary labels do not constitute a valid sweep. +- A trimmed sweep (lowest concurrency only) can be run manually via `e2e-tests.yml` with the `trim-conc` input. The current meanings and eligibility rules are defined in the [sweep-label reference](../../.github/AGENT_OPERATIONS.md#sweep-labels-and-reuse) and implemented by [`run-sweep.yml`](../../.github/workflows/run-sweep.yml). diff --git a/inferencex-e2e/docs/testing_zh.md b/inferencex-e2e/docs/testing_zh.md index 2b64a74806..65257afc4f 100644 --- a/inferencex-e2e/docs/testing_zh.md +++ b/inferencex-e2e/docs/testing_zh.md @@ -41,7 +41,7 @@ Tests 使用四个 pytest worker 运行 `infx/tests/`、`utils/`、`runners/`、 | 模式与矩阵 | 配置键通过验证并发出预期矩阵字段 | 运行器可用性、服务器启动或性能 | | 聚焦 Python 测试 | 变更后的生成器、changelog、结果、评测、收集或复用契约在覆盖输入上行为正确 | 容器、加速器、网络或 Slurm 行为 | | 冒烟运行 | 一条严格过滤的路径可完成分配、启动服务器、运行工作负载并产生制品 | 完整并发/搜索空间或合并资格 | -| 精简 PR 扫描 | 每个选中单节点分组运行其最低并发(`sweep-enabled`) | 全量扫描所要求的中间并发点 | +| 精简 PR 扫描 | 每个选中单节点分组运行其最低并发(手动 `--trim-conc` 派发) | 全量扫描所要求的中间并发点 | | 全量扫描与评测 | 选中的未精简矩阵和评测任务在被评审提交上实际执行 | 未检查证据的正确性或无关配置 | 较后层级变绿不会弥补较早层级缺少证据。例如,绿色收集器可能只聚合了空集合,因此评审必须检查底层实际执行的任务和制品。 @@ -188,10 +188,10 @@ uv run --locked --all-extras --group test --no-editable \ ### 精简与全量扫描 -- `sweep-enabled` 把每个并行分组精简到最低并发,是大多数 PR 反馈的默认选择。 - `full-sweep-fail-fast` 是推荐的全量扫描标签。它使用串行单节点 canary,并在每个矩阵首次失败后停止该矩阵,同时保留已完成结果。 - 仅当 canary 已知不稳定或不具代表性时才使用无 canary 的全量扫描标签。仅当即使失败也必须让每个矩阵任务继续时,才用 `full-sweep-enabled` 代替 fail-fast。 - 必须且只能应用一个主扫描标签。只有修饰标签或存在冲突主标签都不构成有效扫描。 +- 精简扫描(仅最低并发)可通过 `e2e-tests.yml` 的 `trim-conc` 输入手动运行。 当前含义和资格规则由[扫描标签参考](../../.github/AGENT_OPERATIONS.md#sweep-labels-and-reuse)定义,并由 [`run-sweep.yml`](../../.github/workflows/run-sweep.yml) 实现。 diff --git a/inferencex-e2e/infx/klaud/lifecycle.py b/inferencex-e2e/infx/klaud/lifecycle.py index 773a4bea82..2d96af2113 100644 --- a/inferencex-e2e/infx/klaud/lifecycle.py +++ b/inferencex-e2e/infx/klaud/lifecycle.py @@ -17,7 +17,6 @@ BOT = "Klaud-Cold" SWEEP_LABELS = { - "sweep-enabled", "full-sweep-enabled", "non-canary-full-sweep-enabled", "full-sweep-fail-fast", diff --git a/inferencex-e2e/infx/tests/workflows/test_acknowledge_sweep_reuse.py b/inferencex-e2e/infx/tests/workflows/test_acknowledge_sweep_reuse.py index 49767a79e3..c5ab34df5b 100644 --- a/inferencex-e2e/infx/tests/workflows/test_acknowledge_sweep_reuse.py +++ b/inferencex-e2e/infx/tests/workflows/test_acknowledge_sweep_reuse.py @@ -94,7 +94,7 @@ def bot_status(case): @pytest.mark.parametrize("body", ["/reuse-sweep-run", "/reuse-sweep-run 123", "/use 123"]) -@pytest.mark.parametrize("labels", [[], [{"name": "sweep-enabled"}]]) +@pytest.mark.parametrize("labels", [[], [{"name": "full-sweep-enabled"}]]) def test_accepts_valid_reuse_without_full_sweep_label(request_case, body, labels): case = request_case case["comment"]["body"] = body diff --git a/inferencex-e2e/infx/tests/workflows/test_find_reusable_sweep_run.py b/inferencex-e2e/infx/tests/workflows/test_find_reusable_sweep_run.py index 5467e02baf..1b20358e8b 100644 --- a/inferencex-e2e/infx/tests/workflows/test_find_reusable_sweep_run.py +++ b/inferencex-e2e/infx/tests/workflows/test_find_reusable_sweep_run.py @@ -395,7 +395,7 @@ def test_validate_reusable_run_rejects_run_for_orphaned_commit(monkeypatch) -> N @pytest.mark.parametrize("labels,command", [ ([], "/reuse-sweep-run"), ([], "/use"), (["documentation"], "/use"), - (["sweep-enabled"], "/use"), (["full-sweep-enabled"], "/use"), + (["full-sweep-enabled"], "/use"), ]) def test_main_enables_pinned_reuse_without_sweep_label(monkeypatch, tmp_path, labels, command) -> None: comments = [ diff --git a/inferencex-e2e/infx/tests/workflows/test_merge_with_reuse.py b/inferencex-e2e/infx/tests/workflows/test_merge_with_reuse.py index 0418e341e8..2412023955 100644 --- a/inferencex-e2e/infx/tests/workflows/test_merge_with_reuse.py +++ b/inferencex-e2e/infx/tests/workflows/test_merge_with_reuse.py @@ -802,7 +802,7 @@ def test_deleted_fork_error_message(self, capsys): assert "deleted fork" in captured.err def test_multiple_sweep_labels_exits_one(self): - pull = make_mock_pull(labels=["sweep-enabled", "full-sweep-enabled"]) + pull = make_mock_pull(labels=["full-sweep-fail-fast", "full-sweep-enabled"]) gh = make_mock_gh(pull) git_ops = make_mock_git_ops() result = merge_pr(7, repo="example/repo", _git_ops=git_ops, _gh=gh) diff --git a/inferencex-e2e/infx/tests/workflows/test_stage_results.py b/inferencex-e2e/infx/tests/workflows/test_stage_results.py index ee838843f4..85bdddcc2e 100644 --- a/inferencex-e2e/infx/tests/workflows/test_stage_results.py +++ b/inferencex-e2e/infx/tests/workflows/test_stage_results.py @@ -173,7 +173,7 @@ def test_uses_label_history_at_run_creation(staging, created_at, accepted): {"event": "unlabeled", "label": {"name": "full-sweep-enabled"}, "created_at": "2026-09-01T12:00:00Z"}, {"event": "unlabeled", "label": {"name": "full-sweep-enabled"}, "created_at": "bad"}, - {"event": "labeled", "label": {"name": "sweep-enabled"}, + {"event": "labeled", "label": {"name": "documentation"}, "created_at": "2026-09-01T10:00:00Z"}, ]) if accepted: @@ -227,8 +227,8 @@ def test_malformed_permission_response_fails_closed(staging, access): assert staging["reads"] == ["/collaborators/reviewer/permission"] -def test_current_trim_label_does_not_authorize_staging(staging): - staging["responses"]["/pulls/7"]["labels"] = [{"name": "sweep-enabled"}] +def test_non_full_sweep_label_does_not_authorize_staging(staging): + staging["responses"]["/pulls/7"]["labels"] = [{"name": "documentation"}] with pytest.raises(RuntimeError, match="PR does not have a full-sweep label"): stage_results.request("example/project", staging["event"], "token") assert "requires a completed run from a PR using one of:" in staging["comments"][0] diff --git a/inferencex-e2e/infx/workflows/merge_with_reuse.py b/inferencex-e2e/infx/workflows/merge_with_reuse.py index 24dcd31f76..cbdc1394f5 100644 --- a/inferencex-e2e/infx/workflows/merge_with_reuse.py +++ b/inferencex-e2e/infx/workflows/merge_with_reuse.py @@ -83,7 +83,6 @@ def changelog_path() -> str: SWEEP_LABEL_NAMES = frozenset( { - "sweep-enabled", "full-sweep-enabled", "non-canary-full-sweep-enabled", "full-sweep-fail-fast",