Skip to content

conformance-ct: environment hygiene — sibling pin drift, cold-bootstrap margin, lock hash churn #312

Description

@lann

Bundle, one area: the sibling-checkout arrangement's operational edges (all interim until component-test publishes to registries).

  1. "At or past the pin" is unenforced in either direction. Nothing local compares the sibling's HEAD to .component-test-rev (the pin's only consumers are the five CI clone steps); _ct-tools keys bin/ reuse on the sibling's HEAD, whatever it is. Newer-than-pin: local green does not imply CI green (path deps leave no Cargo.lock trace unless the dep graph changes). Older-than-pin: loud but cryptic (e.g. a pre---suite-artifact ct-runner rejects the flag run-composed passes) with no message naming the pin. The pin moved four times on its first day — the coupling is hot and the latitude will be exercised. Fix shape: a drift check in _ct-tools (warn on mismatch, name the rev and the remedy).

  2. Cold-bootstrap margin vs the timeout/cache-save interaction. A timeout kill skips cache-save, so an undersized budget never converges (bacdf58's own analysis). Current numbers: 30-minute job timeout, measured full-cold 16m31s, pin-bump cold-ish 11m51s — ~13min margin, eroding with corpus growth. Secondary: the rust-cache restore is conditioned on the artifact-cache hit, so an artifact hit + tools-cache eviction rebuilds the wasmtime-embedding runner with no registry cache (slow-only). Worth a margin note and periodic re-measurement.

  3. artifact_sha256 churn in lock diffs. Upstream ruled artifact hashes are provenance, not identity (component-test#44): lock --check ignores them, but lock-update still rewrites the field with a machine-dependent value (rustc embeds absolute paths; the SDK is an out-of-workspace path dep), so every lock regeneration on any machine carries a meaningless hash-line diff — diluting "the diff is the review surface". Options: stop committing the field, normalize it, or teach lock-update to preserve the committed value when the inventory is unchanged.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions