refactor: merge the component Makefiles into one at the root
Test, Build and Push / test-gateway (push) Successful in 11s
Test, Build and Push / release (push) Skipped
Test, Build and Push / build-gateway (push) Skipped

desklock is a three-component repo and only the gateway had a Makefile, so
make test meant "the gateway suite" or "no such target" depending on which
directory you happened to be standing in. One root Makefile makes it mean the
same thing everywhere (D-27), and gateway/Makefile is removed rather than
delegated to, so there is one place to look.

The firmware targets now source ~/esp-idf/export.sh themselves. Verified that
idf.py does not resolve on PATH without it and does after — the same class of
failure that has cost time on four other tools on this host, and the reason
D-10 puts path resolution in the Makefile rather than in callers. They fail
loudly with a hint when the toolchain is absent instead of reporting command
not found.

make test never reports green for the firmware. It has no suite, so it prints
undetermined rather than skipping silently — a no-op target that exits 0 would
claim a pass for something never run (D-26).

Verified: make test runs the real 9-test gateway suite, make lint passes, the
missing-toolchain guard fires, and make help lists every target. The firmware
build itself was not run.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-08-09 15:03:58 +02:00
co-authored by Claude
parent 8cd2c05a00
commit ff193203c9
-28
View File
@@ -1,28 +0,0 @@
.PHONY: setup run test lint typecheck clean
# any Python >= 3.11 works; system python3 on tower-of-joy is 3.8, hence explicit
PYTHON ?= python3.12
setup:
$(PYTHON) -m venv .venv
.venv/bin/pip install -e ".[dev]"
setup-speech:
.venv/bin/pip install -e ".[dev,speech]"
run:
.venv/bin/uvicorn desklock_gateway.main:app --host 0.0.0.0 --port 8600 --reload
test:
.venv/bin/pytest
lint:
.venv/bin/ruff check src tests
.venv/bin/ruff format --check src tests
typecheck:
.venv/bin/mypy src
clean:
rm -rf .venv .pytest_cache .ruff_cache .mypy_cache
find . -type d -name __pycache__ -exec rm -rf {} +