ADR-0007: Development host is a Linux container; Windows host is a file server
Status: Accepted, 2026-11-08
Context #
Work started on a Windows 11 machine. Mojo 1.2.0 has no Windows build; the mission excludes Windows as a target. The machine has Docker Desktop (WSL2 backend, Linux x86-64, 12 logical cores, 15 GB RAM) and network access. No GPU is exposed to containers, so Vulkan is Mesa lavapipe (software), which is exactly the Linux CI configuration the mission prescribes for golden-image tests.
Two Windows-specific hazards were hit on day one and are recorded here so they are not re-discovered:
- The app's session workspace path is ~200 characters. Git submodule clones failed with "Filename too
long" and "'$GIT_DIR' too big" because Git's remote helper and loose-object paths exceeded
MAX_PATH. Fix: map the folder to a drive letter (subst X: <path>) and run git fromX:\. No files move. - MSYS bash rewrites arguments that look like POSIX paths (
-w /workbecameC:/Program Files/Git/work). Fix:MSYS_NO_PATHCONV=1for docker invocations.
Decision #
- All compilation, tests and benchmarks run inside
cinder-toolchain:0(docker/Dockerfile.toolchain, Ubuntu 24.04 + pixiv0.63.2+ clang/cmake/ninja + Mesa Vulkan + X11/Wayland dev headers). The project folder is bind-mounted at/work. pixiinside the container installs Mojo1.2.0fromhttps://conda.modular.com/max/.- The same
pixi.tomltasks run unchanged on native Linux and macOS, so nothing in the repository depends on the container. - macOS (Metal) verification is not possible on this host. It is an open CI requirement, see
docs/STATUS.mdand the Blockers section ofREPORT.md.
Consequences #
- Benchmarks measured here are software-rasteriser numbers and do not satisfy section 8's reference hardware; they are reported as such, never as budget results.
- Build caches (
.pixi/,native/build/) live on the bind mount; this is slower than a native volume but keeps everything visible on the host. If it becomes a bottleneck, a named Docker volume fornative/buildis the first thing to try.