Skip to content
Beskid The Beskid Book

Beskid

Jump to a Beskid service

Beskid

Jump to a Beskid service

01.3 Build from source

When prebuilt CLI binaries are not enough—compiler workspace, Rust toolchain, and local `beskid` binaries.

Build from source

Sometimes you need the compiler at exactly the commit you are hacking on. Sometimes CI artifacts lag your branch by one merge. Sometimes you just distrust binaries you did not compile yourself. Valid.

  • Rust toolchain matching the compiler workspace (see compiler/rust-toolchain.toml if present).
  • Clone the compiler submodule/repo (Beskid superrepo: compiler/).
  • Patience for a full workspace build the first time.

The CLI crate is beskid_cli in the compiler workspace (compiler/crates/beskid_cli/). Workspace members and shared deps live in the root Cargo.toml—follow existing crate boundaries; do not invent a second CLI entry crate because you were bored.

From the compiler repository root:

Terminal window
cargo build -p beskid_cli --release

Your binary lands under target/release/beskid (exact path follows Cargo’s target dir). Put that directory on PATH ahead of release installs, or invoke with an absolute path while iterating.

The VS Code extension can use a bundled language server or a path you configure for local development (covered in VS Code and LSP). Rule of thumb: one beskid/beskid-lsp build per terminal session—mixing release CLI with debug LSP from another commit is how you get “but it worked in the editor.”

ReasonBuild from source
Contributing compiler/LSP fixesYes
Bisecting a regression on mainYes
Writing Beskid application code onlyPrefer release CLI
CI reproducibilityPin release + hash; source optional

First smoke test