mmstewart/laravel-x-ray
Laravel X-Ray is a lightweight development helper that gives you quick insight into what Laravel is doing behind a request, making it easier to debug behavior and spot performance issues without reaching for a full profiling stack.
Laravel X-Ray is a dev-time Artisan command that scans a Laravel application for upgrade-readiness issues between target framework versions. v1.5.0 adds --fail-on=error|warning|info, JSON failure-threshold support, and honors the configured minimum_severity. This is an additive, opt-in CI gate rather than a runtime dependency.
Architecture fit: Strong for Laravel teams. It runs as a Composer dev dependency and a single Artisan command, so it fits existing CI pipelines without new services, daemons, or infrastructure. The release moves the package from “advisory reporting” to “policy enforcement,” which is a meaningful capability for upgrade programs.
Integration feasibility: High. The flag is backward compatible: default behavior remains non-failing. CI adoption is a one-line command change. JSON output plus non-zero exit codes supports both human-readable and machine-consumable workflows.
Technical risk: Low to moderate. The main risks are policy risk, not runtime risk: severity classification changes between package versions could unexpectedly fail builds, and JSON schema stability matters if downstream tooling parses results. The minimum_severity interaction with --fail-on needs clear precedence documentation.
Key questions:
--fail-on override or combine with minimum_severity? Which wins?Stack fit: Fits Laravel 11/12/13-era applications using Composer and standard CI (GitHub Actions, GitLab CI, Bitbucket, Jenkins). It is a development/CI tool, not a production runtime component.
Migration path: No migration required. Existing invocations continue to work. Teams can adopt the release by updating the dev dependency and optionally adding --fail-on to CI. Start in report-only mode, then promote to blocking mode.
Compatibility: Confirm PHP and Laravel version support in the package constraints, and verify the CI image has the required PHP extensions. JSON mode should be validated in the target CI runner before enforcement.
Sequencing:
--format=json for artifact capture.--fail-on=error for a trial period.minimum_severity and reviewing false positives, consider --fail-on=warning.--fail-on=info for strict upgrade gates only.Maintenance: Low. The package is a dev dependency with no production footprint. Pin to a minor version range and review release notes for severity changes before upgrading. The new flag does not add ongoing operational burden.
Support: Teams need a clear owner for threshold policy. Support burden is mainly “why did the pipeline fail?” questions, which JSON artifacts and documented severity mappings can address.
Scaling: Scales acceptably across repositories because each CI job runs independently. Cost is proportional to scan time per pipeline. For monorepos or many applications, standardize the command in a shared CI template to avoid drift.
Failure modes:
--fail-on is enabled.minimum_severity and --fail-on interact in ways users do not expect.Ramp-up: Low. Most Laravel engineers can adopt the command in under an hour. The real ramp-up is organizational: agreeing on severity thresholds, false-positive handling, and whether the gate is advisory or blocking. Start advisory, measure noise, then enforce.
How can I help you explore Laravel packages today?