Tooling & Automation
A track of P35 · Packaging, Tooling & Automation.
Automate the dev loop: build the task-graph engine behind a Makefile (topological order, cycle detection, per-target plan), then codify checks as pre-commit hooks and a CI gate over one source of truth.
Packaging's last mile is making the dev loop automatic, so quality is a
property of the repo, not of whether anyone remembered the steps. Under a
Makefile — and under a CI job's needs: — is one idea: a task graph. This
track has you build the engine behind it.
You implement the scheduler a task runner hides: a topological sort over targets
(so make test runs install and build first, once each), cycle detection
(a cyclic graph can never run), and a per-target plan (run exactly what this
target needs). Then you step up a level: naming routines so one make quality
means the same thing on a laptop and in CI, pre-commit as a contract that runs
on every commit, and CI as the unskippable gate. Real make and pre-commit
execution stay prose; here you build the part that decides what runs — with this
repo's own Makefile and make quality as the worked example.