- 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>
114 lines
2.4 KiB
Markdown
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
|
|
```
|