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
文件中。
当使用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许可证授权。