avto-dev/app-version-laravel

Laravel applications versioning

v3.1.0 2020-05-09 18:54 UTC

This package is auto-updated.

Last update: 2020-06-27 07:16:03 UTC


README

Laravel

AppVersion for Laravel applications

Version PHP Version Build Status Coverage Downloads count License

screenshot

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.

Install

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"

Usage

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:

<?php

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

Blade compiler allows next directives:

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

Testing

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.

Support

Issues Issues

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

License

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