Build with Make
This project uses a Makefile. Always prefer make targets over running go commands directly.
Rules
- Check the Makefile first before running any
go build,go test,go run,go vet,go fmt, orgolangci-lintcommand. Look for a corresponding target. - Use the Makefile target instead of the raw
gocommand. For example:make buildinstead ofgo build ./...make testinstead ofgo test ./...make lintinstead ofgolangci-lint runmake runinstead ofgo run main.gomake fmtinstead ofgo fmt ./...
- Run
make helpto discover targets. If that fails, read the Makefile directly. - Fall back to raw
gocommands only if no relevant Makefile target exists for the task.
Verification procedure
- Before executing, confirm the target exists by checking
make helpoutput or the Makefile. - After execution, verify the command exited with status 0 and produced expected output.
Common mistakes to watch for
- Assuming target names without checking. Don't guess that
make unit-testexists — read the Makefile. Target names vary across projects. - Adding flags to make targets that already set them. For example, running
make test ARGS="-v -race"when the Makefile already passes-race. Check what the target does before adding flags. - Running raw
go test ./specific/pkg/...for a subset when the Makefile has a target that accepts a package argument (e.g.,make test PKG=./specific/pkg/...).
Scan to join WeChat group