Conversation
…elf-registration
shipyard's pkg postinstall stops writing the CMake user package registry, and
MavericksShipyardConfig.cmake refuses any cmake but shipyard-cmake. Every
cmake/ctest/cpack at command position moves to the shipyard-* wrapper, and
build/msc.sh becomes shipyard's canonical template byte for byte -- its
registry tier is gone, replaced by a shipyard-cmake probe.
The README is the point of this commit. Its "Building" section told developers
to install shipyard and rely on self-registration ("it self-registers, so
find_package finds it with no CMAKE_PREFIX_PATH"), which is exactly the
mechanism being deleted: a reader following it after the cutover installs
nothing that any cmake can find. It now names the pkg, names shipyard-cmake as
the only cmake that configures this repo, and does not describe the registry at
all, because there will not be one.
Also converted: the build and preset recipes a reader pastes from README.md,
and the by-hand run instructions in tests/compat-sweep.sh, tests/differential.sh
and tests/README.md's mutation-testing FIX. No gate reads any of those.
Left alone deliberately: docs/superpowers/plans/ and specs/ (dated records of
completed work, not instructions) and tests/README.md's past-tense account of a
stale-object incident.
No workflow step was added; install@v1's default mode already puts
shipyard-cmake on PATH.
Do not merge until shipyard has landed bc3082a.
BREAKING CHANGE: this tree no longer configures with a plain cmake. It needs
shipyard-cmake from the shipyard pkg, which exists on no runner until bc3082a
is on @v1 -- so this repo's own CI fails until then, by design.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GTxFde2TJMmp5p64DhvDSK
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.
Do not merge until shipyard has landed bc3082a.
Part of the 14-repo shipyard-cmake flag day. After the cutover shipyard's pkg
postinstall no longer writes the CMake user package registry, nothing reads it,
and
MavericksShipyardConfig.cmakerefuses any cmake butshipyard-cmake.The README was the point
README.md's "Building" section told developers:That is the mechanism being deleted. Left alone it does not merely go stale — it
instructs a reader to do something that produces an installation no cmake can
find. Rewritten to the post-cutover truth: install the shipyard pkg, which
provides
shipyard-cmake, and configure withshipyard-cmake. The registry isnot described at all, because it will not exist.
Call sites
.github/workflows/release.yml(configure + build, cross preset)README.md— build recipe and both preset linestests/compat-sweep.sh,tests/differential.sh— by-hand run recipestests/README.md— the mutation-testing FIX instruction2 of 12 are gate-visible. Check 18 reads workflow
run:blocks plusgit ls-files -- '*.sh'minustests/, and never opens a*.md, so the teninstructions a human actually pastes are all invisible to it.
build/msc.shReplaced with shipyard's canonical
scripts/templates/msc.sh, byte for byte(blob
43c2af0,cmpclean). The old copy's second tier read~/.cmake/packages/MavericksShipyard/— check 16 flagged it, and it is the onelocator in this tree. The canonical template asks
shipyard-cmakeinstead.build/release-notes-file.shsources it and uses$SHIPYARD, which thetemplate still exports.
Left alone deliberately
docs/superpowers/plans/anddocs/superpowers/specs/— dated records ofcompleted work, including one that quotes the old
msc.shverbatim as part ofits own history. Records, not instructions.
tests/README.md:265— a past-tense account of a stale-.oincident("
cmake --buildafter a one-line source edit produced IDENTICAL results").The FIX line below it, which is an instruction, was converted.
find_package(MavericksShipyard REQUIRED)inCMakeLists.txt— stillresolves, from inside shipyard-cmake's own prefix.
Verification
Conventions gate (
check-family-conventions.shfromshipyard-cmake-collapsed),run in a fresh clone:
build/msc.shreads the registry), check 17 (
build/msc.shis not canonical) and two check-18call sites.
That single remaining failure is pre-existing and not from this PR: this
repo's
conventionsworkflow is already red onmainfor "no workflow buildsthe release body with the shared generator (release-notes.sh)". It is in the
flag-day baseline and is out of scope here.
Also green on the final tree:
check-shell-portability.sh,check-comments.sh,sh -non every tracked*.sh, both workflows parse as YAML. Whole-tree sweepsfor check 18's regex, for a bare
(before a command, and for registry locatorsare clean outside the historical
docs/superpowers/records.No workflow step was added —
install@v1's default mode already putsshipyard-cmakeonPATH.Expected and not a defect: this PR's CI fails until shipyard lands, because
shipyard-cmakeexists on no runner yet.🤖 Generated with Claude Code
https://claude.ai/code/session_01GTxFde2TJMmp5p64DhvDSK