Skip to content

Windows bootstrap missing libclang and protoc; cargo build fails #11301

@cbeaulieu-gt

Description

@cbeaulieu-gt

Pre-submit Checks

Describe the bug

script/windows/bootstrap.ps1 advertises that it installs all required build dependencies, but two hard build dependencies are missing on Windows:

  1. protoc (the Protocol Buffers compiler) — required by prost-build, used by the warp_multi_agent_api crate (a git-dep of warpdotdev/warp-proto-apis). This is the first failure a contributor hits.
  2. libclang — required by bindgen-style build scripts elsewhere in the workspace. This is the same gap that was fixed on Linux in Add libclang-dev and clang-format to Linux bootstrap deps #9527 (which resolved Linux bootstrap is missing libclang-dev and clang-format, breaking script/presubmit #9526); the Windows side of the same gap has never been closed.

After a fresh bootstrap, cargo build --release fails on protoc first. Once protoc is installed manually, the build proceeds further but is expected to fail again on libclang for the same structural reason.

To reproduce

On a Windows 11 machine with no prior Rust toolchain:

  1. Clone warpdotdev/warp (master at b376889).
  2. Run .\script\windows\bootstrap.ps1 — completes without error.
  3. Open a fresh PowerShell so PATH is refreshed.
  4. Run cargo build --release from the repo root.
  5. Build progresses through the dependency graph, then fails compiling warp_multi_agent_api.

Exact error:

error: failed to run custom build command for `warp_multi_agent_api v0.0.0 (https://github.com/warpdotdev/warp-proto-apis.git?rev=9a2d2425c5d1eb40fb547956e659511906e03f9e#9a2d2425)`

Caused by:
  process didn't exit successfully: `...\target\release\build\warp_multi_agent_api-...\build-script-build` (exit code: 1)
  --- stderr
  Error: Custom { kind: NotFound, error: "Could not find `protoc`. If `protoc` is installed, try setting the `PROTOC` environment variable to the path of the `protoc` binary. Try installing `protobuf-compiler` or `protobuf` using your package manager. It is also available at https://github.com/protocolbuffers/protobuf/releases" }

Expected behavior

After .\script\windows\bootstrap.ps1 completes, a fresh cargo build --release should succeed without any additional manual setup. Both protoc and libclang are hard build dependencies for any contributor on Windows, so the bootstrap script should install them alongside the existing Visual Studio Build Tools / CMake / InnoSetup / jq steps. This is the Windows analogue of the Linux gap fixed in #9527.

Workaround

For protoc:

winget install protobuf

For libclang, the standard approach is installing LLVM:

winget install LLVM.LLVM

After both, open a fresh shell so PATH refreshes and re-run cargo build --release. Cargo resumes from the failed crate.

Operating system (OS)

Windows

Operating system and version

Windows 11 Pro, 10.0.26200 (build 26200)

Current Warp version

N/A — building from source. Repository state: b376889 on master.

Regression

No, this bug or issue has existed throughout my experience using Warp. This is the first time I've attempted a local build. The protoc gap likely dates to whenever warp_multi_agent_api was added to default workspace members; the libclang gap has the same shape as the Linux issue fixed by #9527.

Does this block you from using Warp daily?

No — this affects local development and contribution, not daily use of the shipped Warp binary.

Is this an issue only in Warp?

Yes — this is specific to Warp's script/windows/bootstrap.ps1 not installing a required build tool.

Additional context

A candidate fix is already proposed in PR #10911 ("Install libclang and protoc in Windows bootstrap" by @AndreKalberer, opened 2026-05-14). That PR's scope matches this issue exactly — both deps. It is currently blocked partly because Oz flagged that it has no linked ready-to-implement issue to back it under Warp's contribution model (per CONTRIBUTING.md). Filing this issue should unblock that linkage.

Related precedents (Linux side of the same gap):


🤖 Generated by Claude Code on behalf of @cbeaulieu-gt

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:launch-configsLaunch configurations, workflows, tab configs, and automation entry points.bugSomething isn't working.os:windowsWindows-specific behavior, regressions, or requests.ready-to-implementThe issue is ready for implementation work.repro:highThe report includes enough evidence that the issue appears highly reproducible.triage-reviewedtriagedIssue has received an initial automated triage pass.warp:auto-triage-review

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions