atoum-next/atoum-bundle
Symfony bundle for integrating atoum-next, the PHP unit testing framework, into Symfony applications. It provides bundle configuration, service wiring, and convenient test execution so teams can write and run atoum tests within a standard Symfony project.
What this actually is. atoum-next/atoum-bundle 5.0.0 is a Symfony bundle, not a Laravel package. It wires the atoum test framework (a mock-first alternative to PHPUnit) into Symfony's test kernel — it ships a Bundle class, a DI extension, and kernel-level test bootstrapping. There is no service provider, no Laravel auto-discovery, and no container integration path for Laravel's application kernel.
Architecture fit. Near zero for a Laravel codebase as published. The bundle's value lives in Symfony-specific hooks; consuming it from Laravel would require us to author and own an adapter package that re-implements bundle bootstrapping — non-trivial, and it would be our maintenance burden forever. Fit is good for a Symfony project already using atoum; acceptable for a polyglot monorepo with Symfony services.
Integration feasibility. Mechanically straightforward for a Symfony team, but gated by two hard platform requirements: PHP 8.2+ and Symfony 7.4 or 8.0+. The second is the sharp edge — it excludes Symfony 6.4 LTS, which is where most enterprise estates sit. The vendor rename (atoum/atoum-bundle → atoum-next/atoum-bundle) is a Composer package identity change, so there is no in-place composer update: composer.json, bundles.php registration, namespaces in config/packages/test/*.yaml, and CI/bootstrap scripts all need rewriting.
Technical risk. Low production risk — this is a dev/test dependency with no customer-facing blast radius. Medium-high ecosystem risk: the bundle now depends on atoum-next/atoum ^5.0, a community fork of a project that has been effectively dormant upstream. We are accepting fork-of-a-fork continuity risk in our test toolchain. The release notes carry a Co-Authored-By: Claude Sonnet 5 trailer with no named human reviewer, which for a major-version breaking release is a governance signal worth raising — not disqualifying, but the changelog should be read as primary source rather than trusting the summary.
Key questions.
atoum-next, what is the bus factor, and is there a stated support window?Stack fit. If the team is Laravel-only: no fit, no supported migration path, recommend decline. If we have Symfony services: this is a test-infrastructure swap, not an application change.
Migration path (two-step, non-negotiable ordering).
composer remove atoum/atoum-bundle, composer require --dev atoum-next/atoum-bundle ^5.0, update config/bundles.php to the new Bundle class, then rewrite namespaces across test config, bootstrap, and any custom helpers.Compatibility checks. Grep the repo for the old vendor namespace before starting. Audit for other bundles pinned to Symfony 6.x, PHPUnit-based suites that would now coexist awkwardly, and static-analysis/tooling configs (PHPStan, Rector, paratest, CI allowlists) that reference the old package name. Also re-baseline SBOM and dependency-scanner allowlists — a package identity change looks like a brand-new dependency to security tooling.
Sequencing. Do this on a dedicated branch, never trunk. Test infrastructure failure blocks every other PR in flight. Land platform upgrade first, verify a green suite, then land the bundle swap as its own isolated change so failure attribution stays clean. Gate the Symfony 8.0 leg as non-blocking for the first cycle; prove 7.4 first.
If Laravel is genuinely the target: the only honest answer is that there is no supported integration. Any internal adapter becomes a permanently-owned artifact with no upstream to lean on.
Maintenance. New vendor identity means Renovate/Dependabot rules, allowlists, and SBOM entries all need updating. Expect a one-time cleanup tail where stale namespace references survive in less-traveled CI lanes and fail silently on autoload.
Support and ownership. Upstream support is almost certainly GitHub issues only, with no commercial backing and a small maintainer group. Test tooling is chronically under-owned; assign a named owner explicitly rather than letting it default to "whoever touched CI last." Budget a small recurring engineering allocation (order of a few days per year) for patches or a locally vendored fork.
Scaling. No production scaling implications. CI cost does scale: Symfony 7.4/8.0 × PHP 8.2/8.3 multiplies matrix jobs, and the bundle becomes the binding constraint on our future Symfony upgrade cadence — we cannot move to Symfony 9 until they ship support.
Failure modes.
Ramp-up. Low (roughly 1–2 engineer-days plus review) for a Symfony-fluent engineer who already knows atoum and Symfony test config. Medium for a Laravel-only team starting from zero — two unfamiliar frameworks at once, and no upstream docs targeted at them. Do not run this concurrently with a Symfony major upgrade; keep the two changes separable so a failure tells you which one caused it.
Recommendation. Decline for a Laravel-only estate — framework mismatch makes it a non-starter. For Symfony 7.4/8.0 services already on atoum, adopt on a branch with the 8.0 CI leg non-blocking, after confirming maintainer continuity and reading the CHANGELOG directly.
How can I help you explore Laravel packages today?