This file describes how to use project Makefile targets and what output to expect.
- Go toolchain available in
PATH. - Python
3.14available aspython3.14(or override withPYTHON_BIN). - Docker daemon running for allocator analysis.
protocinstalled only if you runmake generate.
Run these once on a fresh checkout:
make install-lint
make python-checkExpected results:
bin/golangci-lintis installed..venvis created and dependencies are installed fromrequirements.txt.pip checkprintsNo broken requirements found.
make buildWhat it does:
- Builds allocator demo binary:
test/allocator/allocator. - Builds all Go packages in the repository.
make lintWhat it does:
- Installs pinned
golangci-lintif needed. - Verifies linter config.
- Runs
golangci-lint run ./....
make fixWhat it does:
- Runs
go mod tidy. - Runs
golangci-lintwith--fix.
make unit-test
make integration-test
make testExpected artifacts:
coverage.unit.outcoverage.integration.outcoverage.overall.outcoverage.out(human-readable summary)test/integration/integration-test(integration test binary)
Run:
make allocator-analyzeThis target runs:
make allocator-buildmake docker-checkmake python-check- Python benchmark/plot script:
test/allocator/analyze/compare.py
Expected console signals:
- Lines like
>>> Start case: ... - Progress logs from allocator perf client.
Expected output directory:
/tmp/allocator/allocator_<HHMMSS>/
Expected generated files:
control_params.pnggogc_floor_hits.pngmemory_limits_overlay.pngrss.png- Per-case directories with:
server_config.jsonperf_config.jsontracker.csv
make help- print all available targets.make python-venv- create.venvand upgradepip.make python-deps- install dependencies fromrequirements.txt.make python-check- runpip checkand Python syntax compile.make docker-check- fail fast if Docker daemon is unavailable.make allocator-build- buildtest/allocator/allocatoronly.make generate- regenerate protobuf files for allocator schema.make lint-prepare- install lint tools and verify lint config.make sync-ci-lint-version- copyGOLANGCI_LINT_VERSIONfromMakefileto.github/workflows/CI.yml.make clean- remove generated binaries, coverage files, and Python cache for analyzer scripts.
Use a different Python interpreter:
make python-check PYTHON_BIN=python3.13Use a different virtual environment directory:
make python-check PYTHON_VENV_DIR=.venv-local