fix(ci)!: locate shipyard through shipyard-cmake, not the package registry - #16
Merged
Merged
Conversation
…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
force-pushed
the
shipyard-cmake-flagday
branch
from
September 16, 2026 20:19
3aa26c6 to
93b32c8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the shipyard-cmake flag day. Do not merge until shipyard has landed bc3082a — CI here now needs
/usr/local/bin/shipyard-cmakeandshipyard-ctest, which only the newinstall@v1provides.tailscale was the worst case of the fourteen: it read the CMake user package registry directly, in the same job where
install@v1had exported$SHIPYARD_SCRIPTSone step earlier. Confirmed against the tree, not taken on faith:ci.yml:38SCR="$(cat "$HOME/.cmake/packages/MavericksShipyard/"* | head -1)/scripts"release.yml:241SH="$(cat "$HOME/.cmake/packages/MavericksShipyard/"* | head -1)/scripts"Both now
. build/msc.shand use the exported$SHIPYARD_SCRIPTS.build/msc.shis a byte-for-byte copy of shipyard'sscripts/templates/msc.sh(cmpclean; conventions check 17) — change it there, never here.All ten
cmake/ctestcall sites move toshipyard-cmake/shipyard-ctest, not just the four configures.MavericksShipyardConfig.cmake'sFATAL_ERRORfires only at configure time, but conventions check 18 flags every plaincmake/ctest/cpackin command position. Running shipyard's gate against this tree:check-family-conventions: okcheck-comments,check-shell-portabilityandrun-repo-testsare also green.No workflow step was added:
install@v1's default mode already installs the pkg and putsshipyard-cmakeonPATH.🤖 Generated with Claude Code
https://claude.ai/code/session_01GTxFde2TJMmp5p64DhvDSK