Development Guide

February 28, 2026 ยท View on GitHub

We use a Nix DevShell to have the toolchain ready to develop in this repository, see installation reference

To enter the DevShell, one can run

just develop

or

nix develop ".#default"

Building

just build [--help]

builds the executable into githooks/bin.

Linting

just lint
# or
just lint-fix

runs all linting inside this repository containerized.

Tests and Debugging

The integration tests in tests are containerized (legacy decision, see .env file). To run the tests you can use:

Running the integration tests you can use just test *args which runs

tests/test-alpine.sh # and other 'test-XXXX.sh' files...

Run certain tests only (see just list-tests):

tests/test-alpine.sh --seq {001..120}
tests/test-alpine.sh --seq 065

Debugging in the Dev Container

There is a docker development container for debugging purposes in .devcontainer. VS Code can be launched in this remote docker container with the extension ms-vscode-remote.remote-containers. Use Remote-Containers: Open Workspace in Container... and Remote-Containers: Rebuild Container.

Once in the development container: You can launch the VS Code tasks:

  • [Dev Container] go-delve-installer
  • etc...

which will start the delve debugger headless as a server in a terminal. You can then attach to the debug server with the debug configuration Debug Go [remote delve]. Set breakpoints in the source code to trigger them.