| Task | Command |
|---|---|
| Build local binaries | make build |
| Run tests | make test |
| Pre-release check (build + test) | make release-check |
| Show version | make version or ./bin/runfabric -v |
| Local release artifacts (no publish) | goreleaser release --snapshot --clean |
| Cut a release (from local) | See Release from local below |
v0.2.0). GoReleaser injects it via -ldflags when the release workflow runs.make build # → bin/runfabric, bin/runfabricd, and bin/runfabricw (version from VERSION file)
make release-check # build + go build ./... + go test ./...
make clean # remove bin/ and go caches
The binaries are built with -trimpath and ldflags for platform/core/model.Version.
Binary intent:
runfabric: control-plane CLI (doctor/plan/build/deploy/remove/invoke/state/extensions/router/admin/project/config + workflow).runfabricw: workload-plane CLI (workflow runtime commands only: run/status/cancel/replay).runfabricd: daemon-plane CLI (runfabricd, runfabricd start|stop|restart|status) for long-running config API/dashboard operations.runfabric root is built from internal/cli; runfabricd root is built from internal/cli/daemon; runfabricw root is built from internal/cli/worker.@runfabric/cli (Node CLI wrapper). Published releases include platform-specific runfabric-<os-arch> binaries in the package (bin/). Resolution order: package bin/ → repo root bin/ → ~/.runfabric/bin/.@runfabric/sdk (Node SDK: handler contract, HTTP adapter, framework adapters). No binaries.Releases are triggered by pushing a version tag; CI then builds artifacts and publishes.
0.2.0 or 0.2.0-beta.0).## [<version>] section. Optionally add **release-notes/Run the release gate:
make release-check
From repo root:
make release-tag
On push of a tag matching v*, .github/workflows/release.yml runs:
runfabric, runfabricd, and runfabricw, then creates GitHub Release tarballs/zips and checksums.runfabric-<os-arch> binaries into packages/node/cli/bin/, sets package version from the tag, and publishes @runfabric/cli and @runfabric/sdk. Requires NPM_TOKEN in repo secrets.To build release-style artifacts locally without publishing:
goreleaser release --snapshot --clean # outputs in dist/
To build all platform binaries and pack the npm package locally (for testing):
make build-all-platforms
mkdir -p packages/node/cli/bin && (for f in bin/runfabric-*; do [ -f "$f" ] && cp "$f" packages/node/cli/bin/; done) && [ -n "$(ls -A packages/node/cli/bin 2>/dev/null)" ] || cp bin/runfabric packages/node/cli/bin/
cd packages/node/cli && npm pack
cd ../sdk && npm pack
Note: runfabricd and runfabricw binaries are built for daemon/worker usage and GitHub release artifacts, but they are not packaged into the Node CLI wrapper.
make release-check.make release-tag.See RELEASE_PROCESS.md for release notes signing and full steps.