Skip to content

fix(pyvolca): don't mistake a volca directory for the engine binary#184

Merged
ccomb merged 1 commit into
mainfrom
fix/server-find-binary-is-file
Jul 7, 2026
Merged

fix(pyvolca): don't mistake a volca directory for the engine binary#184
ccomb merged 1 commit into
mainfrom
fix/server-find-binary-is-file

Conversation

@ccomb

@ccomb ccomb commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Running a pyvolca script from a source checkout that has a volca/ package directory in the working tree left Server unable to start: _find_binary used Path(self.binary).exists(), which matches a directory, so it returned that directory as the binary. Popen then spawned an unexecutable path and start() blocked until the wait timeout instead of using the downloaded binary.

The lookup now checks for a file (is_file()) at both the explicit-binary and dev-tree fallbacks, so a same-named directory no longer shadows the real binary. Adds tests/test_server.py for the shadowing case.

Ships as pyvolca 0.7.1 (fix only). The README compatibility block is regenerated to match the version bump; full suite green (183 passed, 7 skipped).

Server._find_binary probed `Path(self.binary).exists()`, which is true for a
directory. Running a script from a source checkout that has a `volca/` package
directory in the working tree returned that directory as the binary; Popen then
spawned an unexecutable path and start() hung until the wait timeout.

Check for a file (`is_file()`) at both the explicit-binary and dev-tree
fallbacks. Adds tests/test_server.py covering the shadowing case.

Cuts pyvolca 0.7.1 (fix only; README compat block regenerated).
@ccomb ccomb force-pushed the fix/server-find-binary-is-file branch from 9d7f2f2 to 965702e Compare July 7, 2026 18:15
@ccomb ccomb merged commit 8d3e6fa into main Jul 7, 2026
10 checks passed
@ccomb ccomb deleted the fix/server-find-binary-is-file branch July 7, 2026 18:48
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