kylekatarnls/multi-tester
Run dependent projects’ test suites against your current package changes. Multi-tester swaps your package into other projects’ vendor dirs and executes their unit/CI (Travis-friendly) commands, helping catch breaking changes early in Composer ecosystems.
Dependency Validation for Laravel Ecosystem Packages:
Justifies investment in automated cross-project testing for Laravel packages with high dependency impact (e.g., Laravel core, auth libraries, or widely adopted utilities like spatie/laravel-permission). Reduces regression risks by validating changes against real-world usage patterns before release, aligning with Laravel’s emphasis on backward compatibility. This supports a shift-left testing strategy, catching issues earlier in the development lifecycle.
Build vs. Buy Decision for Cross-Project Testing:
Avoids reinventing the wheel for a custom integration testing solution when multi-tester provides a mature, open-source alternative. Reduces development overhead and maintenance costs associated with building proprietary tools for dependency validation. This aligns with Laravel’s preference for leveraging existing ecosystem tools to maintain focus on core product innovation.
CI/CD Pipeline Optimization for Laravel Teams: Enables cost-efficient CI/CD for teams managing multiple Laravel/PHP packages (e.g., a suite of internal tools or open-source libraries). Consolidates cross-project testing into a single tool, reducing redundant jobs and pipeline complexity. This is critical for Laravel teams with limited CI resources, as it minimizes flaky tests and false positives, improving developer productivity.
multi-tester, reducing CI runtime by 40% while increasing test coverage.Risk Mitigation for Breaking Changes in Laravel: Critical for enterprise Laravel deployments where breaking changes can disrupt production. Validates compatibility with Laravel versions (e.g., 9.x vs. 10.x) and PHP stacks (e.g., 8.1 vs. 8.3) before public release, ensuring alignment with Laravel’s versioning strategy.
Open-Source Contribution and Ecosystem Health:
Facilitates testing against Laravel’s evolving vendor/ structure, reducing friction for contributions to the Laravel ecosystem. Ensures packages remain compatible with the broader community, improving adoption and trust, which is a key goal of Laravel’s open-source model.
Monorepo and Multi-Repo Management for Laravel Teams: Supports scalable testing workflows for teams managing monorepos or multiple repositories with shared dependencies. Automates the process of testing changes across repositories, reducing manual effort and human error.
multi-tester to validate changes in a shared auth library across all dependent services, ensuring consistency without manual intervention.Adopt multi-tester when:
replace keys in composer.json) that require precise version control during testing.Look elsewhere when:
For Executives: "multi-tester is a game-changer for our Laravel/PHP package development, reducing the risk of breaking changes in our ecosystem while cutting CI/CD costs. By automating cross-project testing, we can validate changes against all dependent packages—like Laravel core or widely used libraries—in minutes, not hours. This aligns with our goal of maintaining backward compatibility and enterprise-grade stability. For example, if we update a shared auth package, multi-tester ensures it works seamlessly across all 50+ microservices in our SaaS platform, slashing post-release support costs. It’s a low-cost, high-impact tool that future-proofs our Laravel investments and accelerates our roadmap by catching issues early."
For Engineering Teams:
"multi-tester solves a critical pain point: how to test your PHP/Laravel package changes against all its dependencies without manual effort. Instead of spending hours running tests across repositories or waiting for downstream teams to report breakages, this tool automates the process. You define your dependency graph in a config file, and it replaces your package in each dependent project’s vendor/ directory, running their tests against your local changes. It’s Travis CI and GitHub Actions friendly, integrates with Composer, and handles complex cases like version constraints or replace keys. For teams managing multiple Laravel packages or contributing to the ecosystem, this reduces flaky tests, speeds up releases, and ensures compatibility with Laravel’s evolving stack—all while keeping your CI pipeline lean."
For Developers:
"Tired of breaking dependent packages with seemingly harmless changes? multi-tester lets you test your PHP/Laravel package inside other projects’ vendor/ directories, so you catch regressions before they hit production. Just add it to your composer.json, configure the projects you want to test (e.g., symfony/symfony, laravel/framework), and run vendor/bin/multi-tester. It clones the projects, swaps in your local package, installs dependencies, and runs their tests—all in isolation. Works with any Composer-based project, supports multiple versions, and plays nice with CI. No more ‘it works on my machine’ excuses—just reliable, automated dependency validation."
How can I help you explore Laravel packages today?