Skip to content

Latest commit

 

History

History
78 lines (50 loc) · 2.61 KB

File metadata and controls

78 lines (50 loc) · 2.61 KB

Windows development

This guide covers the basic local development and verification workflow for Beam on Windows. Run the commands from the repository root in PowerShell.

Prerequisites

Install the project dependencies once after cloning or when the lockfile changes:

bun install --frozen-lockfile

Run Beam locally

Use two PowerShell terminals. Keeping the Vite server running separately lets Electron start as soon as its native capture engine is ready.

In the first terminal, start the Vite server:

bun run dev

In a second terminal, start Electron:

bun run electron:dev

Keep both terminals open while developing. Stop the processes with Ctrl+C.

bun run electron:dev checks Cargo before starting. When Cargo is available, it rebuilds the engine and stops if compilation fails. Without Cargo, it looks for the exact application version and CPU architecture in packages/native-recorder. If the engine is missing in an interactive terminal, confirm the verified download with Y; answer N to stop. A non-interactive process never prompts and downloads only when BEAM_DOWNLOAD_CAPTURE_ENGINE=1 is set explicitly.

Build a Windows executable

Create the Windows NSIS installer without publishing a release:

bun run electron:build -- --win nsis --publish never

The installer and its build metadata are written to dist_electron/.

Tests and coverage

Run the JavaScript tests, the Vitest suite with coverage, and the TypeScript check with:

bun run test
bun run test:coverage
bun run typecheck

The TypeScript coverage gate is 90% for statements, branches, functions, and lines. Rust changes should also be checked with:

bun run rust-test
bun run rust-test:coverage

Before changing code

Read and follow the repository guidelines:

Publish a release

  1. Update package.json to a new stable semantic version, for example 0.1.1.
  2. Commit the change with a message beginning with [RELEASE] and push it from the ExtraBinoss account.

The GitHub Actions workflow checks that the version is newer than the latest GitHub Release, validates every package and checksum in a draft release, then publishes the universal Windows installer and the macOS/Linux packages atomically.