Skip to content

Windows support M1: LF line endings, cmd-safe lint globs, non-blocking Windows CI - #19

Draft
DKoenig9 wants to merge 3 commits into
mainfrom
feat/windows-m1
Draft

DKoenig9 wants to merge 3 commits into
mainfrom
feat/windows-m1

Conversation

@DKoenig9

Copy link
Copy Markdown
Contributor

First step of native Windows support (PowerShell / Git Bash, no WSL). Only changes that don't depend on a test on a real Windows machine.

Changes

  • .gitattributes: LF in the working tree regardless of core.autocrlf. Git for Windows defaults to autocrlf=true; a clone with that setting has 149 CRLF files on main and 1 on this branch. The remaining one is playground/server/true.cmd, which *.cmd text eol=crlf checks out with CRLF on purpose. git add --renormalize . produces no content change. .editorconfig already sets end_of_line = lf.
  • lint / lint:fix: the glob is now double-quoted. cmd.exe passes single quotes through literally, so eslint received '**/*.{ts,js,vue}' including the quotes and reported "No files matching the pattern".
  • .github/workflows/windows.yml: separate workflow on windows-latest with continue-on-error: true. Nothing in next.yml or release.yml waits on it, so a red run never holds up a release. Steps: core.autocrlf=true, checkout, fail if any file other than *.cmd/*.bat is checked out with CRLF, npm ci, build playground (the module tsconfig extends playground/nuxt-app/.nuxt/tsconfig.json), npm run build, npm run lint. Node lts/*, same as the existing Linux workflows.

Pre-existing, not caused by this PR

npm run lint already fails on main on every platform: ESLint 9.34 rejects the config from @lenne.tech/eslint-config-vue 2.1.3 (vue/object-property-newline: unexpected property allowMultiplePropertiesPerLine). No workflow ran lint so far. The Windows lint step stays red until that dependency is fixed.

Published package

No blocker found for Windows consumers: dist/ has no shell calls or POSIX-only commands, and paths go through Nuxt's resolver. scripts/bundle-interop.mjs is build-time only and not published.

🤖 Generated with Claude Code

https://claude.ai/code/session_013AdTeADfo4e7vzGstUSnSM

DKoenig9 and others added 3 commits September 14, 2026 11:44
Pins LF in the working tree regardless of core.autocrlf, so Windows
checkouts (Git for Windows defaults to autocrlf=true) match the repo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013AdTeADfo4e7vzGstUSnSM
cmd.exe passes single quotes through literally, so eslint received
'**/*.{ts,js,vue}' including the quotes and found no files on Windows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013AdTeADfo4e7vzGstUSnSM
Runs on windows-latest with core.autocrlf=true, checks that no file
except *.cmd/*.bat is checked out with CRLF, then builds the playground,
builds the module and lints. Separate workflow with continue-on-error,
so next.yml and release.yml never wait on it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013AdTeADfo4e7vzGstUSnSM
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