#35356 ci: Test build dir with spaces

full analysis

https://github.com/bitcoin/bitcoin/pull/35356 · maflcko · +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

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.

Data

dossier JSON · extract JSON · model openrouter/google/gemini-3.8-flash, generated 2026-09-17T15:52, confidence high, input hash 747f0f77cdd6c7a0