Files
emcli/RELEASING.md
T
steve 7087533644 docs(skill): split setup into AGENTIC-MANUAL.md; keep SKILL.md lean
The SKILL.md body loads into context on every activation, so one-time install/
setup prose was wasted context once emcli is running. Move it out:

- New AGENTIC-MANUAL.md: get-the-files bootstrap, binary install (incl. options
  and build-from-source, folding in the old references/install.md), EMCLI_KEY,
  account discovery. Fetched only during first-time setup.
- SKILL.md trimmed (182→~145 lines) to the recurring path: security model, a short
  "Files & first run" pointer + per-session preflight, the list/get/ack/send
  workflow, JSON envelope, command table, enforcement, do/don't.
- Remove references/install.md (folded in); fix RELEASING.md pointer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 21:01:46 +01:00

2.2 KiB

Releasing emcli

A release publishes one static binary per platform plus a checksums.txt, named so the agent skill installer (skills/emcli/scripts/install.sh) can fetch them:

emcli_<version>_<os>_<arch>[.exe]     e.g. emcli_0.4.0_linux_amd64
checksums.txt                          sha256, one "<sum>  <asset>" line per asset

Platforms: linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64. The binary is CGO-free, so cross-compilation needs only the Go toolchain.

Option A — local (Makefile + tea)

# 1. Build the artifacts into dist/ (version is injected into `emcli version`)
make release VERSION=v0.4.0

# 2. Create the Gitea release for the tag and upload every dist/ asset
make publish VERSION=v0.4.0

make publish uses the tea CLI (already configured for this repo). It runs:

tea releases create --repo steve/emcli --tag v0.4.0 --title v0.4.0 --asset dist/<each-file>

Inspect dist/ and dist/checksums.txt before publishing if you want to double-check.

Option B — CI (Gitea Actions)

Push a version tag and let .gitea/workflows/release.yml build and publish:

git tag v0.4.0
git push origin v0.4.0     # (push via the tokenized HTTPS URL this repo uses)

The workflow runs make release and uploads the assets to the release via the Gitea API. It needs Gitea Actions enabled with a runner that provides Go, make, curl, and jq. This is how v0.4.0 was published. If it ever doesn't fit your runner setup, fall back to Option A.

Note: release asset downloads are anonymous, so the repository (or at least its releases) must be public for skills/emcli/scripts/install.sh to fetch binaries without a token. A private repo returns 404 to unauthenticated downloads.

After a release

The skill installer defaults to EMCLI_VERSION=v0.4.0. When you cut a different version, either publish under that tag or update the default in skills/emcli/scripts/install.sh (and the options table in skills/emcli/AGENTIC-MANUAL.md).

Versioning

VERSION is injected at build time into internal/version.String via -ldflags -X, so emcli version prints the released tag. Without an explicit VERSION, the Makefile derives one from git describe.