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

Version Information Bundle Laravel Package

leaseweb/version-information-bundle

A Symfony bundle that gathers and exposes version information for your application and its Composer dependencies, making it easy to surface build/version metadata for monitoring, health checks, and deployment diagnostics.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is not a Laravel package — it is a Symfony bundle (LswVersionInformationBundle) that plugs into the Symfony Web Debug Toolbar via symfony/web-profiler-bundle, bundle registration in the kernel, and Symfony's DI container/tag system. Laravel has no bundle concept, no Web Debug Toolbar, and no compatible data-collector contract, so there is no drop-in architecture fit. The only transferable asset is the idea (surface VCS state in a dev-only debug panel) and roughly a few hundred lines of glue code that shell out to git status/svn status and format the output.

Integration feasibility. Low as a dependency, moderate as a reference implementation. Composer installation into a modern Laravel app (PHP 8.1+, Laravel 10/11) would either fail on platform/Symfony constraints or drag in an obsolete Symfony 2/3 dependency tree. A TPM should treat this as "read the source, reimplement the behavior," not "add to composer.json."

Technical risk.

  • Abandoned/archived: no security patching, no PHP 8 compatibility work, no response to CVEs in its transitive Symfony deps. Any adoption is a permanent fork commitment.
  • Information disclosure: the bundle's entire purpose is rendering branch names, remote URLs, changed-file lists, and commit metadata into an HTTP response. Correct only if strictly gated to APP_DEBUG=true and non-public environments; a misconfiguration leaks repository structure and developer workflow detail.
  • Ecosystem mismatch: SVN support is dead weight; Git-only tooling is the relevant 10%.
  • Zero dependents, 25 stars: no community validation, no downstream battle-testing, no issue history to mine for failure modes.

Key questions.

  1. What is the actual developer pain — "which commit is deployed?" or "are there uncommitted changes in this environment?" The former is better solved by build-time stamping; only the latter needs runtime VCS inspection.
  2. Does the deployment artifact even contain a .git directory, and is a git binary present in the runtime image?
  3. Is the value worth ~1–2 engineer-days of reimplementation plus permanent ownership of a forked collector?
  4. Does an existing, maintained tool already cover 80% of this (Laravel Debugbar, Ignition, an artisan about-style command)?

Integration Approach

Stack fit. None directly. The functional equivalent in Laravel is a custom Laravel Debugbar collector (barryvdh/laravel-debugbar) that runs git status --porcelain and git rev-parse --abbrev-ref HEAD in a Collector::collect() method, or — cheaper still — a Blade partial in the dev-only layout plus an artisan vcs:status command. Both are first-class Laravel patterns; the Symfony bundle's tag-based collector registration has no analogue.

Migration path. Do not port the bundle wholesale. Extract the two or three useful behaviors:

  1. Repository root resolution and graceful degradation when no repo exists.
  2. git status parsing into a compact changed-files summary (porcelain format, truncated).
  3. Rendering into the debug surface.

Then reimplement as a Laravel service provider + Debugbar collector (if Debugbar is already a dependency) or a standalone artisan command (if it is not). Estimated effort: half a day for a command, 1–2 days for a polished collector with tests.

Compatibility. If any team insists on evaluating the original, pin it in a throwaway Symfony 3 sandbox only — never in a Laravel composer.json. Expect PHP 8 deprecations, and treat composer update as unsupported.

Sequencing.

  1. Spike (0.5 day): confirm the developer question being answered and whether Debugbar is already installed.
  2. Decide build vs. buy: almost certainly build, because the "buy" option is an archived Symfony bundle with zero Laravel relevance.
  3. Implement build-time stamping first (commit SHA + branch injected via CI into config/APP_VERSION), which answers the deployment-provenance question with zero runtime shell execution.
  4. Add runtime git status only if the uncommitted-changes signal is genuinely needed, gated behind app()->isLocal() and APP_DEBUG.
  5. Delete the archived dependency from evaluation notes so it is not re-proposed next quarter.

Operational Impact

Maintenance. Adopting the bundle means forking it: you inherit PHP 8 compatibility, Symfony version drift, and any latent parsing bugs, with no upstream to merge from. Ownership cost is small in code volume but permanent in attention — the worst ratio for a dev-tooling nicety. Reimplementing locally keeps the same code volume but with code your team actually understands and can delete.

Support. No maintainer, no issue triage, no security advisories. Internal-only support burden; effectively zero external escalation path. For a debug-only tool this is survivable, but it fails any dependency-governance or SBOM policy that flags archived upstreams.

Scaling. Runtime cost is negligible at any real scale because it should never run in production — if it does, you are shelling out to git on every request, which is a process-spawn per request with unbounded output parsing. That is a genuine latency and fork-bomb-adjacent risk under load, and worse in containerized environments where .git is stripped.

Failure modes.

  • git binary absent from the runtime image → exception or silent empty panel.
  • Working directory is not a repository (common with Docker COPY-only builds) → error path.
  • Detached HEAD in CI → branch resolution returns a SHA or literal HEAD, producing confusing labels.
  • Permission errors on .git (mixed UID images) → noisy failures in logs.
  • Large git status output (generated files, node_modules not ignored) → truncated or slow rendering.
  • Misconfigured environment gate → repository metadata rendered to an unauthenticated user.
  • Shell injection if any user-controlled path is interpolated into the command (unlikely in the original, but a mandatory check in any reimplementation).

Ramp-up. Near-zero for a developer: the concept is immediately legible and the reimplementation is a few hundred lines. The real ramp-up cost is organizational — explaining why an archived Symfony bundle from 2016 is in the dependency review at all, and documenting the environment gate so the debug surface cannot be enabled in production.

Recommendation. Do not adopt. Score 0.1875 is directionally correct: the package is a 2016 Symfony dev-toolbar ornament with no Laravel applicability, no maintenance, and a small information-disclosure surface. Capture the requirement (deployment provenance + working-tree state visibility), satisfy the high-value half with build-time commit stamping in CI, and satisfy the remainder with a ~1-day in-house Debugbar collector or artisan command that the team owns outright.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log