Skip to main content

Build

Dash Frontend

bash scripts/build_frontend.sh --version 0.0.0-dev -o build/frontend/dist

--version embeds the Dash version so an open browser reloads matching assets after the backend changes. Release packaging passes its resolved Dash version; the development default is 0.0.0-dev.

Success requires non-empty dist/index.html and dist/theme-bootstrap.js.

PowerShell:

powershell -File scripts/build_frontend.ps1 -Version 0.0.0-dev -OutDir build/frontend/dist

Dash Backend

go build ./cmd/dash

Dash Release Package

bash scripts/package.sh \
--version 1.2.3 \
--node-version 1.2.3 \
-o release \
-t linux/amd64 \
--tar-gz

Common options:

OptionDescription
-o OUT_DIROutput directory, default release
--version VERSIONInject Dash version
--use-git-tagUse the unique tag on the current commit as version
--node-version VERSIONBundled Ithiltir-node version
--node-localUse locally built node assets
--releaseRelease mode, requires --use-git-tag

Dash release packages currently target Linux amd64 and Linux arm64. macOS and Windows deploy assets are for nodes.

Each package writes format-v1 release.env with Dash/Node versions, target OS/architecture, and SHA-256 for all Node/runner assets. Only configs/config.example.yaml is copied; local config is excluded.

PowerShell package script:

powershell -File scripts/package.ps1 -Version 1.2.3 -NodeVersion 1.2.3 -OutDir release -Targets linux/amd64 -Zip

Ithiltir-node

Build config is in .goreleaser.yaml.

Local build:

./scripts/build.sh --version 1.2.3-alpha.1

Release build:

./scripts/build.sh --use-git-tag --release

Windows:

.\scripts\build.ps1 -UseGitTag -Release

The script installs GoReleaser v2.15.2 when missing.

Docs

npm install
npm run build

Release checks also run Go tests, frontend lint/typecheck/build, package the target, and verify the manifest, seven bundled Node/runner assets, frontend entries, and install/update scripts are present and non-empty.

Docs build does not require tests first. Code changes should add tests when they affect public contracts, state machines, error paths, concurrency, serialization, or historical bug areas.