Repositories work on Windows and Unix
announcementrepositories
Cross-platform repositories is a new page. Our engineers work on Windows, macOS, and Linux, and a repository should work for all of them.
- Windows engineers develop natively by default, and repositories aim to build, test, and run on Windows and Unix. The repository’s
READMElists the systems it supports. - For a hard dependency that does not support Windows, a Windows engineer uses WSL2. The repository says so in its
README, and the clone lives under/home/<user>/, not/mnt/c/. ADR-0007 records the decision. - Repositories avoid filenames Windows cannot check out. That covers reserved device names such as
auxandnul, the characters< > : " \ | ? *, names that end in a space or a period, and paths that differ only by case. A single bad name makesgit clonefail on Windows, so the filename guidance always applies. - Repositories commit a
.gitattributesfile that fixes line endings, set the executable bit through Git, and avoid symlinks. - Scripts stay portable. In
package.json, usecross-envfor environment variables andrimraffor deletes, quote arguments with escaped double quotes, and move anything longer into a Node script. A single-quoted glob matches no files undercmd.exe, so a lint step passes having checked nothing. - Enforcement is a reminder, not a gate. An optional shared action,
check-portable-pathsinNT-NinjaTrader/gh-actions, flags a bad path early and does not block a merge. The page shows how to call it. The action is in review and has no release tag yet. - The page also covers how to rename a bad path from a machine that can hold it.
Team standards links to the page from its platform-wide table.