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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user