dragon-code/laravel-deploy-operations
Laravel Deploy Operations by Dragon Code provides a simple, configurable way to run deployment tasks such as migrations, cache clearing, queue restarts, and custom Artisan commands. Define operations once and execute them reliably during releases, keeping deployments consistent and repeatable.
Architecture fit
queue.job, queue.lock duration) only make sense if operations can be dispatched as queued jobs. That means the package is no longer purely a console-path dependency — it has a queue dispatch path that touches the queue subsystem, worker configuration, and job serialization. The prior assessment's claim of "no interaction with the queue subsystem" is now incorrect and must be revised.--isolated presence-semantics fix signals the package explicitly models Laravel's own WithoutOverlapping/isolated concurrency primitives. That is architecturally significant: it means concurrency control is a first-class concern of the package, not something we bolt on around it.queue.job override is the most architecturally useful addition for us: it lets us subclass the dispatched job and inject our own tracing, logging, and correlation IDs. That partially answers the observability question and reduces the "console-only output" concern.Integration feasibility
composer require, publish config, define operations, wire into the pipeline. The spike estimate of under a day for a working console-path proof still holds.queue.job, lock duration) means a second config publish/review cycle. Minor, but it is a diff our platform team must review and pin before rollout.Technical risk
@mark-year13), which is the first real evidence of a contributor base beyond the maintainer. Treat it as encouraging, not as a resolved bus factor — contributor PRs are not a support policy.config:cache, route:cache, and storage permissions is still the practical failure surface. The new queue.* config keys add another thing that must be present and correct when config is cached.Key questions
--isolated semantics consistent with Laravel core. Still open: does the console/deploy path get equivalent locking, or is that only for queued jobs? This determines whether concurrent blue/green deploys can double-execute.queue.job be overridden safely across a package minor upgrade without forking — i.e. is the base job class's public surface considered stable API?queue.* keys behaves identically to the pre-7.3.0 console-only behavior.queue.job override let us attach correlation IDs without duplicating package internals?--isolated fix imply a minimum Laravel version bump? (Verify: the presence-semantics fix may silently raise the effective framework floor.)Stack fit
queue.* as a disabled feature. This keeps the integration as narrow as it was in the prior assessment and avoids importing worker-lifecycle concerns into the deploy pipeline.Migration path
queue.job on for convenience and silently breaking deploy ordering.bin/deploy.sh so the package remains an implementation detail. The queue.job override is a second reason to keep that wrapper: it gives us a place to put a custom job class if we ever do enable queuing, without touching CI files.Compatibility
--isolated presence-semantics fix doesn't raise the minimum supported Laravel version. A patch that "matches Laravel core semantics" often implies a framework version that has those semantics.queue.* keys are absent-tolerant — a cached config on an existing service must not error because the keys are missing.config:cache / route:cache ordering now that there is more config to resolve.Sequencing
queue.* in this spike.queue.job override and lock duration to understand what enabling them would cost and what breaks. Output is a documented "do not enable unless X" note, not an adoption.Maintenance
Support
queue.*.Scaling
Failure modes
set -e semantics and assert explicitly.--isolated semantics match core. Console-path concurrent deploys remain unverified — this is the failure mode most likely to bite during a multi-region rollout.queue.* keys; a service's cached config predates them. Verify absence-tolerance before rolling 7.3.0 anywhere.Ramp-up
Bottom line for a TPM: 7.3.0 is a healthy maintenance signal — active outside contributors, no breaking changes, and a useful queue.job override that improves our observability story. But it also expands the package from a console-only deploy helper into something that touches the queue subsystem, and it introduces lock TTL and async-ordering failure modes we did not previously have to reason about. The recommendation does not change, but the scope does: fund the one-week console-path spike with queue dispatch explicitly disabled, run a separate short spike to understand the queue path without adopting it, and codify "no queued operations in the critical deploy path" as a hard rule before the second service adopts. Fork-or-replace stays a pre-approved option. The 17/100 score and zero dependents are unchanged; this release improves the maintenance outlook, not the adoption case.
How can I help you explore Laravel packages today?