Skip to content

chore: add devenv development environment#38

Merged
floatdrop merged 1 commit into
draft-18from
chore/add-devenv
Jun 30, 2026
Merged

chore: add devenv development environment#38
floatdrop merged 1 commit into
draft-18from
chore/add-devenv

Conversation

@floatdrop

Copy link
Copy Markdown
Owner

What

Adds an optional devenv development environment so contributors build against a reproducible, pinned toolchain.

  • devenv.nix — Go toolchain (matching go.mod's go 1.26) plus golangci-lint (the exact .golangci.yml version), golines, goimports, gopls, dlv, and make. Convenience scripts wrap the canonical commands: build, test, test-race, lint, bench, modernize.
  • devenv.yaml — pins nixpkgs to rolling so the Go version tracks go.mod.
  • devenv.lock — committed lockfile for reproducibility.
  • .envrc — direnv auto-activation (use devenv).
  • .gitignore — ignore devenv's generated state (.devenv*, devenv.local.nix, .direnv/), keeping devenv.lock tracked.
  • README — a "Development environment (devenv + direnv)" section documenting the optional setup.

Using devenv is entirely optional — a plain go install continues to work.

Verification

Built the environment via devenv shell and confirmed the toolchain resolves:

  • go 1.26.3 — matches go.mod
  • golangci-lint 2.12.2 — matches .golangci.yml
  • golines, goimports, dlv, make all on PATH
  • direnv export loads the shell cleanly (.envrc hash valid)

🤖 Generated with Claude Code

Add a devenv (devenv.sh) config pinning the Go toolchain to match go.mod
along with golangci-lint, golines, goimports, gopls, and dlv, so the dev
environment is reproducible across machines. Includes convenience scripts
(build/test/test-race/lint/bench/modernize) wrapping the canonical commands.

Wire up direnv auto-activation via .envrc, ignore devenv's generated state
in .gitignore (keeping devenv.lock tracked), and document the optional
setup in the README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@floatdrop floatdrop merged commit 9a7feff into draft-18 Jun 30, 2026
8 checks passed
@floatdrop floatdrop deleted the chore/add-devenv branch June 30, 2026 14:48
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