Nimblesite / Nimblesite/SharpLsp
make _test-vsix cannot go green on Windows — Linux-shaped staging assertions + temp-dir EPERM cleanup flakes
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 132
- Forks
- 5
- Avg merge
- 6h 24m
- Merged PRs (30d)
- 27
Description
Running the full make _test-vsix gate on Windows 11 (the primary .NET dev OS) has pre-existing platform failures unrelated to feature work:
1. Extensionless sidecar filename assertions (3 tests)
bundled-sidecars.test.ts'sidecars are present in bin/all/' assertsbin/all/sharplsp-sidecar-csharp— on Windows staging producessharplsp-sidecar-csharp.exe(MakefileEXE_EXT), soexistsSyncfails.00-vsix-dev-binary-staging.test.ts'keeps both required sidecars bundled...' — same class.bundled-binary.test.ts'sharplsp resolves from bundled source' fails downstream of the same staging-shape mismatch.
These pass in CI because ci.yml runs the gate on ubuntu only. Fix: assert platform-correct names (process.platform === 'win32' ? name + '.exe' : name), as bundled-binary.test.ts already does for the LSP binary itself.
2. after-hook EPERM temp cleanup flakes (2+ tests)
Error: EPERM, Permission denied: \?\C:\Users\...\Temp\sharplsp-debug-cmd-e2e-qGlWOA
Error: EPERM, Permission denied: \?\C:\Users\...\Temp\sharplsp-workflow-PS5Gjv
Windows holds file locks (watchers/processes) while suite teardown rmSyncs the fixture tree — same failure class as the project-deps watcher crash fixed earlier (see VSCODE-REACTIVITY-SPEC §4 fix). Teardowns need retry-on-EPERM (rmSync with maxRetries/retryDelay) and/or disposing watchers before deletion.
Evidence
Full gate on Windows: 539 passing, 16 failing — of which only 1 is an intentional tracked repro (#160). The rest split across the two classes above plus in-flight local edits. Log excerpt available on request.
Windows is where .NET developers live — the gate should be green here, not just on ubuntu CI.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the Windows make _test-vsix gate and inspect bundled-sidecars.test.ts, 00-vsix-dev-binary-staging.test.ts, and bundled-binary.test.ts, using the existing platform-aware LSP assertion as a reference. Then trace the after-hook cleanup for the debug-command and workflow fixtures, and review VSCODE-REACTIVITY-SPEC §4. Done means the gate passes on Windows without breaking the Ubuntu assertions, including reliable temporary-directory cleanup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- build-system, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100