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 许可证 许可。