Skip to content

ci(adcp-sdk): pin @adcp/sdk to 7.9.0 (last known-green), salt cache key (closes #779 Track B)#784

Open
bokelley wants to merge 2 commits into
mainfrom
claude/issue-779-pin-adcp-sdk
Open

ci(adcp-sdk): pin @adcp/sdk to 7.9.0 (last known-green), salt cache key (closes #779 Track B)#784
bokelley wants to merge 2 commits into
mainfrom
claude/issue-779-pin-adcp-sdk

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Re-opened of #780 (close+reopen failed via API). See #780 for full body. Pinning to 7.9.0; vendoring step from #775 preserved.

TL;DR

Refs

bokelley added 2 commits May 21, 2026 17:28
@adcp/sdk@latest was floating, and the npm cache key
``${{ runner.os }}-npm-adcp-sdk`` was OS-only — so a runner that cached
an older release served stale SDK to every subsequent CI run on that
runner, while a fresh runner pulled the current @latest. Same commit
flipped red/green depending on which runner picked it up (see 2026-05-21
storyboard incident, adcp#4907).

- ADCP_SDK_VERSION env var pinned at workflow header (7.10.1).
- All 4 ``npm install -g @adcp/sdk@latest`` sites use the pin.
- All 4 cache keys salted with ${{ env.ADCP_SDK_VERSION }} so a bump
  invalidates deterministically.
- Stale comments rationalizing @latest removed.

Bumping the SDK version now happens via PR — silent-upgrade footgun
closed. Tracks adcp-client-python#779 Track B and adcp#4907 Phase 1.
@bokelley bokelley enabled auto-merge (squash) May 21, 2026 21:29
Copy link
Copy Markdown

@aao-ipr-bot aao-ipr-bot Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM after the duplicated fixture-vendoring block at the storyboard install step comes out. Pin + salted cache key is the right shape — the floating-@latest cache-poisoning footgun is closed cleanly.

Things I checked

  • Pin mechanism: env: ADCP_SDK_VERSION: "7.9.0" at workflow top (ci.yml:9-12), shell-expanded as @adcp/sdk@${ADCP_SDK_VERSION} in the 4 run: blocks. Workflow env: exports into step shells; value has no whitespace or shell metachars, so unquoted expansion is safe.
  • Cache key salting: all 4 actions/cache@v4 keys end in -${{ env.ADCP_SDK_VERSION }} (~lines 399, 555, 781, 889). restore-keys: ${{ runner.os }}-npm- fallback preserved so the first post-bump run still warms from prior tarballs.
  • The other 3 install sites (~lines 570, 786, 894) are clean — single set of vendoring lines, no duplication. Storyboard job is the only one with the doubled block.
  • code-reviewer Major and dx-expert Major both land on the same ci.yml:413-417 duplicate, with no other correctness flags.

Follow-ups (Major — fix in this PR before merge)

  • ci.yml:413-417: duplicated fixture-vendoring block in the storyboard install step. Five lines (SDK_ROOT=..., two mkdir -p/cp pairs) re-run verbatim after lines 408-412. Idempotent — same source bytes, same dest path — so CI doesn't fail, but it's debris from the #780#784 rebase and the other 3 install sites prove the right shape is a single block. Delete L413-417. This is what would flip the review to --approve.

Minor nits (non-blocking)

  1. Commit cddde254 message says "pin @adcp/sdk to 7.10.1" but the file pins 7.9.0. Stale text from before the rollback; the follow-up commit 6456aee2 is honest about being a 7.9.0 retrigger. A later bisector hunting "when did we pin to 7.10.1" will land on a commit that doesn't. Squash-merge papers over it; otherwise worth amending.
  2. Bump-instructions discoverability (ci.yml:9-12). Header comment is good. One added line — "to bump, edit this value and open a PR; cache invalidates automatically" — would close the loop for the next person who skims the workflow without reading the commit body.

Drop L413-417 and I'll approve.

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