Vendor Bootsharp build pipeline: one script, one doc, no stash dependency#42
Merged
Merged
Conversation
…ency Replace the scattered build prose (CLAUDE.md disagreed with BOOTSHARP-BUILD.md on which Bootsharp branch is current — neither said `feat/spec`) with a single PowerShell script that runs the full rebuild end-to-end. Every fresh agent session was burning hours rediscovering this; that stops here. What changed: - scripts/build-bootsharp.ps1: 11-step pipeline (sanity-check, reset, apply patches/*.patch in order, bump alpha, pack core + FileSystem, purge NuGet cache, XML-edit Directory.Packages.props pins, dotnet publish Motely.Wasm, run Node smoke tests, summarize). `-WhatIf` walks every step without executing. Path/tool checks downgrade to warnings under -WhatIf so a fresh agent can dry-run on a machine without the toolchain. - patches/02-publish-fixes.patch: renamed from bootsharp-fixes-vs-6edaa2c.patch (content byte-identical, three-commit series unchanged). Script applies it. - patches/01-projectability.patch.PLACEHOLDER: surfaces the missing piece — the projectability fix currently lives only as a stash on the maintainer's Windows machine. One-time export command is in the placeholder; replace with the real patch and the script picks it up automatically. - BOOTSHARP-BUILD.md: rewritten as sole source of truth. TL;DR points at the script; troubleshooting table maps actual error strings to causes/fixes. - CLAUDE.md: build-pipeline section collapsed to a 5-line pointer at the script. All `@D:/bootsharp/...` ambient-context @-refs removed (they only resolve on the maintainer's machine and prevented remote agents from reading them anyway). Everything else in CLAUDE.md kept.
Owner
Author
|
CLOD |
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.
Why
Every fresh session of building Motely.Wasm has been burning hours rediscovering the local Bootsharp pipeline because the documentation rotted:
CLAUDE.mdnamed two different branches (feat/delegatesandfeat/raw-interop)BOOTSHARP-BUILD.mdnamed a third (feat/overload)feat/spec— neither file said soGlobalType.cs+TypeInspector.cs) lived only as a stash on the maintainer's Windows machine, with no record of its contents anywhere a remote agent could readbootsharp-fixes-vs-6edaa2c.patch; nothing automated applying itWhat
One PowerShell script does the whole pipeline. One doc explains it. The patch series is vendored into
patches/.Files
scripts/build-bootsharp.ps1-WhatIfwalks every step without executing.BOOTSHARP-BUILD.mdfeat/spec. Troubleshooting table maps actual error strings to causes/fixes.CLAUDE.md@D:/bootsharp/...ambient-context refs removed (they only resolved on your machine). Everything else kept.patches/02-publish-fixes.patchbootsharp-fixes-vs-6edaa2c.patch, content byte-identical.patches/01-projectability.patch.PLACEHOLDERTODO before this lands cleanly:⚠️ one-time stash export ⚠️
The projectability patch still lives only as a stash on the Windows machine. Until you export it,
dotnet publish Motely.Wasmwill still fail (the script's other steps run fine, but the publish step trips when the inspector hits Motely's non-projectable members).On your Windows machine:
The script picks the new
.patchfile up automatically —patches/*.patchis sorted lexically and applied in order. If the fix later lands upstream, just delete the file.Verified here (Linux container)
grep -rE 'feat/(spec|overload|delegates|raw-interop)' CLAUDE.md BOOTSHARP-BUILD.md scripts/ patches/returns onlyfeat/specreferences.bootsharp-fixes-vs-6edaa2c.patchname.@D:/bootsharp/...ambient-context refs remain inCLAUDE.md.patches/02-publish-fixes.patchopens with the sameFrom 65af54bd…SHA-keyed header as the original (git rename detected at 100% similarity).[Parser]::ParseInputreturns no errors).pwsh scripts/build-bootsharp.ps1 -WhatIf -SkipSmoke -BootsharpRoot /tmp/fake -BootsharpFsRoot /tmp/fake2prints all 11==>step banners and exits 0.Test plan (only you can do these, on your Windows machine)
.PLACEHOLDER.pwsh ./scripts/build-bootsharp.ps1 -WhatIfand read through the 11 banners. Sanity-check the paths and version-bump logic against your actual layout.pwsh ./scripts/build-bootsharp.ps1for real. ExpectRESULT: PASSfrom both smoke tests at the end.D:\bootsharp/D:\extra\bootsharp, pass-BootsharpRootand-BootsharpFsRoot.patches/02-publish-fixes.patch(and01-projectability.patchonce vendored).git amwill replay the commits with the original authorship.Generated by Claude Code