#35356 ci: Test build dir with spaces
https://github.com/bitcoin/bitcoin/pull/35356 · · +13/-4 in 1 files, 2 commits · labels: Tests, CI failed · draft
Goal
- Run Windows CI builds from a directory containing spaces
- Catch path-quoting and subprocess bugs before they reach developers using spaced paths
This pull request configures Windows CI in `.github/ci-windows.py` to use a build directory with spaces (`build_ _`) and sets a dedicated `VCPKG_INSTALLED_DIR`. This ensures that path-handling logic and subprocess invocation on Windows are exercised against paths containing spaces.
Problem: CI previously did not test build directories with spaces on Windows, allowing path-quoting and subprocess-handling bugs (such as external signer invocation in functional tests) to slip through undetected.
Category: Build and CI (#25 of 55)
P3 · test coverage
- P3 because it adds automated coverage for paths with spaces in developer environments
- Windows CI is needed because Linux symlink resolution can bypass subprocess space-handling tests
Testing paths with spaces in CI provides worthwhile coverage for developer environments and cross-platform path handling. maflcko notes that on Linux symlinks drop spaces during resolution, so Windows testing is needed to exercise `subprocess.h` handling of paths with spaces.
Membership: Modifies .github/ci-windows.py to adjust CI build directories and environment variables.
Factors: security/stability 1, bug 1, performance 0, user value 0, leverage 1
Reviewability: Stale: CI failing
- CI is failing consistently because this test exposes an existing bug in external signer path handling
CI fails consistently on the Windows run because the change exposes an existing bug in wallet_signer.py and external signer handling of spaces in paths.
Author status: active; re-triggered CI in August 2026 to verify failure state
Open concerns:
- The change causes CI to fail because an existing bug in external signer path parsing fails when the path contains spaces.
Agreement: Positive
- General agreement on testing spaced paths in CI once the exposed bug is resolved
- Concept approval without stated reasons (hebasto)
- Confirmed the Windows CI failure is expected and reproduces an underlying bug (fanquake, maflcko)
Concept ACK from hebasto; fanquake and maflcko confirmed expected CI failure exposing a bug
The goal of testing spaces in paths in CI is accepted, though merging requires addressing the bug it exposes.
- hebasto: 'Concept ACK.'
- fanquake: posted CI traceback showing wallet_signer failure on Windows
- maflcko: 'The Windows CI fails, as expected. To reproduce on Linux: ...'
Review verdicts (DrahtBot): 0
- Concept ACK: hebasto
Files
0 lines under test/bench/ci.
- .github/ci-windows.py +13/-4
Card
This PR modifies Windows CI (.github/ci-windows.py) to build in a directory with spaces (build_ _) and sets VCPKG_INSTALLED_DIR. The goal is to detect bugs in subprocess and path handling on Windows that do not get caught on Linux due to symlink resolution. The PR immediately triggered a known bug in wallet_signer.py where spaces in the mock signer path fail execution, leaving CI red. hebasto provided a Concept ACK, but the PR remains a draft awaiting a fix for the underlying path-handling bug.