Files
logpile/bible-local/08-build-release.md
2026-03-16 00:32:09 +03:00

2.0 KiB

08 — Build & Release

CLI flags

Defined in cmd/logpile/main.go:

Flag Default Purpose
--port 8082 HTTP server port
--file empty Preload archive file
--version false Print version and exit
--no-browser false Do not auto-open browser
--hold-on-crash true on Windows Keep console open after fatal crash

Common commands

make build
make build-all
make test
make fmt
make update-pci-ids

Notes:

  • make build outputs bin/logpile
  • make build-all builds the supported cross-platform binaries
  • make build and make build-all run scripts/update-pci-ids.sh --best-effort unless SKIP_PCI_IDS_UPDATE=1

PCI IDs

Source submodule: third_party/pciids Embedded copy: internal/parser/vendors/pciids/pci.ids

Typical setup after clone:

git submodule update --init third_party/pciids

Release script

Run:

./scripts/release.sh

Current behavior:

  1. Reads version from git describe --tags
  2. Refuses a dirty tree unless ALLOW_DIRTY=1
  3. Sets stable Go cache/toolchain environment
  4. Creates releases/{VERSION}/
  5. Creates a release-notes template if missing
  6. Builds darwin-arm64 and windows-amd64
  7. Packages any already-present binaries from bin/
  8. Generates SHA256SUMS.txt

Important limitation:

  • scripts/release.sh does not run make build-all for you
  • if you want Linux or additional macOS archives in the release directory, build them before running the script

Toolchain note:

  • scripts/release.sh defaults GOTOOLCHAIN=local to use the already installed Go toolchain and avoid implicit network downloads during release builds
  • if you intentionally want another toolchain, pass it explicitly, for example GOTOOLCHAIN=go1.24.0 ./scripts/release.sh

Run locally

./bin/logpile
./bin/logpile --port 9090
./bin/logpile --no-browser
./bin/logpile --version

macOS Gatekeeper

xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64