Skip to content

Pins package and the Roll tool #41

Closed

Description

@Fly-Playgroud

Parent

Spec: #33 (Baseline release). Section numbers refer to its Implementation Decisions.

What to build

One zero-import package holds the Target Chrome and everything rolled with it, and one tool computes it, so the launcher, the protocol generator, the Roll and the release workflow all read the same numbers. Spec sections 2, 4 and 15; ADR-0004, ADR-0005, ADR-0009; tickets #9, #13, #17.

Acceptance criteria

  • Package lib/launcher/pins with zero imports exports the Target Chrome version and branch position, the Protocol roll, the Companion Chromium position, and a SHA-256 table per managed-browser archive: six Chrome for Testing platforms (linux64, linux-arm64, mac-x64, mac-arm64, win32, win64) times chrome and chrome-headless-shell, plus five Chromium bucket prefixes (Linux_x64, Mac, Mac_Arm, Win, Win_x64).
  • Its generator, the Roll tool (descended from upstream's revision generator retrieved from the Snapshot commit): with no argument reads Chrome for Testing's last-known-good Stable version and revision, with a version argument uses that; computes the Protocol roll as the largest devtools-protocol v0.0.<rev> tag not above the branch position; computes the Companion Chromium as the newest trunk position at or below the branch position present for all five prefixes; downloads every archive from Google's origin bucket only and records its SHA-256, proving each exists; rewrites the package; exits non-zero when any archive is missing.
  • Re-running with the same version yields zero diff; a check mode re-derives the Protocol roll from the branch position and fails on mismatch.
  • A small printer command prints the three pins as one line and as JSON for the release workflow.
  • The package is populated for the Chrome for Testing Stable current at execution time; the launcher does not consume it yet and upstream's default revision constant stays until the download rewrite.

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions