All Projects → avto-dev → app-version-laravel

avto-dev / app-version-laravel

Licence: MIT license
Laravel application versioning

Programming Languages

PHP
23972 projects - #3 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to app-version-laravel

Cli
🆑📍 Setup automated semver compliant package publishing
Stars: ✭ 272 (+1033.33%)
Mutual labels:  package, version
repology-rules
Package normalization ruleset for Repology
Stars: ✭ 67 (+179.17%)
Mutual labels:  package, version
version-check
An action that allows you to check whether your npm package version has been updated
Stars: ✭ 65 (+170.83%)
Mutual labels:  package, version
Repology Updater
Repology backend service to update repository and package data
Stars: ✭ 348 (+1350%)
Mutual labels:  package, version
Pip Check
pip-check gives you a quick overview of all installed packages and their update status.
Stars: ✭ 134 (+458.33%)
Mutual labels:  package, version
Npmvet
A simple CLI tool for vetting npm package versions
Stars: ✭ 193 (+704.17%)
Mutual labels:  package, version
Semantic Release
📦🚀 Fully automated version management and package publishing
Stars: ✭ 14,364 (+59750%)
Mutual labels:  package, version
Please Upgrade Node
💁 Show a message to your users to upgrade Node instead of a stacktrace
Stars: ✭ 219 (+812.5%)
Mutual labels:  package, version
Laravel Multilingual Routes
A package to handle multilingual routes in your Laravel application.
Stars: ✭ 241 (+904.17%)
Mutual labels:  package
pro.fessional.wings
WingsBoot=BKB+飞鞋+SpringBoot。其核心价值是:①使团队快速实现业务目标;②快速偿还技术债务;③安全的面向程序和业务重构。
Stars: ✭ 78 (+225%)
Mutual labels:  version
Skeleton Php
⚡️ This package provides a wonderful PHP skeleton to start building your next package idea.
Stars: ✭ 234 (+875%)
Mutual labels:  package
Vuepack
Publish .vue files in NPM packages
Stars: ✭ 242 (+908.33%)
Mutual labels:  package
next-ver
Tells you the next semantic version for your local package
Stars: ✭ 27 (+12.5%)
Mutual labels:  version
Swaglyrics For Spotify
📃 Get lyrics of currently playing Spotify song so you don't sing along with the wrong ones and embarrass yourself later. Very fast.
Stars: ✭ 235 (+879.17%)
Mutual labels:  package
version-compare
↔️ Rust library to easily compare version strings. Mirror from https://gitlab.com/timvisee/version-compare
Stars: ✭ 32 (+33.33%)
Mutual labels:  version
Photofilters
photofilters library for flutter
Stars: ✭ 229 (+854.17%)
Mutual labels:  package
Laravelmetatags
The most powerful and extendable tools for managing SEO Meta Tags in your Laravel project
Stars: ✭ 226 (+841.67%)
Mutual labels:  package
gpkg
🌎 A global Node binary manager written in Rust
Stars: ✭ 53 (+120.83%)
Mutual labels:  package
bump
a tiny tool to bump nimble versions 🍻
Stars: ✭ 23 (-4.17%)
Mutual labels:  version
git
🔀 semantic-release plugin to commit release assets to the project's git repository
Stars: ✭ 235 (+879.17%)
Mutual labels:  version

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].