Add reproducible dev environment

- flake.nix: rebrand description, add Go 1.25, gopls, gotools,
  staticcheck, golangci-lint, gnumake to all dev shells. Add a
  plain `dev` shell (`nix develop .#dev`) that does not wrap the
  shell in the bubblewrap sandbox so contributors can use a
  standard Go toolchain.
- Dockerfile.dev: golang:1.22-bookworm with make, git, gopls and
  staticcheck, /workspace as default cwd. CGO disabled.
- README: document both nix and Docker dev paths.

flake.lock is committed for reproducibility.

Closes #6.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-28 21:58:59 +02:00
co-authored by Claude Opus 4.7
parent a36fc1c8cc
commit b409519661
4 changed files with 116 additions and 8 deletions
+10 -2
View File
@@ -45,10 +45,18 @@ See `./librenotes help` for the full command list.
## Development setup
A Nix flake provides a reproducible development environment with Go,
build tools, and the project CLIs:
build tools, and the project CLIs. Use the plain `dev` shell for a
non-sandboxed Go toolchain:
```sh
nix develop
nix develop .#dev
```
Alternatively, build a Docker-based dev environment:
```sh
docker build -f Dockerfile.dev -t librenotes-dev .
docker run --rm -it -v "$PWD:/workspace" librenotes-dev
```
The repository layout follows the standard Go project structure: