sourcerer-mike/phpsemver

比较两个版本并检查语义版本。


README

检查您的更改与语义版本是否一致

Build Status Coverage

通过 composer 安装它

composer require sourcerer-mike/phpsemver

并通过比较两个版本来测试您的代码

phpsemver compare 3.2.0 HEAD

或最后提交与您当前工作的版本

phpsemver compare HEAD .

+-------+-------------------------------------------------------------------+
| Level | Message                                                           |
+-------+-------------------------------------------------------------------+
| major | phpsemver_get_composer_config() removed.                          |
| major | PHPSemVer\Specification removed.                                  |
| minor | PHPSemVer\Config added.                                           |
| minor | PHPSemVer\Wrapper\AbstractWrapper::mergeTrees() added.            |
| patch | PHPSemVer\Wrapper\Directory::getAllFileNames() body changed.      |
| patch | PHPSemVer\Wrapper\Git::getAllFileNames() body changed.            |
+-------+-------------------------------------------------------------------+

Total time: 0.94

欢迎您!

功能

命令

尝试几种可能性

  • 使用 compare 检查更改。
  • 使用 vcs:message 优化您的提交信息。

包装器

在这些包装器(phpsemver compare --type ...)之间选择

  • GIT
  • 文件系统/目录

如果有一个参数是目录,则系统将在文件系统上工作。

断言

在以下方面进行断言

  • 函数
    • IsAdded: 检查函数是否是新添加的。
    • IsRemoved: 检查函数是否被删除。
    • BodyChanged: 检查函数的行为是否已更改。
    • IsAdded: 检查类是否是新添加的。
    • IsRemoved: 检查类是否被删除。
  • 方法
    • IsAdded: 检查方法是否是新添加的。
    • IsRemoved: 检查方法是否被删除。
    • BodyChanged: 检查方法的行为是否已更改。
    • ReturnTypeChanged: 监控返回类型的变化。
    • ReturnTypeRemoved: 监控方法上不兼容的变化。
  • 接口
    • IsAdded: 检查接口是否是新添加的。
    • IsRemoved: 检查接口是否被删除。

您可以根据自己的需要在自己的配置文件中将它们组合起来。

配置

在 XML 文件中配置要使用的断言。提供的 XSD 文件使您能够轻松编写自己的配置(在合适的 IDE 中)。

<?xml version="1.0"?>
<phpsemver
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/sourcerer-mike/phpsemver/3.2.0/etc/phpsemver.xsd"
        title="My own rules">
    <RuleSet name="major">
        <Trigger>
            <Functions>
                <IsRemoved />
            </Functions>
        </Trigger>
    </RuleSet>
    <RuleSet name="minor">
        <Trigger>
            <Classes>
                <IsAdded />
            </Classes>
        </Trigger>
    </RuleSet>
    <RuleSet name="patch">

    </RuleSet>
    <Filter>
        <Whitelist>
            <Pattern>@lib/.*@</Pattern>
        </Whitelist>
        <Blacklist>
            <Pattern>@lib/Test/.*@</Pattern>
        </Blacklist>
    </Filter>
</phpsemver>

编写您自己的配置并使用 --ruleset 选项。有关更多信息,请参阅维基页面:https://github.com/sourcerer-mike/phpsemver/wiki/Configuration

预定义规则集

这些项目以不同的方式执行语义版本。因此,为它们编写了特殊的配置,可以通过 --ruleSet 选项使用。

  • Drupal-Core
  • SemVer2
  • WordPress

只需输入 phpsemver --ruleSet Drupal-Core 并查看 Drupal 中的最新更改。还有其他一些公司在其规则中遵循某些语义,如 Symfony。不要落后 - 跟上 PHPSemVer 的步伐。