nu2000/composer-monolith

提供在单体仓库结构中验证依赖的命令

v1.4.0 2022-10-03 06:00 UTC

README

安装

使用 composer

composer require nusje2000/composer-monolith --dev

验证规则

IncompatibleVersionRule

此规则检查子包中依赖的版本约束,并将其与根 composer.json 文件中同一依赖的版本约束进行比较。示例

  • 子包 foo/foo-package 依赖于 bar/bar-package ^1.0
  • 根 composer.json 定义了对 bar/bar-package ^2.0 的依赖
  • 规则将触发,因为版本 ^1.0 与版本 ^2.0 不兼容

MissingDependencyRule

此规则将检查子包的依赖是否都包含在根 composer 定义中。

MissingReplaceRule

此规则将检查所有子包是否在根 composer 定义中定义为 replaced。请参阅:[https://getcomposer.org/doc/04-schema.md#replace](https://getcomposer.org/doc/04-schema.md#replace)

命令

验证项目结构

在项目的根目录中,您可以使用 vendor/bin/composer-monolith validate 来验证项目结构。

自动修复

当运行 vendor/bin/composer-monolith validate 时,您可以添加 --autofix 选项,然后验证器将尝试修复验证器输出的问题。

版本均衡器

在单体仓库中,可能会需要均衡所有子包中一个依赖的版本。为此,您可以使用 vendor/bin/composer-monolith equalize。这只能用于版本不一致的依赖。

版本更新器

要更新依赖项,您可以使用 vendor/bin/composer-monolith update <dependency_name> <version_constraint>。这将确保所有子包和根包中的版本约束与提供的版本约束匹配。实际上,这不会使用 composer 更新包,这必须手动完成。

CODEOWNERS 文件

在大型单体仓库中,维护可能会很困难。使用 CODEOWNERS 文件可以让您的版本控制系统确保正确的团队成员在合并之前必须批准像 PR 这样的东西。有一个命令可以生成和验证 CODEOWNERS 文件,这样您就不必维护它了。此命令从不同的内部包中读取作者,并将它们放入位于项目根目录的中央 CODEOWNERS 文件中。要生成一个 CODEOWNERS 文件,只需运行 vendor/bin/composer-monolith codeowners:generate。为了确保 CODEOWNERS 文件始终保持最新,您可以在 CI 系统中使用验证命令来验证 CODEOWNERS 文件,并确保没有人缺失。要验证 CODEOWNERS 文件,只需运行 vendor/bin/composer-monolith codeowners:validate