Skip to content

Development

You need Go 1.26+.

go build ./... && go test ./...
go test -tags sqlite ./pkg/temporal/embedded/ ./pkg/integration/   # boots a real Temporal in-process

The server binary is big (about 175 MB) because the whole Temporal server and Web UI are baked in. The Dockerfiles use BuildKit cache mounts, so rebuilds stay quick.

gopbs replace

go.mod currently replaces github.com/osshield/gopbs with a sibling checkout (../gopbs-fallbck, branch fallbck-session-dialer) that adds pbs.Config.DialSession. Until that's merged and tagged, Docker and CI builds need the replace pointed at a published version.

For a local stack to poke at, see Try it locally.

Releases

GoReleaser builds everything from the Release GitHub Action when a v* tag is pushed. Every push to main and every PR gets a snapshot build as a workflow artifact, so packaging can't quietly rot.

Publishing to the package repos needs the PKG_UPLOAD_PASSWORD repo secret (the linux_push user of *.pkg.lv).

Docs

This site is in docs/ and gets built with Zensical from mkdocs.yml. Preview it locally:

pip install zensical
zensical serve

Pushes to main that touch docs/ or mkdocs.yml deploy to GitHub Pages automatically.