New post: From WireBox to wheelsdi — The Framework...
# wheels-dev
p
New post: From WireBox to wheelsdi — The Framework Gets Leaner https://blog.wheels.dev/posts/from-wirebox-to-wheelsdi/ The contributor-facing 4.0 story. What the engine room looks like now: • WireBox → wheelsdi (in-house DI, `map`/`bind`/`to`/`asSingleton`/`asRequestScoped`) — PRs #1883, #1888, #1933 • TestBox → WheelsTest (in-house BDD, RocketUnit bridge kept for old specs) — PRs #1889, #1925 • CommandBox → LuCLI (covered in last week's DX post) • Rim modernized into per-engine adapter modules — PR #2016 •
onApplicationStart
broken into discrete, individually-testable phases • Package system: explicit opt-in mixins (default
none
), dependency graph, per-package error isolation — PRs #2017, #1995 Why we did this: 260+ PRs in ~15 weeks doesn't fit against three external-Ortus version matrices. Either the coupling loosened or the cadence slowed. We chose the cadence. Honest about what this isn't: not a rejection of Ortus tooling (use it in your own apps), not a clean first try (PRs #2028/#2030/#2031 caught the cross-engine fallout), not "done." Foundation, not finished room. If you've ever wanted to land a PR on Wheels itself, this is the shape of the ground now. Adapter modules, DI features, and the package loader are all good first PRs.