fix(update): rename hermes.exe before uv/pip install on Windows - #23408
Closed
uzunkuyruk wants to merge 1 commit into
Closed
fix(update): rename hermes.exe before uv/pip install on Windows#23408uzunkuyruk wants to merge 1 commit into
uzunkuyruk wants to merge 1 commit into
Conversation
Windows holds a file lock on any running .exe, causing uv pip install -e . to fail with 'Access is denied (os error 5)' when it tries to overwrite the active hermes.exe in venv/Scripts/. Add _rename_active_windows_exe() which renames hermes.exe to hermes.exe.old before the install step. Windows allows renaming an open executable in place, releasing the write lock so the installer can write a fresh hermes.exe. Add _cleanup_windows_exe_old() which removes the .old file in a finally block after the install completes (success or failure). No-op on non-Windows platforms. Fixes NousResearch#23327
Collaborator
|
Likely superseded by #23394 (merged) which fixes the same |
Contributor
|
Closing as superseded by #23394. Triage notes (high confidence): Thanks for the contribution — the underlying problem this PR addresses has been resolved by the linked PR on current main. If you believe this was closed in error, please comment and we'll reopen. (Bulk-closed during a CLI PR triage sweep.) |
This was referenced Jul 30, 2026
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Fixes
hermes updatefailing on Windows withAccess is denied (os error 5)whenuv pip install -e .tries to overwrite the activehermes.exeinvenv/Scripts/.Windows holds a file lock on any running
.exe, preventing it from being overwritten. The fix renameshermes.exetohermes.exe.oldbefore the install step — Windows allows renaming an open executable in place, which releases the write lock so the installer can write a freshhermes.exe. The.oldfile is cleaned up in afinallyblock after the install completes (success or failure).Two helper functions added to
hermes_cli/main.py:_rename_active_windows_exe()— renamesvenv/Scripts/hermes.exeto.oldbefore install; no-op on non-Windows_cleanup_windows_exe_old()— removes the.oldbackup; called infinallyso it always runsNo-op on Linux/macOS. No behavior change on non-Windows platforms.
Type of Change
References
Fixes #23327
Checklist