isaac/composer-semver-cli

此包已被废弃且不再维护。作者建议使用 iodigital-com/composer-semver-cli 包。

composer/semver 包的 CLI 封装器

v1.4.2 2024-07-12 12:23 UTC

This package is auto-updated.

Last update: 2024-09-23 20:40:33 UTC


README

这是 composer/semver 包的 CLI 封装器。为表示 Composer\Semver\ComparatorComposer\Semver\SemverComposer\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"