This repository has two primary deliverables:
- The Go binary (
portabledesktop) — standalone CLI. - The Nix runtime artifact (
result/output.tar,result/output/,result/manifest.json).
# Build viewer JS (requires Bun)
make viewer
# Build without embedded runtime (for development)
make build-dev
# Set runtime directory manually
export PORTABLEDESKTOP_RUNTIME_DIR=/path/to/runtime/output
./pd/dist/portabledesktop up --jsonFor full builds with embedded runtime:
./scripts/build.sh # Build Nix runtime
make build # Builds runtime + viewer + Go binaryFor broader compatibility checks:
./scripts/matrix.sh --skip-buildmake vet
make testBefore opening a PR:
- Run
make vet. - Run
make test. - Run
make build-dev(ormake buildfor full build). - If runtime-related, run
./scripts/smoke.sh --skip-build. - If runtime-related, run
./scripts/matrix.sh --skip-build.
Include in your PR description:
- Behavior change summary.
- Compatibility impact (x64/arm64, distro notes).
- Exact commands used for verification.
Releases are tag-driven:
- Create and push tag
vX.Y.Z. - GitHub Actions builds Go binaries + GitHub release artifacts.