Skip to content

checksum_updater: support PulseEngine universal-wasm tools + surface stale pins #498

@avrabe

Description

@avrabe

The weekly checksum updater (tools/checksum_updater) auto-updates only per-OS-binary tools (wasm-tools, wit-bindgen, wac, wasi-sdk, nodejs, wkg, tinygo). Every PulseEngine-owned tool is excluded and falls back to manual edits, so their pins silently drift. This issue tracks making the updater actually work for them.

Why they're excluded today

tool_config.rs only models StandardTarball / SingleBinary / Custom URL patterns keyed by per-OS platform. The PulseEngine tools are universal-wasm components with unstable, changing asset names:

Tool Registry latest Pinned (MODULE.bazel) Released latest Note
loom 0.3.0 0.3.0 v1.1.13 v0.3.0 is the last release shipping loom.wasm; v1.x ship only compliance reports → blocked upstream (pulseengine/loom#142)
wsc 0.9.0 0.7.0 v0.9.2 asset renamed wsc-cli.wasmwsc-component.wasm; now also ships per-platform CLIs. Pin lags registry
wasmsign2-cli 0.2.7-rc.2 none no GitHub releases (tag/CI only)
file-ops-component 0.2.0 0.2.0 v0.2.0 current ✅

Concrete gaps / work

  1. Add a universal-wasm UrlPattern (single wasm/wasm_component platform, url_suffix is the asset name, no per-OS mapping) and register the PulseEngine tools in ToolConfig::new() instead of the silent "fallback" comment.
  2. Per-release asset-existence filtering: skip a release that doesn't carry the expected asset (loom v1.x has none) instead of blindly taking latest_version. Otherwise loom would resolve to v1.1.13 and fail.
  3. Surface stale pins: the updater should flag when MODULE.bazel's version pin lags the registry's latest_version (wsc: pinned 0.7.0 vs registry 0.9.0).
  4. wsc pin bump 0.7.0 → 0.9.x needs a CLI-compat check of wasm_signing / wsc_attestation wrappers before bumping (asset was renamed and per-platform CLIs added).
  5. Document the upgrade workflow in CONTRIBUTING (currently silent).

Found during an automated issue-hunt/version-check pass. Items 1–3 are the core "make the updater handle PulseEngine tools" work; 4 is a separate verified bump.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions