enuage / version-updater

版本更新的工具

安装: 24

依赖者: 0

建议者: 0

安全: 0

星标: 1

Forks: 1

类型:symfony-bundle

1.5.8 2021-07-04 03:51 UTC

README

Packagist Packagist

要求

  • PHP >= 7.1.3
  • Symfony 可选

安装

完全不使用 Symfony 的应用程序

步骤 1:下载库

打开命令行界面,进入您的项目目录并执行

$ composer require enuage/version-updater

步骤 2:从 vendor/bin 使用版本更新的命令

$ php vendor/bin/version-updater [options] [--] [<version>]

使用 Symfony Flex 的应用程序

打开命令行界面,进入您的项目目录并执行

$ composer require enuage/version-updater

不使用 Symfony Flex 的应用程序

步骤 1:下载包

打开命令行界面,进入您的项目目录并执行以下命令以下载此包的最新稳定版本

$ composer require version-updater

此命令要求您全局安装了 Composer,如 Composer 文档中的安装章节所述。

步骤 2:启用包

然后,通过将其添加到项目 app/AppKernel.php 文件中注册的包列表中来启用该包

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Enuage\VersionUpdaterBundle\VersionUpdaterBundle(),
        );
        // ...
    }
    // ...
}

使用

选项 1:通过命令行更新文件

步骤 1:定义文件和版本更新的正则表达式

使用 \V 在正则表达式中定义版本。它将被 SemVer 正则表达式替换

1.2.0 版本新增:您可以通过在 json 配置下添加文件路径和属性的路径(由斜杠分隔)来轻松定义应该更新的 json 文件的属性 - 格式如下:path-to/file: property/path

1.3.0 版本新增:您可以通过在 yaml 配置下添加文件路径和属性的路径(由斜杠分隔)来轻松定义应该更新的 yaml 文件的属性 - 格式如下:path-to/file: property/path

1.5.4 版本新增:自定义提交和标签(发布)消息

示例

files:
  - '.env': '/^(API_VERSION=)\V/m'
  - 'README.md': '/^(Version:\s)\V/m'
json:
  - composer: version                 # File: <project>/composer.json
  - doc/api: info/version             # File <project>/doc/api.json
yaml:
  - doc/api: info/version             # File <project>/doc/api.yaml
git:
  enabled: true # Optional parameter. You can disable Git operations without removing its configuration
  source: true # The latest tag will be got from Git history
  push: true # Push tag to repository after its creation
  prefix: v # Tag prefix. Empty by default
  message:
    commit: 'Your custom commit message (\V)' # If you want, you can use \V to define the place for version string
    release: 'Your custom release message'

步骤 2:使用版本更新的命令

$ php bin/console enuage:version:update [options] [--] [<version>]

可用选项

  • --major:仅增加主版本
  • --minor:仅增加次要版本
  • --patch:仅增加补丁版本
  • --alpha:增加或定义 alpha 版本
  • --beta:增加或定义 beta 版本
  • --rc:增加或定义发布候选版本
  • --down:降低定义的版本。也适用于预发布版本
  • --release:删除所有预发布版本
  • --date <none|PHP 日期格式>:向版本添加日期元数据。默认日期格式为 c
  • --meta <数据>:向版本添加元数据
  • --config-file <字符串>:配置文件的路径或包含 .enuage 配置文件的目录
  • --colors <布尔值>:启用/禁用输出中的颜色。默认 - true
  • --show-current <字符串|布尔值>:从文件或所有可用来源显示当前版本。目前支持以下来源
    • composer
    • Git 仓库(如果启用)
  • --exclude-git:禁用更新 Git 仓库
  • --print-version-only:隐藏所有消息,在脚本作业完成后仅打印新版本。可以通过增加详细程度级别(-v)再次显示消息

选项 2:通过服务更新版本

示例

use Enuage\VersionUpdaterBundle\DTO\VersionOptions;
use Symfony\Component\DependencyInjection\Container;
// use Enuage\VersionUpdaterBundle\Service\VersionService;

$version = '0.1.0-alpha.2';

$service = $container->get('enuage.version.service');
// $service = VersionService(); // If you don't use Symfony
$options = new VersionOptions();

$options->increasePreRelease();

$service->update($version, $options); // Result: "0.1.0-alpha.3"

可用方法

  • addDateMeta(format = null):启用提供的格式或默认的 'c' 中的日期元数据
  • addMeta(value = null):向标签添加自定义元数据
  • increaseMajor():启用主版本增加
  • decreaseMajor():禁用主版本增加
  • increaseMinor():启用次要版本增加
  • decreaseMinor():禁用次要版本增加
  • increasePatch():启用补丁版本增加
  • decreasePatch():禁用补丁版本增加
  • updateAlpha():启用预发布版本 alpha 修改
  • updateBeta():启用预发布版本 beta 修改
  • updateReleaseCandidate():启用预发布版本 rc 修改
  • increasePreRelease():增加预发布版本(例如:0.1.0-alpha.2 -> 0.1.0-alpha.3
  • decreasePreRelease():减少预发布版本(例如:0.1.0-alpha.2 -> 0.1.0-alpha.1
  • setVersion():设置自定义版本值
  • downgrade():降级版本,包括预发布版本
  • release():禁用所有预发布后缀