Developer environment setup
Setting up a local workstation to build, test, and develop exocomp: toolchain, sandbox, and git hooks.
exocomp compiles to a single static Go binary (exocompd / exocomp) with zero external C library dependencies.
Prerequisites
- Go toolchain: Go 1.23 or newer.
- Container runtime: Rootless Podman 5.0+ (or Docker 26+).
- Execution tools:
ansible-core(>= 2.17)opentofu(>= 1.8)restic(>= 0.17)age(>= 1.2)sops(>= 3.9)uv(>= 0.4)
- Sandboxing (Linux):
nonoinstalled onPATHfor theenforcingsandbox tier.
Installing Git hooks
The repository enforces pre-commit, pre-push, and commit-msg quality gates via pre-commit:
pip install pre-commit
make hooks
This wires:
pre-commit: Automatically runsmake check(formatting, vet, lint, tidy,go test -short).commit-msg: Rejects titles longer than 52 characters, non-conventional formats, or commit trailers (Invariant 9).pre-push: Runs the fullmake check-racesuite.
Building the binary
Compile the local binary into bin/exocomp:
make build
Verify build output and embedded version metadata:
./bin/exocomp version