joachim-n / drupal-project-contrib-development
Requires
- composer-plugin-api: ^2.0
Requires (Dev)
- symfony/var-dumper: ^6 || ^7.0
This package is not auto-updated.
Last update: 2024-09-25 17:21:20 UTC
README
这是一组工具,用于在项目环境中开发Drupal贡献模块和主题。
特性
切换到克隆命令
这是一个Composer命令,可以将Drupal模块从正常安装切换到使用指向项目中的git克隆的符号链接。
这允许在项目环境中测试和开发贡献模块。
例如,假设您的Widgets.Com网站正在使用drupal_cats模块,但您发现其中存在一个bug。您可以修改drupal_cats模块的文件,但它们不受版本控制,因此您无法从drupal.org创建一个MR。您可以将它们复制到drupal_cats的单独git克隆中,但这很快就会变得繁琐,尤其是当有多个文件时。此外,您项目中的drupal_cats安装副本是固定版本(希望如此!),而您想要修复的代码可能在最新的HEAD中已更改。
切换到克隆命令使这一切变得简单
- 您的项目已使用Composer安装了drupal/drupal_cats包。
- 执行
composer drupal-contrib:switch-clone drupal_cats
。这会执行以下操作- 将drupal_cats git仓库克隆到项目中的./repos文件夹。
- 在composer.json中添加了一个Composer路径仓库,它指向此git克隆。这不应该添加到版本控制中;它仅在您在贡献模块的git克隆中工作期间临时需要。
- Composer已更新为使用此仓库中的drupal/drupal_cats。这创建了一个从./repos/drupal_cats文件夹到项目./modules/contrib文件夹的符号链接,替换了之前安装的drupal_cats模块版本。
- 现在您可以像平常一样使用drupal_cats的git克隆了
- 为您的修复创建一个功能分支
- 从drupal.org检查出一个分支以评估修复
- 在项目环境中测试您的代码。
- 将您的更改推送到drupal.org的合并请求。
当您的修复准备就绪时,从您的composer.json中删除'drupal_cats'路径仓库,并执行composer update drupal/drupal_cats
以将您的项目切换回使用drupal/drupal_cats包的发行版本。
如果您在此期间需要执行任何Composer操作,您可能需要暂时将git仓库切换到最初检出时的主开发分支或发布标签,以满足Composer的包版本要求。
切换回包发布命令
这是一个Composer命令,可以将Drupal模块从作为符号链接安装切换到从包发布中正常安装。
使用此命令可以撤销composer drupal-contrib:switch-clone
命令的效果,并使项目对模块的使用恢复正常操作。
- 您的项目已从符号链接安装了drupal/drupal_cats包。
- 执行
composer drupal-contrib:switch-package drupal_cats
。这会执行以下操作- 指向git克隆的Composer路径仓库将从composer.json中删除。
- Composer已更新以下载drupal/drupal_cats包。
该模块的Git仓库未被更改或删除。您可以使用drupal-contrib:switch-clone
命令恢复使用。
创建并应用补丁命令
这是一个Composer命令,它将模块Git克隆中的工作作为补丁应用到项目中。
当您完成对贡献模块中一个错误或功能的修改,并希望将此修复应用到您项目代码库时,请使用此命令。drupal.org合并请求的diff在此场景下并不总是适用,因为合并请求将在模块的开发分支上,而且这个diff可能不适用于您项目使用的版本。相反,此命令从功能分支到您项目已安装的版本获取diff。
此操作需要项目已安装cweagans/composer-patches
包。
- 您的项目已通过Composer安装了drupal/drupal_cats包,并在repos/drupal_cats下有一个git clone,其中包含您的功能分支工作。
- 执行
composer drupal-contrib:apply-patch-from-branch drupal_cats
。这将执行以下操作:- 从repos/drupal_cats中的功能分支到已安装包的当前版本获取git diff。
- 将git diff写入到/patches目录下的补丁文件中。
- Composer更新以应用到drupal/drupal_cats包的补丁。
您还应该将您的修复作为合并请求贡献回drupal.org!
安装
使用Composer进行安装
composer require joachim-n/drupal-project-contrib-development
路线图
- 获取用于补丁名称和composer.json描述的问题标题。
- 添加其他有用的东西。