Skip to content

Corpus status

Snapshot as of 2026-06-07. Regenerate with uv run python tools/status-report.py.

At a glance

  • 365 recipes ship green today. Every one of them builds from source under make dogfood against the Punix store — no Homebrew bridge, no prebuilt binary toolchain, no DYLD-shim tricks at runtime. See the full list, grouped by topic.
  • 79 recipes have been attempted but don't yet ship. Most are blocked on one of a small handful of recurring patterns (host Swift 6 / Xcode 16, Perl-CPAN multi-source bundles, @N-version handling). See blockers.md for what each one needs.

What this means in practice

If you punix install <name> for anything in working.md, it will build from source, sandbox itself in the content-addressed store under ~/.punix/store/, and link a binary into your profile. No brew invocations under the hood. No background brew update that breaks last week's working setup.

If the package you want is in blockers.md, each entry names the failure class and the shape the fix takes — so a contribution lands in the right layer (the brew→PCL translator, one of the std.* recipe classes, or as a hand-written recipe in packages/official/).

If it's in neither list, we simply haven't tried yet. Open an issue, or run uv run python tools/migrate-brew.py against the brew formula yourself.

Categories at a glance

Category Recipes
Shell & Terminal 6
Editors 2
Version Control 16
Build Tools & Compilers 41
Languages & Runtimes 21
Container & Orchestration 20
Cloud CLIs 16
Networking 20
Security & Cryptography 20
Databases 10
Image, Video & Media 20
Compression & Archives 8
Text Processing 13
Documentation & Markup 9
Python Ecosystem 20
Rust Ecosystem 36
Go Ecosystem 32
System & Process Utilities 23
Foundational Libraries 32
Total 365

How recipes get into the corpus

Every recipe in packages/official/ was either auto-translated from a Homebrew formula via tools/migrate-brew.py (the translator matches cargo, go, npm, autotools, cmake, meson, swift, pip, and git-tag source patterns) or hand-written when the source shape didn't fit any pattern. Each recipe records its origin in meta.origin.

The recipe classes themselves live under src/punix/realise/recipes_lib/std/std.cargo, std.go, std.cmake, std.autotools, std.meson, std.python_venv, std.swift, std.shell, etc. — and own all the shell mechanics (dep wiring, rpath baking, sandbox setup). Recipes just declare which class they want and pass project-specific flags.

  • What works at the system level — the engine, store, profile, services, deploy machinery.
  • Known limitations — class-by-class list of what the project deliberately doesn't do, what's deferred, and what's a real gap.
  • Roadmap — staged plan; where the corpus is heading.