- 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>
2.4 KiB
2.4 KiB
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
# 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
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
-
Tag the release:
git tag -a "worker-v${VERSION}" -m "Worker CLI v${VERSION}" git push origin "worker-v${VERSION}" -
Create GitHub release:
gh release create "worker-v${VERSION}" \ --title "Worker CLI v${VERSION}" \ --notes "Multi-agent worker coordination CLI" \ "releases/worker_${VERSION}_linux_amd64.tar.gz" -
Get the SHA256 for nix packaging:
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:
{ 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
-
Update
src/worker.nimble:version = "X.Y.Z" -
Update
docs/releasing-worker.mdexamples -
Rebuild and release
Testing the Release
# Extract and test
tar -xzf releases/worker_${VERSION}_linux_amd64.tar.gz
./worker --help
./worker status