e2f24b0876
- awg-tool 0.4.0 -> 0.5.0 - awgen 0.1 -> 0.2 - codeaf 0.7.1 -> 0.8.2 - ds4 -> ee7e840 (2026-10-21) - freebuff 0.2.19 -> 0.2.34 - graphify 0.9.77 -> 0.9.95 (add pyyaml dependency) - hipengine 0.6.1 -> 0.8.3 - kubernetes-mcp-server 0.0.67 -> 0.0.69 (build with go_1_27) - kyojin 1.3 -> 1.7.1 (drop obsolete setup.py/pyproject patches, ship gr_mix_hip from the package, add ninja runtime dependency) - marmel -> de3e99c (2026-10-23) - omniroute 3.8.50 -> 3.8.52 - open-code-review 1.12.12 -> 1.13.3 (build with go_1_27) - pilotdeck 2026.10.17 -> 2026.10.20 - radar 1.16.2 -> 1.18.0 - traycer 1.4.2 -> 1.5.1 Verified: nix build passes for every bumped package; kyojin.tests.jit compiles all five JIT kernels. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
95 lines
3.3 KiB
Nix
95 lines
3.3 KiB
Nix
{
|
|
lib,
|
|
buildGoModule,
|
|
fetchFromGitHub,
|
|
makeWrapper,
|
|
furrow,
|
|
}:
|
|
|
|
# codeaf carries a furrow inside itself: internal/furrowbin embeds whatever is
|
|
# staged in internal/furrowbin/cache and, on first use, writes it out to
|
|
# ~/.codeaf/bin/furrow-<version>. Upstream stages the GitHub release asset there,
|
|
# whose bytes are someone else's glibc-dynamic build that no Nix phase ever
|
|
# touched, so the file that lands in the state root cannot start here. Staging a
|
|
# rebuilt furrow is not an option either: upstream's fetcher re-checks the sha256
|
|
# named in internal/furrowbin/pin.json and would refuse one. So this build stages
|
|
# nothing, and hands over ./furrow.nix through CODEAF_FURROW instead, which
|
|
# internal/furrow reads before it looks at the embedded copy at all. Nothing of
|
|
# furrow's ends up in the codeaf binary; without that variable codeaf looks for
|
|
# furrow on PATH, the way a plain `go build` does.
|
|
#
|
|
# A codeaf run without this wrapper is not the same program: it has no furrow
|
|
# unless one is on PATH.
|
|
buildGoModule rec {
|
|
pname = "codeaf";
|
|
version = "0.8.2";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "Agent-Field";
|
|
repo = "CodeAF";
|
|
rev = "v${version}";
|
|
hash = "sha256-Gz/o32b/HeDsOJtC4nKL79ArPdNtD3kIq3nzp+vLffE=";
|
|
};
|
|
|
|
vendorHash = "sha256-stp2h8l3MkewQXuOVbExQu1LjKoET/jvCSqtqIGMItY=";
|
|
|
|
env.CGO_ENABLED = 0;
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
|
|
# The shipped binary carries the packed manual rather than the raw Markdown.
|
|
tags = [ "codeaf_packed_manual" ];
|
|
|
|
subPackages = [ "cmd/codeaf" ];
|
|
|
|
# Upstream's own suite is a CI matrix (make test / make check) with network
|
|
# and timing assumptions; it is not buildGoModule-shaped.
|
|
doCheck = false;
|
|
|
|
# `make build` runs a host-side step before compiling: packing the manual into
|
|
# what the codeaf_packed_manual tag embeds. It is built for the build machine
|
|
# even when codeaf targets another platform, hence the unset GOOS/GOARCH. The
|
|
# vendoring derivation runs preBuild too, before vendor/ exists, and this step
|
|
# needs the vendored dependencies, so it waits for it. Upstream's other step,
|
|
# staging the furrow release, is deliberately not run: see ./furrow.nix.
|
|
preBuild = ''
|
|
if [ -d vendor ]; then
|
|
env -u GOOS -u GOARCH go generate ./internal/manual
|
|
fi
|
|
'';
|
|
|
|
postInstall = ''
|
|
wrapProgram $out/bin/codeaf --set CODEAF_FURROW ${furrow}/bin/furrow
|
|
'';
|
|
|
|
ldflags = [
|
|
"-s"
|
|
"-w"
|
|
"-X github.com/Agent-Field/codeaf/internal/buildinfo.rev=${version}"
|
|
"-X github.com/Agent-Field/codeaf/internal/buildinfo.dirty=false"
|
|
];
|
|
|
|
passthru = {
|
|
inherit furrow;
|
|
category = "AI Coding Agents";
|
|
updateScript = [
|
|
"nix-update"
|
|
"--flake"
|
|
".#codeaf"
|
|
# furrow.nix is not a flake output, so nix-update never touches it: bump it
|
|
# by hand alongside the version codeaf pins in internal/furrowbin/pin.json.
|
|
];
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "Coding harness and software factory for open models: hand off work and watch every project from one terminal";
|
|
homepage = "https://github.com/Agent-Field/CodeAF";
|
|
changelog = "https://github.com/Agent-Field/CodeAF/blob/v${version}/CHANGELOG.md";
|
|
license = licenses.asl20;
|
|
# Runs the furrow built from source by ./furrow.nix, not the release asset
|
|
# upstream would have embedded.
|
|
mainProgram = "codeaf";
|
|
platforms = platforms.linux ++ platforms.darwin;
|
|
};
|
|
}
|