A Symfony bundle for automatically managing application versioning using Git tags or files with Semantic Versioning 2.0.0 compliance.
Shivas Versioning Bundle is a Symfony bundle that automates application version management using Semantic Versioning 2.0.0. It reads version information from Git tags, VERSION files, or REVISION files and makes it available throughout the Symfony application via Twig variables or service injection. This solves the problem of manually tracking and updating version numbers in development and deployment workflows.
Symfony developers and teams who need to maintain consistent, automated versioning across their applications, particularly those using Git-based workflows or deployment tools like Capistrano.
Developers choose this bundle because it provides a standardized, extensible way to handle versioning with zero manual overhead. Its integration with Symfony's ecosystem, support for multiple version sources, and compliance with Semantic Versioning make it a reliable and flexible solution compared to custom implementations.
Simple way to version (semantic versioning 2.0.0) your Symfony2/3/4/5/6 application
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically reads version from Git tags using the GitRepositoryProvider, eliminating manual version updates in code, as highlighted in the README's key features.
Exposes the current version as a global Twig variable ({{ shivas_app_version }}), making it easy to display in frontend and backend templates without extra configuration.
Supports custom version providers via a simple interface, allowing integration with various SCM systems or unique requirements, as demonstrated in the 'Adding own provider' section.
Uses the nikolaposa/version library to enforce SemVer 2.0.0 standards, ensuring all versions are valid and consistent, which is a core philosophy of the bundle.
The recommended GitRepositoryProvider requires at least one valid SemVer tag in the repository, which can be a barrier for new or untagged projects, as noted in the README's provider descriptions.
Default providers are focused on Git, VERSION, and REVISION files; other SCMs like SVN need custom implementation, with some providers marked as unsupported in the console command output.
Customizing formatters or disabling defaults requires manual service configuration in YAML files, which can be error-prone and adds overhead for simple use cases.