skills/docs/releasing-worker.md
dan dcb29c12cd docs: add HQ deployment and worker release documentation
- Add docs/releasing-worker.md with build and release process
- Add pkgs/worker/default.nix template for nix packaging
- Add skills/hq/README.md with installation and deployment guide
- Update skills/hq/SKILL.md with detailed requirements table
- Add hq and review-gate to skills.nix
- Add releases/ to .gitignore

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 15:36:01 -08:00

114 lines
2.4 KiB
Markdown

# Releasing Worker CLI
How to build and release the worker CLI binary.
## Prerequisites
- Nim 2.2+ (via `nix-shell -p nim`)
- Git with push access to this repo
## Build
```bash
# Enter nix shell with nim
nix-shell -p nim
# Build release binary
cd src
nim c -d:release --mm:orc worker.nim
# Output: src/worker.out (~1MB)
```
## Create Release Tarball
```bash
VERSION="0.1.0" # Update version
mkdir -p releases
tar -czvf "releases/worker_${VERSION}_linux_amd64.tar.gz" \
-C src worker.out \
--transform "s/worker.out/worker/"
```
## Release to GitHub
1. Tag the release:
```bash
git tag -a "worker-v${VERSION}" -m "Worker CLI v${VERSION}"
git push origin "worker-v${VERSION}"
```
2. Create GitHub release:
```bash
gh release create "worker-v${VERSION}" \
--title "Worker CLI v${VERSION}" \
--notes "Multi-agent worker coordination CLI" \
"releases/worker_${VERSION}_linux_amd64.tar.gz"
```
3. Get the SHA256 for nix packaging:
```bash
nix-prefetch-url --unpack \
"https://github.com/USERNAME/skills/releases/download/worker-v${VERSION}/worker_${VERSION}_linux_amd64.tar.gz"
```
## Nix Package
After releasing, update the nix package in `dotfiles/pkgs/worker/default.nix`:
```nix
{ lib, stdenvNoCC, fetchzip, autoPatchelfHook, stdenv }:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "worker";
version = "0.1.0"; # Update version
src = fetchzip {
url = "https://github.com/USERNAME/skills/releases/download/worker-v${finalAttrs.version}/worker_${finalAttrs.version}_linux_amd64.tar.gz";
sha256 = "sha256-XXXX"; # Update hash from nix-prefetch-url
stripRoot = false;
};
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [ stdenv.cc.cc.lib ];
dontConfigure = true;
dontBuild = true;
dontStrip = true;
installPhase = ''
runHook preInstall
install -Dm755 worker $out/bin/worker
runHook postInstall
'';
meta = with lib; {
description = "Multi-agent worker coordination CLI";
homepage = "https://github.com/USERNAME/skills";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
mainProgram = "worker";
};
})
```
## Version Bumping
1. Update `src/worker.nimble`:
```nim
version = "X.Y.Z"
```
2. Update `docs/releasing-worker.md` examples
3. Rebuild and release
## Testing the Release
```bash
# Extract and test
tar -xzf releases/worker_${VERSION}_linux_amd64.tar.gz
./worker --help
./worker status
```