shivas/versioning-bundle
Symfony bundle that simplifies application versioning by resolving the current version from Git, Composer, files, or environment variables and exposing it to services and Twig templates for display, cache busting, and release tracking.
/version or health endpoint as a real, small scope item rather than a nice-to-have.composer required into a Laravel app without deliberate wrapping work. For a Laravel-first portfolio, the correct decision is to reimplement the pattern natively (~half a day: bake APP_VERSION/commit SHA at build time via CI, expose via /version route and log context, optionally an app:version Artisan command).Adopt when:
Look elsewhere (or build natively) when:
Risks a PM should track before anyone scopes work:
.git in production containers is the classic silent failure — version resolves to dev-main/unknown, quietly eroding trust in the diagnostic.--depth=1) produce tag-less, degraded versions; requires fetch-depth: 0.For executives: This answers a recurring operational question — "exactly which build is running in production?" — which shortens incident triage and makes rollback verification objective rather than assumed. The 4.2.0 release is a routine compatibility bump adding Symfony 8 support; it will not block a future framework upgrade. Cost and risk are near zero. The catch: it's a Symfony bundle, and our stack is Laravel — so the recommendation is to capture the capability as a small internal task (roughly half a day to bake a version identifier at build time and expose it on a health endpoint) rather than add a non-native dependency.
For engineering: shivas/versioning-bundle 4.2.0 adds Symfony 8 compatibility (PR #101) — the only change in the release, with no API changes or deprecations. It's well-suited to Symfony: a Version service, Twig extension, and console command sourced from Git tags with zero configuration. It is not installable into Laravel, since Laravel ships Symfony components but not the bundle/kernel/DI-extension machinery. Action: do not adopt on Laravel services. Instead, implement the equivalent natively — inject APP_VERSION/commit SHA at build time from the same immutable artifact that produces the image, expose it via /version and log headers, and add an app:version command. Revisit the bundle only if a Symfony service enters the portfolio, and even then check the PHP 8.4 floor and confirm the constraint still admits Symfony 6/7 where needed.
How can I help you explore Laravel packages today?