Skip to content

fix(ci)!: locate shipyard through shipyard-cmake, not the package registry - #16

Merged
schmonz merged 1 commit into
mainfrom
shipyard-cmake-flagday
Sep 16, 2026
Merged

schmonz merged 1 commit into
mainfrom
shipyard-cmake-flagday

Conversation

@schmonz

@schmonz schmonz commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Part of the shipyard-cmake flag day. Do not merge until shipyard has landed bc3082a — CI here now needs /usr/local/bin/shipyard-cmake and shipyard-ctest, which only the new install@v1 provides.

tailscale was the worst case of the fourteen: it read the CMake user package registry directly, in the same job where install@v1 had exported $SHIPYARD_SCRIPTS one step earlier. Confirmed against the tree, not taken on faith:

site before
ci.yml:38 SCR="$(cat "$HOME/.cmake/packages/MavericksShipyard/"* | head -1)/scripts"
release.yml:241 SH="$(cat "$HOME/.cmake/packages/MavericksShipyard/"* | head -1)/scripts"

Both now . build/msc.sh and use the exported $SHIPYARD_SCRIPTS. build/msc.sh is a byte-for-byte copy of shipyard's scripts/templates/msc.sh (cmp clean; conventions check 17) — change it there, never here.

All ten cmake/ctest call sites move to shipyard-cmake / shipyard-ctest, not just the four configures. MavericksShipyardConfig.cmake's FATAL_ERROR fires only at configure time, but conventions check 18 flags every plain cmake/ctest/cpack in command position. Running shipyard's gate against this tree:

  • before: 12 failures (2 registry reads + 10 call sites)
  • after: check-family-conventions: ok

check-comments, check-shell-portability and run-repo-tests are also green.

No workflow step was added: install@v1's default mode already installs the pkg and puts shipyard-cmake on PATH.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GTxFde2TJMmp5p64DhvDSK

@schmonz schmonz closed this Sep 16, 2026
@schmonz schmonz reopened this Sep 16, 2026
@schmonz schmonz closed this Sep 16, 2026
@schmonz schmonz reopened this Sep 16, 2026
@schmonz schmonz closed this Sep 16, 2026
@schmonz schmonz reopened this Sep 16, 2026
…istry

tailscale was the only repo in the family reading the CMake user package
registry DIRECTLY -- ci.yml's ingredient-pin guard and release.yml's
assemble-and-sign step each did

    SH="$(cat "$HOME/.cmake/packages/MavericksShipyard/"* | head -1)/scripts"

one step after install@v1 had already exported $SHIPYARD_SCRIPTS. Nothing
writes that tree any more, so both steps break the moment shipyard's
shipyard-cmake change lands, even though $SHIPYARD_SCRIPTS keeps working.
Both now source build/msc.sh, shipyard's canonical locator: it prefers the
exported $SHIPYARD_SCRIPTS in CI and otherwise asks shipyard-cmake where
find_package(MavericksShipyard) lands. build/msc.sh is a byte-for-byte copy
of shipyard's scripts/templates/msc.sh (conventions check 17); never edit it
here.

All ten cmake/ctest call sites move to shipyard-cmake / shipyard-ctest. The
FATAL_ERROR in MavericksShipyardConfig.cmake only fires at configure time,
but conventions check 18 flags every plain cmake/ctest/cpack in command
position -- verified by running shipyard's gate against this tree before and
after: 12 failures (2 registry reads, 10 call sites) become "ok".

BREAKING CHANGE: CI now requires a shipyard that installs
/usr/local/bin/shipyard-{cmake,ctest}. Do not merge before shipyard's
bc3082a is on @v1.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GTxFde2TJMmp5p64DhvDSK
@schmonz
schmonz force-pushed the shipyard-cmake-flagday branch from 3aa26c6 to 93b32c8 Compare September 16, 2026 20:19
@schmonz
schmonz merged commit 56567d4 into main Sep 16, 2026
3 checks passed
@schmonz
schmonz deleted the shipyard-cmake-flagday branch September 16, 2026 20:41
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