Skip to content

build(nix): one tools-only flake at the repo root - #46

Open
Joibel wants to merge 1 commit into
nix-stack-basefrom
tb-ufbi.1-pr1
Open

build(nix): one tools-only flake at the repo root#46
Joibel wants to merge 1 commit into
nix-stack-basefrom
tb-ufbi.1-pr1

Conversation

@Joibel

@Joibel Joibel commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Fixes #TODO

Motivation

Modifications

Verification

Documentation

AI

🤖 Generated with Claude Code

https://claude.ai/code/session_01H871PuNyYPzjmpUhXCRXGA

Three overlapping Nix setups (dev/nix's flake, devenv, and a separate one
for the Java SDK) each described a slice of the toolchain, and the Makefile
described it a fourth time in `go install` targets. Replace all of it with a
single devShell at the repo root.

The flake manages tools only — nothing here builds Argo, that stays
`make build` — and splits them in two: anything whose version decides what
generated code, lint results or test output look like is pinned with an
explicit version and hash; environment tools float on nixpkgs stable. The Go
toolchain is read from the `go` directive in go.mod, so there is no second
place to keep it in sync, and the overlay builds it from source when nixpkgs
lags.

The Makefile becomes a task runner: every TOOL_* resolves from PATH and the
install targets are gone, along with the USE_NIX switch that selected between
them. `make tilt` and `make k3d` stay for now, because CI and the dev
container do not use the shell yet.

Deleted with the rest: gomod2nix (nothing builds Go derivations any more),
node2nix, the rust-overlay nightly toolchain (snipdoc builds fine on stable
rustPlatform), the `make k3d-up` side effect in the shell hook, and the
gomod2nix.toml update workflow.

The Java SDK now generates with the pinned OpenAPI Generator 5.2.1 from the
shell rather than via Docker. Verified byte-identical output between that jar
on JDK 21 and the upstream `openapitools/openapi-generator-cli:v5.2.1` image
on JDK 8.

markdownlint moves from a pinned 0.33.0 to nixpkgs' 0.48.0, which added
MD059 and MD060; both are disabled since turning them on is a docs change,
not a tooling one. The genuinely broken tables MD055 and MD056 found are
fixed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UfBK3mQcTNEBEGpXu4hzCY
Signed-off-by: Alan Clucas <alan@clucas.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant