spiral/roadrunner-cli
RoadRunner CLI provides commands to install the latest RoadRunner binary compatible with your OS and architecture and to generate example .rr.yaml configuration files. Use options like plugin and preset to create focused configs for your project.
nsq, kafka, google_pub_sub, centrifuge and protoreg configuration sections, and drops the tcp, websockets, broadcast and reload plugins. The surface area covered out-of-the-box is larger, but any internal scripting that depended on removed plugins must be rewritten or retired.symfony/console/symfony/http-client 6.4+ are now required. This is a portfolio-level dependency decision (runtime upgrade, CI image refresh), not a per-project one—budget it once, centrally.Internal\*, commands and Configuration\Generator are final, and the Archive/Repository namespaces (including Version1\StaticRepository) were removed. Any product extension built on the old public API is now unsupported; treat this as a signal to consume the CLI as a black-box tool, not a library.RR_GITHUB_API_URL must be https://api.github.com or end in /api/v3, and GHES tokens now come from DLOAD_TOKEN_<HOST> instead of GITHUB_TOKEN. Self-hosted and air-gapped pipelines need configuration and secret-management updates before upgrade..rr.yaml is no longer written when generation fails, removing a class of silent misconfiguration that previously surfaced late in deployment.✅ Adopt when:
.rr.yaml to be valid for it—this release exists primarily to make that safe.symfony/console and symfony/http-client 6.4+ (which keeps modern Symfony, including 8.x, viable), and you can absorb that floor.RR_GITHUB_API_URL overrides for proxied/offline environments.❌ Look elsewhere (or stay on 2.7.x) when:
tcp, websockets, broadcast, reload) or on any removed/now-internal API: Console\Archive, Console\Repository, Command\OptionInterface, Environment\Enum, the Environment\*Factory classes, Command::getRepository(), Command::confirm(), or VersionFilterOption::find()/choices(). These have no compatibility shim.final, and commands extend Symfony's directly rather than the removed abstract base.symfony/console/http-client under 6.4.Executives: "A major release (3.0.0) of the RoadRunner CLI is out: it aligns our tooling with RoadRunner 3 and expands coverage to Kafka, NSQ, Google Pub/Sub and Centrifuge—still MIT-licensed and zero-cost. Two things need a decision, not just an upgrade: it requires PHP 8.2+ and Symfony 6.4+, and it is deliberately not backward compatible—removed plugins, a now-internal API, and new enterprise GitHub token handling. Recommendation: fund one coordinated platform bump (runtime images, CI, secrets) and migrate RoadRunner 2 and this CLI together. Attempting a partial upgrade is where the risk sits, not in the tool itself."
Engineering:
"3.0.0 is a breaking release. Practical impact: minimum PHP 8.2; symfony/console and symfony/http-client 6.4+; the wildcard version filter now installs RoadRunner 3.0+, so CLI and server must move together. The tcp, websockets, broadcast and reload plugins are gone (RoadRunner 3 doesn't ship them), Command, Configuration, Downloader and Environment internals moved to Internal\* and are off-limits, commands and Configuration\Generator are final, and Archive/Repository plus Version1\StaticRepository were deleted. RR_GITHUB_API_URL is now constrained, and GHES tokens move to DLOAD_TOKEN_<HOST>. Upside: valid RoadRunner 3 config generation (including the fix that skips writing .rr.yaml on failure), DLoad-based downloads, and the expanded plugin sections. Audit your pipeline for removed env vars, plugin references, and any code reaching into the old API before you bump the constraint."
How can I help you explore Laravel packages today?