diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index afb0efa77286..d5bb1f419f0c 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -13522,6 +13522,11 @@ githubId = 37185887; name = "Calvin Kim"; }; + kedry = { + name = "Kevin Edry"; + github = "kedry"; + githubId = 12020122; + }; keegancsmith = { email = "keegan.csmith@gmail.com"; name = "Keegan Carruthers-Smith"; diff --git a/pkgs/by-name/be/beads/package.nix b/pkgs/by-name/be/beads/package.nix new file mode 100644 index 000000000000..d84dd6ca0e85 --- /dev/null +++ b/pkgs/by-name/be/beads/package.nix @@ -0,0 +1,69 @@ +{ + lib, + stdenv, + buildGoModule, + fetchFromGitHub, + gitMinimal, + installShellFiles, + versionCheckHook, + writableTmpDirAsHomeHook, +}: + +buildGoModule (finalAttrs: { + pname = "beads"; + version = "0.27.2"; + + src = fetchFromGitHub { + owner = "steveyegge"; + repo = "beads"; + tag = "v${finalAttrs.version}"; + hash = "sha256-PpuyQCQocmOqt4EYDsjx1nh0dRxt2e7Vu1/KQ74B88Q="; + }; + + vendorHash = "sha256-5p4bHTBB6X30FosIn6rkMDJoap8tOvB7bLmVKsy09D8="; + + subPackages = [ "cmd/bd" ]; + + ldflags = [ + "-s" + "-w" + ]; + + nativeBuildInputs = [ installShellFiles ]; + + nativeCheckInputs = [ + gitMinimal + writableTmpDirAsHomeHook + ]; + + # Skip security tests on Darwin - they check for /etc/passwd which isn't available in sandbox + checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [ + "-skip=TestCleanupMergeArtifacts_CommandInjectionPrevention" + ]; + + preCheck = '' + export PATH="$out/bin:$PATH" + ''; + + postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' + installShellCompletion --cmd bd \ + --bash <($out/bin/bd completion bash) \ + --fish <($out/bin/bd completion fish) \ + --zsh <($out/bin/bd completion zsh) + ''; + + nativeInstallCheckInputs = [ + versionCheckHook + writableTmpDirAsHomeHook + ]; + versionCheckProgramArg = "version"; + doInstallCheck = true; + + meta = { + description = "Lightweight memory system for AI coding agents with graph-based issue tracking"; + homepage = "https://github.com/steveyegge/beads"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ kedry ]; + mainProgram = "bd"; + }; +})