Skip to content

Bump component-test to 7e6a137 (post-M1 hardening) - #300

Merged
lann merged 4 commits into
mainfrom
bump-component-test
Aug 4, 2026
Merged

Bump component-test to 7e6a137 (post-M1 hardening)#300
lann merged 4 commits into
mainfrom
bump-component-test

Conversation

@lann

@lann lann commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

Advances the pin from 52af5d5 (the M1 merge baseline) to component-test HEAD, picking up 11 upstream commits — notably the failure-detection hardening (strict fold, inventory errors, artifact binding), the component-test-results crate extraction, and the fixture/docs work.

Adaptations:

  • Artifact binding: envelopes are now hash-cross-checked against lockfiles. Lockfiles regenerated (hash-only diffs — the case inventory is unchanged by the SDK bump). The composed leg uses the new ct-runner --suite-artifact flag (added upstream as polymorph-components/polymorph-test@7e6a137 for exactly this gap): the executed bundle can never carry the suite artifact's hash.
  • Suite-name identity: aggregate warnings now render into the matrix, surfacing the jco drivers' hyphenated suite names vs. the lockfiles' underscore file stems; the drivers now emit the lockfile identity.

Verification: rust-checks and the full conformance matrix green locally (65,712 + 2,316 results, 0 failing, 0 validation errors, no warnings); regenerated matrices byte-identical to the committed ones.

Note: the conformance job's artifact + tools caches miss on this PR by design (.component-test-rev is in both keys), so its CI leg pays the full rebuild once (~11 min).

lann added 4 commits August 4, 2026 14:22
…ed leg

The pin advances past two relevant upstream changes:

- 9c238fc (failure-detection hardening) binds results envelopes to the
  suite artifact sha256 and cross-checks it in aggregate. The suite
  wasms rebuilt against the new SDK, so the lockfiles regenerate
  (hash-only diffs; the case inventory is unchanged). The composed
  target needed the new ct-runner --suite-artifact flag (added
  upstream as 7e6a137 for exactly this): the executed bundle is not
  the suite artifact the lockfile records, so the runner now binds the
  suite component it was composed from.

- aggregate warnings now render into the matrix, which surfaced the
  jco drivers naming suites by their hyphenated transpile names while
  lockfiles use the suite wasm file stem (underscores); the drivers
  now emit the lockfile identity and the warnings are gone.

Verified: gha::rust-checks green; CONFORMANCE_BROWSER=1
gha::conformance-checks green (65712 + 2316 results, 0 failing, 0
validation errors, no warnings); regenerated matrices byte-identical
to the committed ones.
…ifacts

The bump surfaced that rustc embeds absolute source paths in the suite
wasms, so a source-identical build hashes differently per checkout
location: the committed lockfiles (generated locally) failed the
aggregate artifact-binding check against CI-built results. Filed as
polymorph-components/polymorph-test#44 (is the committed hash meant to be
authoritative cross-environment, or is binding per-build?).

Split the two concerns the binding conflates: inventory drift stays
enforced against the committed lockfiles by lock-check (cases and
tags; it never compared hashes), while the aggregates bind against a
lockfile generated fresh from the artifacts this run actually built
and executed - the binding check then means what it says on any
machine.
# Conflicts:
#	conformance/guest-ct/tests.lock
Upstream ruled on polymorph-components/polymorph-test#44: artifact hashes are
provenance, never a cross-environment gate (builds are not reproducible
- rustc embeds absolute source paths). The aggregate no longer requires
envelope-vs-lockfile hash equality, keeping only the reproducibility-
independent cross-target agreement warning (all targets in one run
should have executed the same build - which they do here: wasmtime and
composed stamp the suite wasm, the jco drivers stamp nothing).

That removes the reason for the fresh-lock indirection: aggregates now
bind against the committed tests.lock files directly, restoring "the
diff is the review surface" for exactly what gets aggregated, and the
_lock-for-aggregate recipe is deleted. Pin bumped to c90b2f0.

Verified locally: CONFORMANCE_BROWSER=1 gha::conformance-checks green
in 2m43s - 4 targets / 72,088 shared results + 3 / 2,316 signing, 0
failing, 0 validation errors, matrix-check clean.
@lann

lann commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator Author

Scope update after the #44 ruling (artifact hashes are provenance, never a cross-environment gate — resolved upstream in c90b2f0):

  • The fresh-lock workaround is gone (f599fc3): aggregates bind against the committed tests.lock files directly, restoring "the diff is the review surface" for exactly what gets aggregated. _lock-for-aggregate deleted.
  • Upstream aggregate no longer requires envelope-vs-lockfile hash equality; the retained opportunistic check is cross-target agreement within one run (reproducibility-independent — wasmtime and composed stamp the suite wasm and agree; the jco drivers stamp nothing and are exempt).
  • Pin advanced to c90b2f0 (includes the composed-runner applicability parity from sdlc: stale-doc sweep from the jco re-gating; make just ci mirror CI #36's thread plus the Add lann-webcrypto-guest: guest-side bindings and byte-buffer wrappers #44 resolution).

Local full gate (browser included): 4 targets / 72,088 shared + 3 / 2,316 signing results, 0 failing, 0 validation errors, matrix-check clean, 2m43s.

@lann
lann merged commit 8466317 into main Aug 4, 2026
6 checks passed
@lann
lann deleted the bump-component-test branch August 4, 2026 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant