Releasing

August 23, 2026 ยท View on GitHub

The version string is Version in internal/version/version.go. Keep it at 0.1.0 until you intend the next release. make reads that file. fx-lan --version and the names under dist/ (fx-lan-0.1.0-darwin-arm64.dmg, and so on) all use it.

CHANGELOG.md must have a ## heading with the same number. go test ./internal/version checks that.

First release (0.1.0)

Do not bump the number. Commit the tree, then:

go test ./...
make release
make tag
git push origin main
git push origin v0.1.0

make tag creates the annotated git tag v0.1.0. It refuses if the working tree is dirty or if that tag already exists. Attach the files in dist/ (*.tar.gz, *.zip, *.dmg, SHA256SUMS) to the GitHub (or other) release for that tag.

Later releases

Version numbers follow the usual pattern: patch for fixes (0.1.0 โ†’ 0.1.1), minor for features (0.2.0), major if the Gateway protocol or config names break. A suffix such as 0.2.0-pre is allowed.

  1. Set Version in internal/version/version.go.
  2. Add a ## X.Y.Z section at the top of CHANGELOG.md.
  3. Commit that change.
  4. Run go test ./... and make release.
  5. Run make tag and push the branch plus vX.Y.Z.

make VERSION=... rebuilds with an explicit stamp. For a real release, edit version.go instead so the fallback go build and the packages stay on the same number.

Author of this project is Nate Brown. Git commits should use that name and the same email as the eggbot releases (agent2x0r.xsfmy@passmail.net).