[PR #7211] docs: note symlink EPERM in Windows source test failures #7719

Open
opened 2026-11-03 13:39:53 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/7211
Author: @KJLavender
Created: 10/26/2026
Status: 🔄 Open

Base: main ← Head: docs/windows-symlink-tests


📝 Commits (1)

  • cf97351 docs: note symlink EPERM in Windows source test failures

📊 Changes

1 file changed (+3 additions, -2 deletions)

View changed files

📝 CONTRIBUTING.md (+3 -2)

📄 Description

Summary

CONTRIBUTING already warns that some source tests fail on a Windows checkout and lists the usual reasons (POSIX paths, #!/bin/sh stubs, rename semantics). Symlink creation is missing from that list, and on my machine it was the single most common cause. This adds one sentence for it.

Problem and expected behavior

On Windows, fs.symlink needs Developer Mode or an elevated shell. Without either, every test that builds a symlink fixture fails with EPERM: operation not permitted, symlink .... GitHub's Windows runners are elevated, so CI never sees it, and a contributor who hits it has nothing in the docs pointing at the cause.

Change and scope

Docs only: one sentence in the "Windows source checkouts" section of CONTRIBUTING.md. I didn't touch the tests. The failures are spread over 39 files and most Windows failures have other causes anyway, so a skip helper wouldn't make the suite green on Windows.

Contract and boundary impact

  • Semantic owner and earliest changed stage: not applicable (docs)

  • Contribution scope fit and linked maintainer decision: not applicable

  • CLI and MCP/tool-catalog contract: none

  • Provider, bridge, target-format, or platform compatibility: none

  • Evidence, artifact, provenance, or reconstruction contract: none

  • Target selection, authority, upstream behavior, and cleanup details (if applicable): not applicable

  • Generated metadata, package, or installation impact: none

  • Documentation or usability only; no target interaction.

Evidence and regression coverage

  • Tests added or updated: none
  • Base reproduction or other evidence: full vitest run on origin/main (1173c0a9), Windows 11, Node 24.22.1, non-elevated shell, Developer Mode off. 12,063 tests: 733 failed, and 96 of those (in 39 files) fail with EPERM ... symlink. I went through six of those files by hand, and in each one the symlink calls were the only thing failing.
  • Remaining proof gaps: I haven't rerun with Developer Mode on or in an elevated shell. The claim rests on Windows' documented symlink privilege rules and on CI (elevated) passing these tests.

Validation performed

  • npm run docs:check: passed

Compatibility, safety, and release

  • Breaking changes or migration steps: none
  • Real Hopper/Ghidra, browser, or OS coverage: Windows 11 (measurement only)
  • Package or release metadata impact: none
  • Security, privacy, process, or containment review: none

Author readiness

Human owner: @KJLavender

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/7211 **Author:** [@KJLavender](https://github.com/KJLavender) **Created:** 10/26/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `docs/windows-symlink-tests` --- ### 📝 Commits (1) - [`cf97351`](https://github.com/morluto/rea/commit/cf97351375f595a4615c17c1bd436d2dbe84574b) docs: note symlink EPERM in Windows source test failures ### 📊 Changes **1 file changed** (+3 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `CONTRIBUTING.md` (+3 -2) </details> ### 📄 Description ## Summary CONTRIBUTING already warns that some source tests fail on a Windows checkout and lists the usual reasons (POSIX paths, `#!/bin/sh` stubs, rename semantics). Symlink creation is missing from that list, and on my machine it was the single most common cause. This adds one sentence for it. ## Problem and expected behavior On Windows, `fs.symlink` needs Developer Mode or an elevated shell. Without either, every test that builds a symlink fixture fails with `EPERM: operation not permitted, symlink ...`. GitHub's Windows runners are elevated, so CI never sees it, and a contributor who hits it has nothing in the docs pointing at the cause. ## Change and scope Docs only: one sentence in the "Windows source checkouts" section of CONTRIBUTING.md. I didn't touch the tests. The failures are spread over 39 files and most Windows failures have other causes anyway, so a skip helper wouldn't make the suite green on Windows. ## Contract and boundary impact - Semantic owner and earliest changed stage: not applicable (docs) - Contribution scope fit and linked maintainer decision: not applicable - CLI and MCP/tool-catalog contract: none - Provider, bridge, target-format, or platform compatibility: none - Evidence, artifact, provenance, or reconstruction contract: none - Target selection, authority, upstream behavior, and cleanup details (if applicable): not applicable - Generated metadata, package, or installation impact: none - [x] Documentation or usability only; no target interaction. ## Evidence and regression coverage - Tests added or updated: none - Base reproduction or other evidence: full `vitest` run on origin/main (1173c0a9), Windows 11, Node 24.22.1, non-elevated shell, Developer Mode off. 12,063 tests: 733 failed, and 96 of those (in 39 files) fail with `EPERM ... symlink`. I went through six of those files by hand, and in each one the symlink calls were the only thing failing. - Remaining proof gaps: I haven't rerun with Developer Mode on or in an elevated shell. The claim rests on Windows' documented symlink privilege rules and on CI (elevated) passing these tests. ## Validation performed - `npm run docs:check`: passed ## Compatibility, safety, and release - Breaking changes or migration steps: none - Real Hopper/Ghidra, browser, or OS coverage: Windows 11 (measurement only) - Package or release metadata impact: none - Security, privacy, process, or containment review: none ## Author readiness Human owner: @KJLavender - [ ] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [ ] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [ ] I declare this PR ready for initial maintainer review. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#7719
No description provided.