ci: run tier B for pull requests that change std/ #709

Open
opened 2026-11-07 22:38:25 +00:00 by orion · 1 comment
Collaborator

Context

The forge CI runs tier B for a pull request only when it changes compiler/src/ir/, compiler/src/backend/, runtime/, tools/ or .forgejo/ (the tier-b scope in .forgejo/workflows/ci.yml, line 117). A change under std/ alone skips it, and with it the conformance suite's .allocations budgets. On main tier B runs at most once per batch of merges and a red result is fixed forward (compiler/CONTRIBUTING.md, tier B, lines 108 to 132).

This let a regression through: the std/fs change for #547 (PR #549) touched only std/, so its pull request ran no budget, and nothing held the budgets to the new counts until a later tools/ change ran tier B on main and turned it red; PR #556 then raised 19 allocation budgets after the fact (absolute-path-form 30 to 155 blocks, file-atomic-replace 326 to 1615).

Source

  • compiler/CONTRIBUTING.md, tier B: the budgets are the contract that "does not move with the machine".
  • The #547 / PR #549 / PR #556 history above.

Goal

A pull request that can move an allocation budget runs the budget check before it lands.

Acceptance criteria

  • A pull request that changes a file under std/ runs the conformance budgets (all of tier B, or the conformance leg alone, as refine decides with the CI minutes measured on two recent std/ pull requests)
  • A pull request that changes only docs/, book/ or Markdown still skips tier B
  • compiler/CONTRIBUTING.md names the new scope where it lists what triggers tier B
  • A test pull request that only edits a std/ source shows the budget job in its checks

Dependencies

None.

Seed

No: CI configuration only.

Size

One PR, one commit ci: run the allocation budgets for pull requests that change std.

## Context The forge CI runs tier B for a pull request only when it changes `compiler/src/ir/`, `compiler/src/backend/`, `runtime/`, `tools/` or `.forgejo/` (the `tier-b` scope in [`.forgejo/workflows/ci.yml`](https://git.torb.dev/torbscript/language/src/branch/main/.forgejo/workflows/ci.yml), line 117). A change under `std/` alone skips it, and with it the conformance suite's `.allocations` budgets. On `main` tier B runs at most once per batch of merges and a red result is fixed forward ([`compiler/CONTRIBUTING.md`](https://git.torb.dev/torbscript/language/src/branch/main/compiler/CONTRIBUTING.md), tier B, lines 108 to 132). This let a regression through: the `std/fs` change for #547 (PR #549) touched only `std/`, so its pull request ran no budget, and nothing held the budgets to the new counts until a later `tools/` change ran tier B on `main` and turned it red; PR #556 then raised 19 allocation budgets after the fact (absolute-path-form 30 to 155 blocks, file-atomic-replace 326 to 1615). ## Source - `compiler/CONTRIBUTING.md`, tier B: the budgets are the contract that "does not move with the machine". - The #547 / PR #549 / PR #556 history above. ## Goal A pull request that can move an allocation budget runs the budget check before it lands. ## Acceptance criteria - [ ] A pull request that changes a file under `std/` runs the conformance budgets (all of tier B, or the conformance leg alone, as refine decides with the CI minutes measured on two recent `std/` pull requests) - [ ] A pull request that changes only `docs/`, `book/` or Markdown still skips tier B - [ ] `compiler/CONTRIBUTING.md` names the new scope where it lists what triggers tier B - [ ] A test pull request that only edits a `std/` source shows the budget job in its checks ## Dependencies None. ## Seed No: CI configuration only. ## Size One PR, one commit `ci: run the allocation budgets for pull requests that change std`.
Author
Collaborator

[loop:torbscript] re-sweep: filed as homeless work. The gap showed in the #547 round (PR #549 skipped tier B as a std/-only change; PR #556 raised 19 budgets afterwards) and was never filed. Label loop, no ready: refine picks between full tier B and the conformance leg with measured CI minutes.

[loop:torbscript] re-sweep: filed as homeless work. The gap showed in the #547 round (PR #549 skipped tier B as a `std/`-only change; PR #556 raised 19 budgets afterwards) and was never filed. Label `loop`, no `ready`: refine picks between full tier B and the conformance leg with measured CI minutes.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
torbscript/language#709
No description provided.