Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Sic Bundle Laravel Package

gepur-it/sic-bundle

gepur-it/sic-bundle is a PHP bundle for integrating SIC functionality into Symfony applications. It packages configuration and service wiring so projects can add SIC-related features with minimal setup and keep integration code organized.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Overlap protection for scheduled work. The core capability — guaranteeing a console command runs as a single instance — maps directly to a recurring product reliability question: what happens when a nightly job runs long and the next cron tick fires anyway? This package is a reference point for deciding whether that risk is handled by the scheduler, by a lock primitive, or by nothing at all.
  • Build vs. buy for infrastructure glue. Single-instance semantics are ~30–80 lines of code (PID file, lock file, or advisory lock) plus edge-case handling for stale locks and crashed processes. This package forces an honest comparison: does a 1-star, single-maintainer bundle actually beat a documented internal utility we own and can debug at 3am?
  • Runtime/framework alignment. Despite being catalogued as a Laravel/PHP package, this is a Symfony bundle. In a Laravel codebase that means framework-bundle wiring you don't need — Laravel's scheduler already ships withoutOverlapping(), and Cache::lock() covers ad-hoc cases. That mismatch is a decision input, not a footnote.
  • Roadmap signal for legacy console estates. If the org has a large set of Symfony console commands driving ETL, report generation, cache warmers, index rebuilds, or imports, this package is a marker of a category of need — one better served by consolidating onto a modern scheduler or a queue with unique-job semantics than by adding a per-command bundle.
  • Dependency policy enforcement. The v6.0.0 release is a useful case study in what "maintained" actually means: a four-year gap followed by a two-line composer constraint bump to PHP 8 / Symfony 5. It satisfies a version check without answering the questions that matter — is the lock logic reviewed, are the edge cases tested, is anyone triaging issues? Use it to sharpen the bar: what is our minimum standard for adding, and keeping, a transitive dependency in a production service?

When to Consider This Package

Adopt only under a narrow set of conditions, all of which must hold:

  • The codebase is Symfony (not Laravel) with many console commands invoked by external cron, and there is no existing lock/scheduler abstraction to extend.
  • You need the behavior immediately and the alternative — a small internal lock decorator around Command::execute() — is genuinely more expensive than pulling in a bundle.
  • You have verified compatibility against your runtime matrix. v6.0.0 moves the constraints to PHP 8 and Symfony 5, which clears the "frozen since 2021" objection — but it lands the package on targets that are themselves aging out (PHP 8.0/8.1 are past end of life; Symfony 5.4 is in its final support window). Symfony 6/7 and PHP 8.2+ still require a fork or constraint override of your own.
  • You are willing to vendor or fork it, since single-maintainer + zero dependents + a release consisting of a composer constraint edit means you are effectively the maintainer, and will be the one validating that the lock logic behaves under PHP 8.

Look elsewhere — or build — when any of these are true:

  • You are on Laravel. Use $schedule->command(...)->withoutOverlapping() for scheduled work and Cache::lock() for one-off critical sections. Adding a Symfony bundle here is pure overhead, and v6.0.0 does nothing to change that.
  • You need multi-node correctness. Single-instance via local file/PID is per-host. On more than one box, or in containers that restart, you need a distributed lock (Redis/DB-backed) — which this does not give you.
  • You need observable behavior. No signals, metrics, or deadlock-age alerts make silent skips invisible; a job that "didn't run" is a production incident with no trail. v6.0.0 adds no instrumentation.
  • Stale-lock recovery matters. Crashed processes leaving a lock behind is the classic failure mode of this pattern; confirm the package handles it before trusting it with revenue-adjacent batch jobs. No changes in this release indicate it was revisited.
  • Your dependency policy requires evidence of ongoing maintenance (release cadence, multiple maintainers, issue triage, tests in CI). One compatibility bump after four years of silence is a pulse, not a heartbeat.

How to Pitch It (Stakeholders)

For executives: We re-evaluated a small open-source utility that prevents scheduled console commands from running on top of themselves — a real and recurring reliability risk in batch processing. A new version was released, but it only updates the PHP and Symfony version constraints in composer.json; no functionality, reliability, or observability was added. Recommendation is unchanged: do not adopt it. It remains a single-maintainer Symfony bundle with no downstream dependents, and our stack is Laravel, where the framework already provides equivalent overlap protection for free. The new release removes one objection (it now installs on PHP 8) without addressing the ones that drove the decision — we'd still own the maintenance, on aging framework targets, in exchange for functionality we already have.

For engineering: The need is legitimate — idempotent, single-instance scheduled jobs — but this package is still the wrong vehicle. Use Laravel's withoutOverlapping() on scheduled commands and Cache::lock() for one-off critical sections; for the handful of cases that don't fit, a small internal lock decorator with explicit stale-lock expiry and structured logging is a half-day of work and gives us observability the bundle doesn't. On the v6.0.0 release specifically: it's a two-line constraint bump to PHP 8 / Symfony 5, not a code change — treat it as evidence the project is alive, not that it's maintained. The one scenario that would reopen this: a legacy Symfony service on Symfony 5 with heavy console-command usage and no scheduler abstraction — and even then, the right move is a scheduled modernization, not adopting a bundle we'd have to fork to reach a currently supported Symfony major.

Ask: Approval to close this evaluation and timebox the internal decorator instead.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings