wieni / composer-plugin-patchsets
1.0.0
2023-11-10 12:46 UTC
Requires
- composer-plugin-api: ^2.0
- cweagans/composer-patches: ^2.0.0-beta1
Requires (Dev)
- composer/composer: ^2.0
- phpunit/phpunit: ^10
README
简介
wieni/composer-plugin-patchsets
是一个 PHP Composer 插件,旨在解决 Drupal 项目中管理和应用补丁的复杂性。
此插件旨在集中管理补丁,使多个项目能够以一致的方式应用补丁。
问题陈述
在项目中使用 cweagans/composer-patches
进行补丁管理时,引入了一些挑战
- 在不同项目间补丁应用的不一致性导致行为不一致。
- 由于不同项目之间补丁创建的差异性,在升级版本时难以识别和应用相同的补丁。
目标
wieni/composer-plugin-patchsets
的主要目标是实现依赖项补丁解析。这是在 cweagans/composer-patches
中已被弃用的一个特性。
功能
该插件利用了 cweagans/composer-patches
发布的新插件功能,通过注册 自定义解析器 来添加补丁。
用法
- 创建一个存储库(例如
your-org/drupal-patches
),其中包含一个定义补丁的composer.json
文件,如cweagans/composer-patches
所述。 - 在您的 Drupal 项目中,需要
wieni/composer-plugin-patchsets
插件和您的新的补丁存储库(your-org/drupal-patches
)。 - 在您的
composer.json
中将补丁存储库(your-org/drupal-patches
)定义为补丁集
{ "extra": { "patchRepositories": [ "your-org/drupal-patches" ] } }
此配置指示 wieni/composer-plugin-patchsets
应用 your-org/drupal-patches
存储库中定义的补丁。
高级配置
该插件支持高级配置,允许排除特定的包和补丁。
以下示例演示了排除 drupal/core
的 "#2907810
" 补丁和 drupal/field_group
的所有补丁。
{ "extra": { "patchRepositories": [ { "name": "your-org/drupal-patches", "excludedPatches": { "drupal/core": [ "#2907810" ], "drupal/field_group": ["*"] } } ] } }
贡献
欢迎贡献、建议和问题报告。您可以随意fork此存储库并提交pull请求。
许可证
本项目采用 MIT 许可证。
致谢
- 感谢
cweagans/composer-patches
在 Composer 中补丁管理方面的开创性工作。