What each project's Makefile hooks run. Versions are the ones pinned in the repository
(lockfile, Containerfile, or CI).
Purpose
Tool
Unit tests
PHPUnit 13.4.2
Lint
php -l, PHPStan 2.3.1 (level max), and PHP-CS-Fixer check
Format
PHP-CS-Fixer 3.95.27 fix
Dependencies
One Composer project per project (composer.json + committed composer.lock); development tools only, installed into vendor/ and run as php vendor/bin/<tool>
Build output (BIN_DIR)
src/bin/: a #!/usr/bin/env php script that loads src/lib with its own autoloader
Install
Copies src/bin and src/lib to $(LIBDIR)/php/<project>/ and writes a #!/bin/sh launcher to $(BINDIR)
A project is implemented once it is listed in IMPLEMENTED in the repository's root
Makefile. CI then builds, lints, and tests it in the container and natively on Linux,
macOS, and Windows.