- What is wyrihaximus/qa-tooling-wrapper?
- It is a dev-only Composer package that bundles the QA dependencies used by wyrihaximus/test-utilities into a single dependency. It lets extension packages share a common PHP QA toolchain without creating circular dependencies through test-utilities. It does not add Laravel runtime features or application-facing code.
- How do I install wyrihaximus/qa-tooling-wrapper?
- Install it as a development dependency with composer require --dev wyrihaximus/qa-tooling-wrapper. It works out of the box when combined with wyrihaximus/makefiles or your own QA configuration. Pin the version in CI so transitive QA tool updates do not change results unexpectedly.
- Does wyrihaximus/qa-tooling-wrapper work with Laravel?
- It is framework-agnostic PHP and Composer dev tooling, so it can be added to Laravel packages or applications as a dev dependency. It does not provide Laravel-specific presets for Pint, Larastan, Pest, or CI workflows. Laravel and PHP version compatibility is governed by the underlying tools and your Composer constraints, so validate them in a branch first.
- Which QA tools are included in wyrihaximus/qa-tooling-wrapper?
- The wrapper aggregates tools such as PHPStan, PHPUnit, Infection, Rector, Mockery, composer-normalize, composer-unused, composer-require-checker, php-parallel-lint, phpunit-slow-test-detector, and Roave backward-compatibility-check. Exact versions are controlled by the wrapper's Composer constraints and your lockfile. Check composer.lock before assuming a specific tool version is available.
- Do I need wyrihaximus/makefiles to use qa-tooling-wrapper?
- No, makefiles is not strictly required, but the wrapper is designed to work out of the box when combined with wyrihaximus/makefiles or your own QA configuration. Makefiles supplies common QA commands and wiring for the bundled tools. Without it, you must configure and invoke PHPStan, PHPUnit, Infection, Rector, and the other tools yourself.
- Will qa-tooling-wrapper conflict with Larastan, Pint, Pest, or PHPStan?
- Conflicts are possible because the wrapper aggregates and constrains QA tool versions, including PHPStan and PHPUnit. It does not replace Larastan, Pint, or Pest presets, so those tools still need separate installation and configuration. Test it in a low-risk branch, compare CI output, and resolve any overlapping or downgraded dependencies before adopting it broadly.
- Is wyrihaximus/qa-tooling-wrapper safe for production?
- It is intended only as a dev dependency and should never ship in production runtime artifacts. Install it with --dev and deploy with --no-dev so it stays out of application images. Production runtime risk is low when it is correctly excluded, but dev dependency security findings can still affect CI pipelines.
- How do I run PHPUnit or Pest with wyrihaximus/qa-tooling-wrapper?
- The wrapper includes PHPUnit and Mockery, so you can invoke PHPUnit through Composer scripts, a Makefile, or vendor/bin/phpunit. It does not include Pest, so Pest users must add pestphp/pest separately and check PHPUnit version compatibility. Keep your test configuration in the repository so command behavior remains clear.
- Should I use this for Laravel application CI or only packages?
- Its best fit is internal PHP or Laravel package CI where you want to standardize QA tooling across repositories. For Laravel product applications, pilot it in one low-risk CI branch first because it has limited external adoption and no Laravel-specific presets. Confirm that it does not conflict with your existing Pint, Larastan, Pest, or PHPUnit setup before rolling it out.
- What are the risks and alternatives to wyrihaximus/qa-tooling-wrapper?
- Risks include a single-maintainer pattern, limited external adoption, possible lag behind upstream QA tools, and transitive constraints that can block dependency updates. Alternatives include requiring PHPStan, PHPUnit, Infection, Rector, and Mockery individually, or using a maintained Laravel QA stack such as Pint, Larastan, and Pest. Keep an exit plan by pinning the wrapper, monitoring releases, and rolling back by removing the package and restoring the lockfile.