Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
use flake
dotenv_if_exists .env.local
# Optional local overrides, untracked. A maintainer selects the tracker-aware
# shell here with `use flake .#maintainer`; with no such file this is a no-op.
source_env_if_exists .envrc.local
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ result
result-*
.bun-result
.env.local
.envrc.local
.worktrees/
CLAUDE.local.md

Expand Down
38 changes: 37 additions & 1 deletion flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 21 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,17 @@

inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";

# Reached only by `devShells.maintainer`. Nix fetches flake inputs per
# output, so `nix develop` and `nix develop .#ci` — everything a
# contributor and CI touch — never fetch, evaluate or build this. No
# `inputs.nixpkgs.follows`: beads needs Go 1.26 and this flake's nixpkgs
# carries 1.25.
beads.url = "github:gastownhall/beads/v1.1.2";
};

outputs =
{ nixpkgs, ... }:
{ nixpkgs, beads, ... }:
let
systems = [
"x86_64-linux"
Expand Down Expand Up @@ -86,7 +93,7 @@
};

devShells = forAllSystems (
{ pkgs, ... }:
{ pkgs, system }:
let
# Tooling the gate needs: bun runs the TS gate, uv drives the
# clients/hermes Python gate (//#test:hermes → scripts/test.sh).
Expand All @@ -108,6 +115,18 @@
ci = pkgs.mkShell {
packages = gateTools;
};
# The default shell plus `bd`, the client for the maintainers' issue
# tracker. That tracker is not part of this repository — external
# contributors don't need it and file GitHub issues instead (see
# AGENTS.md) — so `bd` lives here rather than in `default`, and
# entering this shell is opt-in. Select it locally with an untracked
# `.envrc.local` containing `use flake .#maintainer`.
maintainer = pkgs.mkShell {
packages = gateTools ++ [
pkgs.typescript-language-server
beads.packages.${system}.bd
];
};
}
);
};
Expand Down