isaac / composer-semver-cli
This package is auto-updated.
Last update: 2024-09-23 20:40:33 UTC
README
这是 composer/semver 包的 CLI 封装器。为表示 Composer\Semver\Comparator
、Composer\Semver\Semver
和 Composer\Semver\VersionParser
类的多数方法,添加了命令命名空间。
安装
将此包作为项目需求添加
$ composer require iodigital-com/composer-semver-cli
这将安装 composer-semver
脚本到项目的 vendor/bin
文件夹。
或作为全局需求
$ composer global require iodigital-com/composer-semver-cli
这将安装 composer-semver
脚本到 $HOME/.composer/vendor/bin
文件夹。
用法
以下命令提供
comparator:qt
:根据 Composer SemVer 判断version1
是否大于version2
comparator:gte
:根据 Composer SemVer 判断version1
是否大于或等于version2
comparator:lt
:根据 Composer SemVer 判断version1
是否小于version2
comparator:lte
:根据 Composer SemVer 判断version1
是否小于或等于version2
comparator:eq
:根据 Composer SemVer 判断version1
是否等于version2
comparator:neq
:根据 Composer SemVer 判断version1
是否不等于version2
semver:satisfies
:检查 Composer SemVer 约束是否满足版本semver:satisfied-by
:列出哪些提供的版本满足 Composer SemVer 约束semver:sort
:根据 Composer SemVer 排序版本semver:rsort
:根据 Composer SemVer 反向排序版本version-parser:parse-stability
:返回提供的版本的稳定性
示例
检查一个版本是否大于另一个版本
$ composer-semver -v comparator:gt '1.25.0-alpha1' 'v1.24.0-p1'
version '1.25.0-alpha1' is greater than version 'v1.24.0-p1' according to Composer SemVer
排序版本
$ composer-semver semver:sort '1.25.0' 'v1.25.0-p2' '1.25.0-rc3' 'v1.25-dev'
v1.25-dev
1.25.0-rc3
1.25.0
v1.25.0-p2
检查版本是否满足 Composer SemVer 约束
$ composer-semver semver:satisfies -v '^1.25.0-p1' 'v1.25-p2'
Composer SemVer constraint '^1.25.0-p1' satisfies version 'v1.25-p2'
检查哪些版本满足 Composer SemVer 约束
$ composer-semver semver:satisfied-by '^1.25.0-p1' '1.25.0' 'v1.25.0-p2' '1.25.0-rc3' 'v1.25-dev'
v1.25.0-p2
返回版本的稳定性
$ composer-semver version-parser:parse-stability '1.25.0-rc3'
RC
应用
此工具允许进行 Composer SemVer 计算,而使用 Composer 工具本身则不切实际。
例如,为了准备 PHP 升级,最好提前知道新版本是否引入了与 vendor
文件夹中包的 require.php
属性不兼容的问题。这可以通过使用 check-platform-reqs
Composer 命令来完成;然而,实际上这个 Composer 命令是在新 PHP 版本的环境中运行的。当这不可能时,可以使用以下命令生成与特定 PHP 版本(在这种情况下为 8.3.0)不兼容的包列表
$ for f in vendor/*/*/composer.json ; do if jq -e '.require.php' $f > /dev/null && ! composer-semver semver:satisfies "$(jq -r '.require.php' $f)" '8.3.0' ; then echo $f ; fi ; done
注意,这里使用了 jq 命令。
作为另一个应用,您可能想检查 Composer 如何看待您应用程序的 git 标签。例如,您可以按 Composer SemVer 排序它们
$ composer-semver semver:sort $(git tag -l)
或检查哪些标签满足 Composer SemVer 约束
$ composer-semver semver:satisfied-by "^1.2" $(git tag -l)
或者,您可能想知道已发布多少个稳定版本
$ for VERSION in $(git tag -l) ; do composer-semver version-parser:parse-stability ${VERSION} ; done | grep -c "stable"