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

Chronos Laravel Package

tkachikov/chronos

Chronos is a lightweight Laravel package that brings convenient time and date utilities to your application. It offers a clean, framework-friendly API for common temporal operations, making time handling simpler, more expressive, and consistent with Laravel conventions.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: Chronos is a Laravel-native operations panel for scheduling, running, and observing artisan/system commands. It fits applications already relying on Laravel’s scheduler, queue workers, and cache, and it aligns with the framework’s service-provider and config-publishing conventions. Version 1.9.1 supports illuminate/support ^10.0|^11.0|^12.0|^13.0, making it viable across Laravel 10 through 13 and suitable for both current and recently upgraded applications.

Integration feasibility: High. There are no migrations in this release, and the package is config-driven. The main integration work is configuration governance rather than code changes: defining chronos.system_commands, deciding whether CHRONOS_TEST_COMMANDS should be enabled outside local, and confirming which PHP binary should execute real-time runs via CHRONOS_PHP_BINARY. Existing published configs from older versions are supported by the new config keys, reducing upgrade friction.

Technical risk: Moderate, driven primarily by behavior changes rather than defects:

  • System commands are disabled by default. Only application and Chronos commands may be run or scheduled unless explicitly allowlisted in chronos.system_commands. Existing schedules referencing disallowed commands are skipped, not removed. This is the highest-risk change: after upgrade, scheduled jobs may silently stop executing until the allowlist is populated.
  • Test commands are local-only unless CHRONOS_TEST_COMMANDS=true. Staging environments that depend on chronos:test, chronos:answer, or similar commands will lose access until configured.
  • Real-time execution now uses the running PHP binary rather than php from PATH, with CHRONOS_PHP_BINARY as an override. This improves correctness in containerized or multi-version environments but may change behavior where the panel’s PHP differs from the intended worker runtime.
  • Metrics calculation changed. Average command duration is no longer an average of averages, and metrics accumulation was fixed. Historical dashboards may show discontinuities or corrected values, which should be communicated to operators.

Key questions:

  • Which existing schedules reference vendor or framework commands that will be skipped under the new default?
  • Is CHRONOS_PHP_BINARY required in our container or host setup, or does the running PHP binary match the intended execution runtime?
  • Do any non-local environments rely on Chronos test commands?
  • Are dashboards or alerts based on command duration metrics that will shift after the averaging fix?
  • Is the Authorize middleware in use, and is the published provider present to avoid authorization errors?

Integration Approach

Stack fit: Fits standard Laravel deployments using artisan, the scheduler, queue workers, and cache. No new infrastructure is required. The package’s dependency constraint covers Laravel 10–13, so it can be adopted without forcing a framework upgrade. The Laravel 13 fix for cache.serializable_classes = false is relevant for teams on or moving to Laravel 13.

Migration path: Treat 1.9.1 as a configuration-sensitive upgrade rather than a drop-in patch:

  1. Inventory all currently scheduled and manually run commands, separating application/Chronos commands from vendor/framework commands.
  2. Populate chronos.system_commands with every required artisan or vendor command class/name before deployment.
  3. Set CHRONOS_TEST_COMMANDS deliberately per environment, defaulting to disabled outside local.
  4. Set CHRONOS_PHP_BINARY if the panel runtime PHP differs from the intended execution binary.
  5. Deploy, then verify that previously scheduled commands are present and executing rather than skipped.

Compatibility: No database migrations. New config keys work with older published configs, so teams do not need to republish configuration, though reviewing the published config for clarity is advisable. The Authorize middleware fix and subdirectory deployment fix reduce prior integration edge cases. Real-time signal handling now correctly propagates SIGTERM/SIGKILL and records a killed state.

Sequencing: Complete the command inventory and allowlist configuration before enabling the new version in production. Roll out to staging first to confirm test-command visibility, PHP binary selection, authorization behavior, and metric changes. Production rollout should be followed by immediate verification of schedules and real-time runs. Because skipped schedules fail quietly, monitoring should be in place before or immediately after deployment.

Operational Impact

Maintenance: Low ongoing maintenance. The release is primarily fixes and safeguards. No migrations or schema changes reduce deployment overhead. The main recurring task is maintaining chronos.system_commands as new vendor commands are adopted, which should be folded into change management for scheduled jobs.

Support: Support burden will concentrate around the upgrade window. Operators may report “missing” scheduled runs that are actually skipped due to the new allowlist. Clear runbooks and release communication are needed. The test-command environment gate may also generate staging support requests. Signal-handling and killed state fixes improve diagnosability for long-running commands.

Scaling: Real-time runs now use the correct PHP binary, which is beneficial in multi-version, containerized, or subdirectory deployments. Incremental log loading reduces overhead when streaming logs from long-running commands. Metrics fixes improve accuracy for capacity and performance analysis, though corrected averages may temporarily complicate trend comparisons. Queue workers that manage their own SIGTERM handling retain that behavior, which preserves existing graceful-shutdown patterns.

Failure modes:

  • Silent schedule skipping after upgrade if system commands are not allowlisted — highest-impact failure mode.
  • Binary mismatch if CHRONOS_PHP_BINARY is unset and the panel’s PHP differs from the intended runtime.
  • Missing test commands outside local when CHRONOS_TEST_COMMANDS is not enabled.
  • Authorization errors if Authorize middleware is enabled without the required published provider.
  • Metric discontinuity in dashboards following the averaging correction.
  • Lost answers in real-time runs are addressed by this release, but teams should still validate interactive command flows after upgrade.

Ramp-up: Minimal for developers familiar with Laravel scheduling and artisan. Operators need a short briefing on the system-command allowlist, environment-gated test commands, and the PHP binary setting. The most important enablement material is a pre-upgrade checklist and a post-upgrade verification procedure focused on skipped schedules and real-time execution.

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.
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package