Skip to content
Changelog

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 README lists 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 aux and nul, the characters < > : " \ | ? *, names that end in a space or a period, and paths that differ only by case. A single bad name makes git clone fail on Windows, so the filename guidance always applies.
  • Repositories commit a .gitattributes file that fixes line endings, set the executable bit through Git, and avoid symlinks.
  • Scripts stay portable. In package.json, use cross-env for environment variables and rimraf for deletes, quote arguments with escaped double quotes, and move anything longer into a Node script. A single-quoted glob matches no files under cmd.exe, so a lint step passes having checked nothing.
  • Enforcement is a reminder, not a gate. An optional shared action, check-portable-paths in NT-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.

Type to search…

↑↓ navigate↵ selectEsc close