7e62f71931
windows/ was previously an untracked working tree with manually- copied .lua files that drifted ~6 months out of date (missed every feature added since April 2026). #18 introduces Option 1 from the issue body: build-time sync. New tracked files: - windows/sync.sh — copies root {lmcp,server,json}.lua to pkg/. Idempotent; run before WiX. Catches missing source files; logs each sync. - windows/README.md — workflow doc + tracked-vs-generated map. - windows/lmcp.wxs — MSI manifest (Version bumped 0.1.0 → 1.1.0). - windows/pkg/{install_service,start}.bat — Windows service installer + launcher (now tracked; they were already in pkg/). New .gitignore at repo root: - windows/pkg/{lmcp,server,json}.lua — regenerated by sync.sh - windows/pkg/lua/ — bundled Lua + LuaSocket runtime (downloaded separately, not in git) - editor noise (*.swp, *.swo, .DS_Store) Verification (Phase 7): $ ./windows/sync.sh synced lmcp.lua synced server.lua synced json.lua $ diff lmcp.lua windows/pkg/lmcp.lua → empty $ git ls-files -o --exclude-standard windows/ windows/README.md windows/lmcp.wxs windows/pkg/install_service.bat windows/pkg/start.bat windows/sync.sh $ git check-ignore windows/pkg/{lmcp,server,json}.lua → all 3 ignored The "missed every feature since April" failure mode this fixes: running sync.sh before each MSI build now guarantees pkg/ matches master. Forgetting to run it is failure-loud (the MSI ships the last sync's snapshot, easy to spot in QA), not silent (the manifest points at fresh files that mismatch root). Closes v1.1.0 milestone with #11, #20. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.4 KiB
1.4 KiB
lmcp Windows MSI build
This directory contains the WiX manifest and packaging files for the Windows MSI build of lmcp.
Workflow
# 1. Pull the Lua + LuaSocket runtime into pkg/lua/ (one-time, see below).
# 2. Sync the lmcp .lua sources from the root of the repo:
./sync.sh
# 3. Bump windows/lmcp.wxs `Version="…"` to match the release tag.
# 4. Invoke WiX:
candle.exe lmcp.wxs
light.exe lmcp.wixobj -o lmcp-1.x.y.msi
What's tracked vs. generated
-
Tracked (edit in git):
lmcp.wxs— WiX MSI manifestsync.sh— copies root .lua sources →pkg/README.md— this filepkg/install_service.bat— Windows service installerpkg/start.bat— manual launcher
-
Generated / external (gitignored):
pkg/lmcp.lua,pkg/server.lua,pkg/json.lua— produced bysync.sh. Never edit directly; edit the root files and re-sync.pkg/lua/— the Lua + LuaSocket runtime drop-in. Download separately and place here. Suggested source: the lua-binaries project (https://github.com/rjpcomputing/luaforwindows) or a similar pre-built bundle. The MSI expectspkg/lua/lua.exe,pkg/lua/lua54.dll, and thepkg/lua/socket/+pkg/lua/mime/subdirectories per the manifest.
Issue history
Issue #18 (closed in v1.1.0) introduced this workflow after the
pkg/ lua sources had silently drifted ~6 months out of date,
missing every feature added since April 2026.