Laravel applications versioning

v3.3.0 2020-12-25 08:26 UTC

This package is auto-updated.

Last update: 2022-06-25 11:53:35 UTC



AppVersion for Laravel applications

Version PHP Version Build Status Coverage Downloads count License


Picture taken from antonioribeiro/version repository

Laravel does not have included mechanism for a working with application version, and this package can fix this flaw.


Require this package with composer using the following command:

$ composer require avto-dev/app-version-laravel "^3.0"

Installed composer is required (how to install composer).

You need to fix the major version of package.

After that you should "publish" configuration file (./config/version.php) using next command:

$ php artisan vendor:publish --provider="AvtoDev\\AppVersion\\ServiceProvider"


This package provides application version manager (AppVersionManager) and:

  • Version value repositories (abstraction layer above version data)
  • Repository drivers (also known as "factories" - they creates configured repository instance)

You can write your own implementations, and use them (only correct configuration is required).

Built-in "storage" types:

  • Plain file with version definition;
  • Application configuration file (version.config by default);
  • CHANGELOG.md file (extracts last defined version value).

If you wanna get access to the version manager using DI - just request AvtoDev\AppVersion\AppVersionManagerInterface:


namespace App\Console\Commands;

use AvtoDev\AppVersion\AppVersionManagerInterface;

class SomeCommand extends \Illuminate\Console\Command
     * The console command name.
     * @var string
    protected $name = 'some:command';

     * Execute the console command.
     * @param AppVersionManagerInterface $manager
     * @return void
    public function handle(AppVersionManagerInterface $manager): void
        $manager->version(); // e.g.: 1.0.0-alpha2

Artisan commands

Command signature Description
version Shows application version
version --get-segment=major/minor/patch/build Shown only major/minor/patch/build version value
version --set-build=alpha2 Set build value alpha2
version --set-version=1.2.3-alpha Complex version setter


Blade compiler allows next directives:

Application version: @app_version
Build version: @app_build
Application version hash: @app_version_hash


For package testing we use phpunit framework and docker-ce + docker-compose as develop environment. So, just write into your terminal after repository cloning:

$ make build
$ make latest # or 'make lowest'
$ make test

Changes log

Release date Commits since latest release

Changes log can be found here.


Issues Issues

If you will find any package errors, please, make an issue in current repository.


This is open-sourced software licensed under the MIT License.