You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/build-requirements.md
+11-10Lines changed: 11 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,15 +63,16 @@ the pinned revision or fails saying why. Nothing substitutes a different
63
63
revision silently — no tip fallback, no cache shadowing. Any checkout rebuilds
64
64
the dependency set its CI run used.
65
65
66
-
**B3 — The pin moves only deliberately.** The sync job is the normal mover.
67
-
A human bump is an explicit, reviewed act (CODEOWNERS on the pin file, or an
68
-
equivalent guard). Trying a different revision must not require editing the
69
-
tracked file — a developer testing against another moxygen locally should have
70
-
an environment/command-line path that leaves no change to accidentally commit,
71
-
so their PR diff stays exactly their change. (Deliberately pinning a PR to an
72
-
unmerged moxygen is different: there the file edit is the point, and review
73
-
covers it.) And an override that is ignored must say so rather than being
74
-
silently swallowed.
66
+
**B3 — The pin moves only deliberately, and never silently.** Three channels
67
+
move or bypass it, each visible in its own way: the sync job (routine, via
68
+
reviewed PR); a hand edit of the pin file, for PRs deliberately coupled to an
69
+
unmerged moxygen (CODEOWNERS routes it to review); and a build-directory
70
+
override for local experiments (`-DMOQX_MOXYGEN_REV_OVERRIDE` — cached on
71
+
disk in the build directory, never in the source tree, warning on every
72
+
configure, so nothing can leak into a PR). The invariant across all three: no
73
+
build runs off-pin quietly. The natural-but-wrong knob (`-DMOXYGEN_REV`,
74
+
which the pin file deliberately wins over) must say it did nothing; the right
75
+
knobs announce themselves.
75
76
76
77
**B4 — Coupled changes stay one-step.** A moqx PR pinned at an unmerged
77
78
moxygen sha builds and tests in CI unaided. The follow-up (rebase after the
@@ -103,7 +104,7 @@ update or doesn't happen.
103
104
|---|---|---|
104
105
| B1 |**verified**| fallback exercised in a trial worktree: stale pin → 3s explanatory error → announced fallback → source build at the pinned rev. Fallback off switch present. Docker uses the same ladder. The release path stays deliberately strict — see gaps. |
105
106
| B2 |**verified**| Stale pin cannot resolve to anything else; `-DMOXYGEN_REV=` override is ignored (file wins). Ignored silently — see B3. |
106
-
| B3 | open |No guard on the pin file, no sanctioned experiment path, swallowed override warns nothing. |
107
+
| B3 | open |no guard on the pin file, no sanctioned experiment path, and an ignored `-DMOXYGEN_REV` warns nothing. |
107
108
| B4 |**verified**| Same ladder: unmerged sha → no tag → source build at that sha, automatic in CI. |
108
109
| B5 | open | Repo setting, not the PR: `strict_up_to_date` off, no merge queue. |
109
110
| B6 | open |`print-pin.cmake` reports top-level pins only. |
0 commit comments