Skip to content

Unify executor binary names to mxc-exec* across platforms #546

Description

@MGudgin

Description of the task

Unify the executor binary names to a single mxc-exec family across all three platforms. Today the entry executables are named inconsistently:

Platform Current name Crate
Windows wxc-exec.exe wxc / wxc_common
Linux lxc-exec lxc
macOS mxc-exec-mac mxc_darwin

Only one of the three (mxc-exec-mac) even matches the product name "MXC"; wxc- does not. A single, consistent mxc-exec (with .exe on Windows) is cleaner, matches @microsoft/mxc-sdk, and lets the SDK binary-discovery logic in sdk/src/platform.ts collapse its three per-OS find*Executable functions toward a single name.

Scope note: the Windows build also ships a wxc-* helper family (wxc-windows-sandbox-guest, wxc-windows-sandbox-daemon, winhttp-proxy-shim, wxc-test-proxy, wxc-host-prep). To avoid a half-consistent set, this task should rename the whole wxc-*/lxc-exec/mxc-exec-mac family to mxc-*, not just the entry binary.

Expected outcome: all executor binaries use the mxc-* naming convention; build scripts, SDK discovery, docs, and test scripts are updated; and a backward-compatibility alias is provided for a deprecation window so existing invocations (notably the documented wxc-exec --prepare-system-drive host-setup CLI) keep working.

Additional context

Blast radius (current references in the repo): wxc-exec ~461, lxc-exec ~126, mxc-exec-mac ~65 across .rs, build scripts (build.bat/build.sh/build-mac.sh), test scripts, docs, CI YAML, and the Cargo [[bin]] names in the wxc, lxc, and mxc_darwin crates.

Suggested approach:

  • Rename Cargo [[bin]] targets and the producing crates' output names.
  • Update build.bat / build.sh / build-mac.sh copy steps.
  • Simplify sdk/src/platform.ts discovery to a single mxc-exec name (plus .exe on Windows).
  • Update docs (docs/host-prep.md, docs/lxc-support/, docs/macos-support/, per-backend guides) and .github/copilot-instructions.md (Binary naming section).
  • Update test scripts under test_scripts/ and any E2E harness that invokes binaries by name.
  • Ship a back-compat alias/shim (or symlink) under the old names for at least one release, with a deprecation note.

Backward-compatibility considerations:

  • wxc-exec --prepare-system-drive / --unprepare-system-drive is a documented host-setup CLI; external scripts may depend on it.
  • Test drivers and the wxc_test_driver invoke binaries by name.

Sequencing: do this after the SDK platform-package packaging change (#512), so the rename rebases onto the simpler per-platform package layout rather than the legacy bin/<arch>/ tree.

Related: #512.

Metadata

Metadata

Assignees

No one assigned

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions