Skip to content

feat: depend on bash; MSYS2 is the supported Windows bash#11

Merged
capocasa merged 2 commits into
mainfrom
windows
Jun 26, 2026
Merged

feat: depend on bash; MSYS2 is the supported Windows bash#11
capocasa merged 2 commits into
mainfrom
windows

Conversation

@capocasa

Copy link
Copy Markdown
Owner

3code depends on bash. On Windows, the installer drops a private MSYS2 into
`%LOCALAPPDATA%\3code\msys64` so 3code owns its bash + unix toolset
deterministically (no system-root probing, no PATH fallback, no WSL-launcher
risk). `resolveBash` looks at the bundle, then a config `bash_path` override,
then hard-fails at startup.

Source (compiles out on POSIX via `when defined(windows)`):

  • `streamexec.nim`: `resolveBash`/`bundledMsys2Bash` + Windows launcher branch
  • `threecode.nim`: `ensureBash()` guard after `refuseRoot()`
  • `config.nim`: `bashPathOverride` global + `bash_path` setting
  • `test_streamexec.nim`: Windows suite (no-bundled-bash contract)

Installer (`3code.capocasa.dev`, separate): one command for fresh install

CI: adds `windows.yml` (fast Windows-only build+publish, mirrors `osx.yml`).
This PR triggers the full `release.yml` matrix via `pull_request`, including the
windows-latest leg.

Cross-compile of `streamexec.nim` + `test_streamexec.nim` passes under
`--os:windows`. Linux build + tests green.

@capocasa capocasa merged commit 333bea4 into main Jun 26, 2026
4 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant