amcgowanca / composer-patches-drupal-patching
使用cweagans/composer-patches对Drupal 8核心进行修补的解决方案。
Requires
- php: >=5.6.0
- composer-plugin-api: ^1.0
- cweagans/composer-patches: 1.x-dev
Requires (Dev)
- composer/composer: ~1.0
This package is auto-updated.
Last update: 2024-09-16 23:25:47 UTC
README
此软件包提供了一种解决方案,用于解决在通过使用cweagans/composer-patches
应用Drupal 8核心包补丁时,补丁未能正确应用到Drupal核心本身的问题。相反,不正确应用补丁的常见症状是创建以下目录:docroot/core/b/
或docroot/core/core
。这似乎是由于composer.json
中drupal/core
项目的安装路径指定为docroot/core
所致。这在Acquia BLT(以及可能Acquia Lightning)基于的项目中很常见。
此Composer插件提供了一种机制来解决此问题,以便可以在通过cweagans/composer-patches
插件触发的预补丁应用事件期间修改安装路径,从而使在composer.json
中定义的Drupal核心补丁能够应用到docroot
与docroot/core
。然而,这最终需要对Composer Patches项目进行修改,以便能够修改$install_path
值,这可以通过以下链接中的更改看到:这里。
用法
- 项目的
composer.json
文件必须指定从其中检索cweagans/composer-patches
项目的新的仓库。这可以通过将以下内容添加到composer.json
的repositories
属性中来实现
"cweagans/composer-patches": {
"type": "vcs",
"url": "git@github.com:amcgowanca/composer-patches.git"
},
- 您的
composer.json
应指定cweagans/composer-patches
作为第一个可能的包来检索(在Acquia BLT 或 Lightning中,其中"merge-plugin"."replace"
为false
之前)。此包应具有1.x-dev
的版本。
"cweagans/composer-patches": "1.x-dev"
- 您的
composer.json
应要求此包,可提供为
"amcgowanca/composer-patches-drupal-patching": "^0.0.1"
- 根据您的项目当前的工作流程,您可能需要执行“nuke”操作以有效地重新构建项目依赖项。请注意,您可能会(并且很可能)在第一次执行完整的
composer install
或更新操作时注意到一些定义的Drupal 8核心补丁不再应用。应指出,这些补丁可能从未应用过,并且被静默忽略。
相关问题与资源
以下是一组与该插件(及修改后的cweagans/composer-patches
)帮助解决的核心问题相关的高级别问题和资源
- cweagans/composer-patches#178
- cweagans/composer-patches#165
- cweagans/composer-patches#174
- https://www.drupal.org/project/drupal/issues/1356276?page=1#comment-12277804
- acquia/blt#2309
- https://docs.acquia.com/article/fixing-failing-composer-patches-updating-gnu-patch
示例仓库
已创建一个示例仓库,其中包含一个示例,说明了一个干净的Acquia BLT项目设置,其中此Composer插件旨在解决的错误,以及一个示例,其中所讨论的问题实际上得到了解决。更多信息可在amcgowanca/composer-patches-drupal-patching-proof找到。