# The ledger's debt, in a tracked file so a change to it is a diff a reviewer # sees. An environment variable would not be: PGC_SKIP_TIMING is the precedent, # set in two workflow files, suppressing whole suites for months with no diff # ever showing it. # # THE TWO NUMBERS ARE DIFFERENT KINDS OF THING. The first version of this file # treated both as ceilings and deadlocked, so the distinction is written down. # # suites_not_covered -- A CEILING, and monotone. # Registered suites with no rows in the ledger at all. Their checks are # invisible to the gate: it cannot refuse a new check in a suite it has never # seen. It falls as suites are seeded, and it MAY ONLY FALL -- the gate compares # this value against the previously committed one and refuses an increase, so # widening the debt is an edit a reviewer sees AND a gate refuses. # # Adding a check to a suite that is already covered does not move it, which is # what makes it safe to bound. suites_not_covered 249 # # checks_never_observed_red -- A CENSUS. NOT a ceiling, and it must not become # one. # Every new check enters the ledger as `never`, so bounding this number means # every added check breaks the gate, and the only way to land one is to raise a # number the design says may only fall. That is a deadlock rather than a budget, # and the first version of this file shipped it: 614 rows, 614 never, ceiling # 614. # # It is reported by the gate on every run and falls as checks are attacked. What # the gate REFUSES is a check the ledger has never seen, which regenerating the # ledger fixes -- a reviewable one-line diff, and the intended action rather # than a forbidden one. # # The number here is ASSERTED to match the committed ledger, in both harnesses. # Without that it is a hand-maintained count that drifts, which is the failure # this repository has spent a day proving. It is not a ceiling; it is a # measurement that must be true. # # HOW TO RE-DERIVE IT, written here because a changelog entry got it wrong and a # derivation is only useful where the number is: # # awk -F'\t' '$5=="never"' test/check_ledger.tsv | wc -l # # FIELD FIVE, and it said four until #1040. The command is only useful if it # runs, and `$4` returned 0 on the shipped tree: #1010 inserted the majors a row # claims as field 4, so the last-red moved to field 5 and the old form read a # major where it expected a date. The CHANGELOG entry for #1010 says this file # carries the corrected form; it did not, which is why the claim is worth as # little as the recipe. Corrected here rather than filed because this change # moves the number below, and a reviewer re-deriving it with the printed command # would have got 0 against a stated 1198. # # Rows whose LAST-RED is `never`, not the row count. The two agree only while # nothing has ever been observed red, so a plain `grep -c` overcounts by exactly # the number of attacked checks -- and it overcounts from the first moment this # ledger does the job it exists for. The gate prints both quantities side by side # (`rows=N | never observed red=M`) because they are different questions. # MERGED: this branch derived 1211 and #1070 derived 1220, each correct for a tree # that is not this one. Neither survives. Re-derived by COUNTING on the merged tree, # which is the only resolution this number has: # awk -F'\t' '$5=="never"' test/check_ledger.tsv | wc -l checks_never_observed_red 1268