Merge: relax pre-commit hook to support TDD red-phase commits
This commit is contained in:
8
Makefile
8
Makefile
@@ -36,6 +36,10 @@ docker:
|
|||||||
docker build -t quack .
|
docker build -t quack .
|
||||||
|
|
||||||
hooks:
|
hooks:
|
||||||
@printf '#!/bin/sh\nset -e\nmake check\n' > .git/hooks/pre-commit
|
@printf '#!/bin/sh\nset -e\nmake lint\nmake fmt-check\n' > .git/hooks/pre-commit
|
||||||
@chmod +x .git/hooks/pre-commit
|
@chmod +x .git/hooks/pre-commit
|
||||||
@echo "Installed pre-commit hook (runs make check)."
|
@echo "Installed pre-commit hook (runs make lint && make fmt-check)."
|
||||||
|
@echo "Note: tests are deliberately not in the pre-commit hook so the"
|
||||||
|
@echo "TDD red-phase commit (failing tests, no implementation yet)"
|
||||||
|
@echo "can land. CI runs make check via docker build, which catches"
|
||||||
|
@echo "any branch that ships red."
|
||||||
|
|||||||
@@ -90,6 +90,11 @@ All work on quack is test-driven. No exceptions.
|
|||||||
test-then-implementation sequence into reviewable commits, but the final
|
test-then-implementation sequence into reviewable commits, but the final
|
||||||
history must still show tests landing before (or with) the matching
|
history must still show tests landing before (or with) the matching
|
||||||
implementation.
|
implementation.
|
||||||
|
8. The pre-commit hook installed by `make hooks` runs
|
||||||
|
`make lint && make fmt-check`, not the full `make check`. This is deliberate
|
||||||
|
so the TDD red-phase commit (failing tests, no implementation yet) can land.
|
||||||
|
The full `make check` runs as part of `docker build .`, which is what CI
|
||||||
|
executes, so a red branch still cannot reach `main`.
|
||||||
|
|
||||||
## Design
|
## Design
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user