concretecms/dependency-patches

为 concrete5 和 Concrete CMS 依赖项所需的补丁

1.7.7 2023-12-01 15:17 UTC

This package is auto-updated.

Last update: 2024-08-30 01:14:51 UTC


README

Tests

Concrete5 和 Concrete CMS 的依赖项补丁

Concrete5 v8 和 Concrete CMS v9+ 使用了许多第三方库,这些库通过 Composer 安装。

新版本的 PHP 的内部更改需要升级一些这些 Composer 包,但其中一些不再与我们的支持版本兼容,或者它们尚未修复。

dependency-patches 项目包含这些所需的补丁,以便 concrete5 和 Concrete CMS 仍然可以使用它们。

如何使用

可以从 https://www.concretecms.org/download 下载的 concrete5 和 Concrete CMS 的官方版本已包含 dependency-patches 中包含的补丁。

如果您使用基于 Composer 的 concrete5/Concrete CMS 安装,您需要将以下行添加到您的 composer.json 文件中

  • require 部分(如果它尚未包含在 concrete5/Concrete CMS 附带的 composer.json 文件中)
    "concretecms/dependency-patches": "^1",
  • extra 部分
    "allow-subpatches": [
        "concretecms/dependency-patches"
    ],

如何添加新的补丁

如果您想对名为 <vendor>/<package> 的 composer 包进行补丁处理,版本号为 1.2.3,则应

  1. 在 Concrete 根目录中创建 .patch 文件
    1. 运行 composer reinstall <vendor>/<package> --prefer-source(需要 composer 2.1+)以拥有 git 仓库
    2. 在包目录中运行 git checkout -b my-patch <tag>(其中 <tag> 是与已安装包版本对应的标签)
    3. 编辑所需的文件
    4. 通过运行 git commit -am "我的精彩补丁" 创建包含更改的提交
    5. 通过运行 git format-patch --no-stat -1 创建补丁文件
    6. 通过删除无用行来编辑该补丁,例如
      • 初始的 From <sha1> <date>
      • git 特定的行(它们以 diff --git ...index sha1..sha1 开头)
      • 如果有,关闭注释(文件末尾的 -- 行及其后任何其他行)
    7. 将 .patch 文件移动到 dependency-patches 仓库中 <vendor>/<package> 目录
  2. 在项目的 composer.json 文件的 extra.patches 部分添加 <vendor>/<package>:1.2.3 键。例如
    "<vendor>/<package>:1.2.7": {
        "Description of the patch": "<vendor>/<package>/name-of-the-patch-file.patch"
    },
  3. 要本地测试补丁,您可以编辑 concrete5/Concrete CMS 安装的 composer.json 文件,添加
    • require 部分
      "concretecms/dependency-patches": "dev-master"
    • repositories 部分
      {
          "type": "path",
          "url": "relative/or/absolute/path/to/your-local/dependency-patches"
      }
      PS:在 Windows 上,您可以使用正斜杠(/)而不是反斜杠(\)作为目录分隔符。