docs(plans): S32 Step 4 files, its metric budget, and Step 10b logging

Corrections to the S32 plan. A step branch may not edit the plan file, so they land here. The branch is rebased on c7a28c0d6. !2760 (merged) merged in the meantime and landed this plan's credential-column correction, so the section this description once carried for it is gone.

Step 4's Files entry omits a suite its own Tests entry mandates

The Tests entry asks for an *_explain_integration_test.go suite in full, and says why a statement count cannot replace it. The Files entry never named the file. It now names internal/datastore/container_virtual_resolution_explain_integration_test.go.

Step 4 owes no labelName raise

The Files entry and the Shared seams: bullet both said Step 4 raises labelName in internal/metrics/cardinality.go to a value covering Steps 4, 5 and 6 together. No raise is owed. labelName is 600, and the two catalogs it covers hold 567 names at c7a28c0d6. The Modify row goes, and the bullet records the measurement instead of the obligation.

Two other places asserted the raise. ### Query-name budget said labelName is 500 and that one step owns the hand-raise for the wave; it now points at Step 4's bullet rather than repeating a figure. Step 17's seam bullet called Step 4 the file's "only other writer"; Step 17 is the only writer.

Step 10b owns the two identifiers Step 4's reads drop

Both error wraps in internal/datastore/container_virtual_resolution.go name the operation and the table and carry no identifier. docs/dev/database-query-patterns.md moves the dropped identifiers to the call site as structured fields, with a test pinning them, and states that dropping one without logging it deletes the tenant record rather than moving it. Step 10b is the first caller, so its Acceptance now records the obligation. The npm sibling meets it for the rules read alone, because its list wrap still carries the pair.

Step 4's Depends on line names its spec MR

The line named Step 3 alone. !2741 (merged) records the two read bounds and has to merge before Step 4's code, or the merged spec contradicts it. The line now names that MR and the window it closes.

Step 10b records why neither read logs at the store

The logging obligation covered both reads without saying why the store logs nothing itself. The npm sibling does log at its list read, because that read clips and returns success, so nothing downstream records the degradation. Both container reads refuse and return an error the caller logs. A reader who takes npm for the pattern re-adds a summary that would group one refusal under two records.

The suite count goes rather than gets corrected

Three Tests entries said internal/datastore carries 14 *_explain_integration_test.go suites. It carries 17, and no sentence named the commit it was measured at. The count carries no argument in any of the three: the suite that says why a statement count cannot see an Append does that work. The sentences now say the suites exist and drop the number.

Merge order

Merge order stays !2741 (merged), then !2743 (merged), then !2756 (merged). No pipeline checks it.

Related to https://gitlab.com/gitlab-org/artifact-registry/-/issues/291

Edited by Radamanthus Batnag

Merge request reports

Loading
Loading