phlak / semver-cli
用于在项目内管理语义化版本号的命令行工具
Requires
- php: ^8.1 || ^8.2 || ^8.3
- composer/composer: ^2.0
- phlak/semver: ^4.0
- php-di/php-di: ^7.0
- symfony/console: ^6.0 || ^7.0
- symfony/event-dispatcher: ^6.0 || ^7.0
Requires (Dev)
- phlak/coding-standards: ^2.0
- psy/psysh: ^0.12
- symfony/var-dumper: ^6.0 || ^7.0
- vimeo/psalm: ^5.0
- yoast/phpunit-polyfills: ^2.0
This package is auto-updated.
Last update: 2024-09-21 00:24:26 UTC
README
用于管理项目语义化版本的命令行工具
由Chris Kankiewicz (@PHLAK)创建
要求
- PHP >= 7.2
安装
可以通过Composer按项目或全局安装SemVer CLI。
按项目
composer require phlak/semver-cli
当安装到项目中时,semver
工具将被安装到项目的 vendor/bin
目录。
ℹ️ 建议在项目内安装时,将
vendor/bin
添加到您的PATH
环境变量中。否则,您每次调用命令时都需要使用相对路径(即vendor/bin/semver [arguments]
)。
全局
composer global require phlak/semver-cli
如果需要全局安装,则 semver
工具将被安装到全局的 ${COMOPSER_HOME}/vendor/bin
目录。
ℹ️ 在全局安装时,您应该将
${COMOPSER_HOME}/vendor/bin
添加到您的PATH
环境变量中。如果不这样做,您将需要在每次调用时指定完整的安装路径。
使用方法
初始化
首先,您必须在目录内初始化语义化版本号。
$ semver initialize
这将通过创建一个包含当前目录版本号的 VERSION
文件,将版本初始化为 0.1.0
。
初始化特定版本
要初始化到特定版本,请将版本作为参数传递给 initialize
命令。
$ semver initialize 1.3.37
初始化不完整的版本
有时您可能需要使用不完整的版本初始化语义化版本号。默认情况下,initialize
命令需要有效的语义化版本字符串。如果您希望允许命令尝试“最佳猜测”,可以使用 --parse
选项。
$ semver initialize --parse 1.2
设置版本值
初始化后,您可以使用 set:version
命令设置(覆盖)完整版本。
$ semver set:version 1.3.37
或者,您也可以设置单个值。
$ semver set:major 1
$ semver set:minor 3
$ semver set:patch 37
$ semver set:pre-release beta.5
$ semver set:build 007
ℹ️ 设置某些值可能会影响其他值
- 设置
major
值将重置minor
和patch
值为0
。- 设置
minor
值将仅重置patch
值为0
- 设置
major
、minor
或patch
值还将清除pre-release
和build
值
清除值
您可以使用 clear
命令清除 pre-release
或 build
值。
$ semver clear:build
$ semver clear:pre-release
检索值
初始化后,您可以在任何时候获取完整版本。
$ semver get:version
要获取以 v
前缀的版本(例如,v1.3.37
),请使用 --prefix
选项。
$ semver get:version --prefix
您也可以检索单个值。
$ semver get:major
$ semver get:minor
$ semver get:patch
$ semver get:pre-release
$ semver get:build
如果 pre-release
和 build
值未设置,则默认情况下将不输出任何内容。要强制输出,请添加 --verbose
选项。
$ semver get:pre-release --verbose
$ semver get:build --verbose
增加版本号
您可以使用 increment
命令增加版本值。
$ semver increment:major
$ semver increment:minor
$ semver increment:patch
ℹ️ 增加某些值可能会影响其他值
- 增加
major
值将重置minor
和patch
值为0
- 增加
minor
值将仅重置patch
值为0
- 增加
major
、minor
或patch
的值也将清除pre-release
和build
的值
适配器
存储版本信息的方法可以通过 --adapter
选项进行配置。以下是可以选择的适配器。
file
- 将版本存储在当前目录下的常规文件中(默认)
composer
- 将版本存储在
composer.json
文件的 version 属性下
当使用 file
适配器时,您可以通过 --file
选项控制命令读取和写入版本的文件。此选项接受您想使用的名称,并将在该目录中查找具有该名称的文件。
$ semver --file .version get:version
默认情况下,composer
适配器将在当前目录中查找您的 composer.json
文件。如果您的 composer.json
文件位于其他位置,您可以使用 --composer
选项指定路径。
$ semver --composer path/to/composer.json increment:major
ℹ️ 可以将适配器选项与任何命令一起传递。
配置
您不必在每次命令中传递适配器选项,而是可以将这些选项设置在持久性配置文件中。要启用配置,请创建一个名为 semver.config.php
的文件到您的项目目录中。此文件必须是 PHP 文件,并返回一个包含一个或多个以下配置选项的数组。
adapter
-
存储版本数据的存储适配器。
等同于
--adapter
选项。 file_name
-
使用文件适配器时版本文件的名称。
等同于
--file
选项。 composer_file
-
使用 composer 适配器时 composer 文件的路径
等同于
--composer
选项。
示例
<?php return [ 'adapter' => 'composer', 'composer_file' => 'some/path/composer.json', ];
变更日志
变更列表可在 GitHub Releases 页面上找到。
故障排除
有关一般帮助和支持,请加入我们的 GitHub Discussions 或在 Twitter 上联系我们。
请向 GitHub Issue Tracker 报告错误。
版权
本项目受 MIT 许可证 许可。