Files
lmcp/windows/README.md
T
test0r 7e62f71931 v1.1.0/#18: windows MSI build — sync.sh + tracked manifest
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>
2026-05-17 19:43:27 +00:00

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 manifest
    • sync.sh — copies root .lua sources → pkg/
    • README.md — this file
    • pkg/install_service.bat — Windows service installer
    • pkg/start.bat — manual launcher
  • Generated / external (gitignored):

    • pkg/lmcp.lua, pkg/server.lua, pkg/json.lua — produced by sync.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 expects pkg/lua/lua.exe, pkg/lua/lua54.dll, and the pkg/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.