Skip to content

fix(actions): validate action's latest-CLI lookup can miss the tag - #1448

Open
GarthDB wants to merge 6 commits into
mainfrom
fix/validate-action-cli-version-lookup
Open

fix(actions): validate action's latest-CLI lookup can miss the tag#1448
GarthDB wants to merge 6 commits into
mainfrom
fix/validate-action-cli-version-lookup

Conversation

@GarthDB

@GarthDB GarthDB commented Sep 11, 2026

Copy link
Copy Markdown
Member

Summary

  • The reusable validate composite action's release-resolution step for cli-version: latest only scans the 50 most recently published releases in this repo (gh release list --limit 50). Other packages (design-data-mcp, design-system-registry, etc.) release far more often than design-data-cli, so its tag scrolls off that window and version silently resolves to an empty string, producing a curl: (22) 404 when the action tries to download design-data-linux-x64 for the bogus tag design-data-cli@.
  • Bumps --limit to 1000 and fails loudly (::error:: + exit 1) instead of building a bogus download URL when no matching tag is found, so this class of bug surfaces immediately instead of as an opaque curl 404.

Found while regenerating GarthDB/spectrum-ios-design-data for the split extensions/ layout — see PR #5 there, whose CI failed on this exact lookup.

Test plan

  • Confirmed gh release list --repo adobe/spectrum-design-data --limit 1000 --json tagName --jq '.[].tagName | select(startswith("design-data-cli@"))' finds design-data-cli@0.12.1 (the most recent CLI release), which the old --limit 50 missed.
  • External consumer (GarthDB/spectrum-ios-design-data validate.yml / foundation-drift.yml) still pins cli-version: "0.12.1" explicitly as a belt-and-suspenders workaround; can revert that pin back to latest once this lands.

GarthDB and others added 6 commits September 10, 2026 09:36
Bead cn3v.2 — mode-group membership primitive for the Figma exporter's
future mode-groups work. Generalizes the PR #1437 test-only spike
(concept_diverges_on_axis) into a real method that auto-derives "every
other declared mode set held at its default" from self.mode_sets,
instead of requiring the caller to build that context by hand.

- sdk/core/src/graph.rs: adds TokenGraph::diverges_on_axis(legacy_key,
  mode_set), built only on resolve_relationship_ref_in_context (no new
  resolver logic); adds diverges_on_axis_reports_mode_group_membership
  unit test proving a light!=dark color token reports true on
  colorScheme/false on scale, and a scale-invariant token reports false
  on colorScheme.

No exporter wiring yet — primitive only, per bead AC.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…nding

Part of bead vpk.2 (SPEC-027 button.json cleanup). Confirmed via
relationships/button.json's "Rounding (with wrapping)" CTR entry
($ref d639a0b5-16b4-4d75-ab37-d87815c7b500 -> layout.tokens.json
corner-radius size:xl) that the extra-large slot is already correctly
modeled through the CTR relationship. The legacy corner-radius-button-
extra-large key doesn't exist anywhere in tokens/ -- pure dangling
tokenBindings entry, safe to drop outright.

The other two dangling entries (corner-radius-button-small/-large)
still need a design-owner call between the corner-radius-small-size-*
and corner-radius-medium-size-* legacy families before they can be
rebound or removed -- left as-is pending that sign-off.

- packages/design-data/components/button.json: removes the
  corner-radius-button-extra-large tokenBindings entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Part of bead vpk.2. Figma's S2 Token-specs "Button" page (node 8476:1743,
"Rounding (with wrapping)" section) confirms this is a genuine, distinct
24px slot for the XL button size — not redundant with the existing CTR
relationship. That CTR's single $ref (uuid d639a0b5) resolves to a
different, confusingly-named 16px value (legacy key
corner-radius-extra-large-default, actually the M-size default) — it
does not cover S/L/XL sizes at all.

This reverts 85ee444, which incorrectly treated the XL binding as
stale and removed it. All three dangling bindings
(corner-radius-button-{small,large,extra-large}) are equally blocked
on a design-owner decision about which token family (small-size vs
medium-size) they should resolve to — none should be removed.

- packages/design-data/components/button.json: restore the
  corner-radius-button-extra-large tokenBindings entry.
- .changeset/button-corner-radius-extra-large-binding.md: remove —
  the change it described was incorrect.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
gh release list --limit 50 only returns the 50 most recently published
releases across the whole repo. Other packages here release far more
often than design-data-cli, so its tag can scroll off that window,
resolving `version` to an empty string and producing a 404 when the
action tries to download design-data-linux-x64 for tag
"design-data-cli@". Bump the limit and fail loudly instead of building
a bogus download URL if no matching tag is found.

Found via GarthDB/spectrum-ios-design-data#5 CI failure.
@changeset-bot

changeset-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: ec486c0

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions

Copy link
Copy Markdown
Contributor

🎨 Token Changes Report

Tokens Changed (0)

Original Branch: main


This comment was automatically generated by the token diff tool. 🤖

@github-actions

Copy link
Copy Markdown
Contributor

🧩 Component Schema Changes Report

No component schema changes detected.

This comment was automatically generated by the component schema diff tool. 🤖

@github-actions

Copy link
Copy Markdown
Contributor

Run report for ec486c09

Total time: 2m 15s | Comparison time: 4m | Estimated savings: 1m 44s (43.5% faster)

Action Time Status Info
⬛️ SetupProto(0.57.4) 0ms Skipped
🟩 SyncWorkspace 10.6ms Passed
🟩 SyncProject(sdk) 0.5ms Passed
⬛️ SetupToolchain(node:20.17.0) 850.4ms Skipped
⬛️ SetupToolchain(rust:1.88.0) 1.1s Skipped
🟩 SetupEnvironment(rust, sdk) 102.6ms Passed
⬛️ InstallDependencies(rust, sdk) 2.7ms Skipped
⬛️ SetupToolchain(pnpm:10.17.1) 666.9ms Skipped
⬛️ SetupToolchain(javascript) 0ms Skipped
⬛️ SetupEnvironment(javascript, sdk) 0.6ms Skipped
🟩 RunTask(sdk:fmt-check) 808ms Passed
🟩 InstallDependencies(javascript, sdk) 6s Passed
🟩 RunTask(sdk:codegen-check) 252.1ms Passed
🟩 RunTask(sdk:lint) 45.2s Passed
🟩 RunTask(sdk:test-doc) 1m 38s Passed
🟩 RunTask(sdk:test) 2m 7s Passed SLOW
Changed files
.github/actions/validate/action.yml
sdk/core/src/graph.rs

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