发布支持旧版软件包的错误修复

编辑

发布支持旧版软件包的错误修复

编辑

在某些情况下,当我们停止支持旧版堆栈并在稍后发现需要为某些旧版软件包添加错误修复时,我们需要进行一些手动更改以将错误修复发布给用户。例如:在此 PR(AWS 软件包版本 1.23.4)中,放弃了对 Kibana 7.x 版本的支持,并将 AWS 软件包版本从 1.19.5 提升到 1.20.0。但我们发现 EC2 仪表板中存在一个错误,需要使用 Kibana 7.x 版本进行修复。因此,我们无需添加新的 AWS 软件包版本 1.23.5,而需要在 1.19.5 和 1.20.0 之间进行修复。

按照以下详细步骤发布给定软件包版本的修复程序

  1. 查找需要修复的 git 提交(软件包版本)

    在上面的示例中,要修复的提交是在更新软件包 aws 的此 PR 之前的提交。

  2. 运行 integrations-backport 管道 https://buildkite.com/elastic/integrations-backport 以创建回传分支。 buildkite 构建

    请注意!,如果您只是运行管道,它将等待您的输入,如果没有输入,则不会发生任何事情。

    waiting input step

    管道的输入

    • DRY_RUN(默认值:“true”),如果 DRY_RUN 定义为“true”,它将检查

      • 软件包是否已发布,
      • 输入的提交是否存在,
      • 回传分支是否存在。此外,它将创建本地分支,使用 .buildkite.ci 文件夹更新分支,并删除除定义的软件包之外的其他软件包(如果设置为输入)。在这种模式下,本地分支不会推送到上游存储库。

    如果 DRY_RUN 定义为“false”,除了上面写的内容外,它还将创建一个提交并将本地分支推送到上游存储库 https://github.com/elastic/integrations.git。在这种情况下,分支的名称将为 +backport-${PACKAGE_NAME}-${TRIMMED_PACKAGE_VERSION}+,例如 backport-aws-1.19

    • BASE_COMMIT(默认值:“”) - 输入上一步的提交(8cb321075afb9b77ea965e1373a03a603d9c9796)
    • PACKAGE_NAME(默认值:“”) - 输入软件包名称,例如 aws
    • PACKAGE_VERSION(默认值:“”) - 输入软件包版本,例如:1.19.7、1.0.0-beta1
    • REMOVE_OTHER_PACKAGES(默认值:“false”)如果 REMOVE_OTHER_PACKAGES 定义为“true”,则将删除 packages 文件夹中除定义的软件包之外的所有软件包从创建的分支中删除。
  3. 为错误修复创建 PR

    在您自己的远程创建新分支(建议 不要使用backport- 开头的分支名称),并在其中应用错误修复。请记住更新软件包清单中的版本(更新补丁版本,例如 1.19.<x+1>)并为该补丁版本添加新的更改日志条目。

    准备就绪后,打开一个 PR,选择上面创建的分支作为基分支:backport-<package_name>-<package_major_version>.<package_minor_version>(例如 backport-aws-1.19)。

    此 PR 合并后,软件包的新版本将按照通常的 CI/CD 作业自动发布。

    如果需要为此版本发布新的修复程序,则无需创建新分支。只需创建一个新的 PR 以将新分支合并到之前创建的相同回传分支上即可。

  4. 更新主分支中的更改日志

    相应的回传分支(例如 backport-aws-1.9)中已合并 PR 并且软件包已发布后,应手动创建一个新的拉取请求以更新主分支中的更改日志,以包含在回传分支中发布的新版本。请注意,应按照版本顺序添加更改日志条目。

    为了跟踪,此新的 PR 也应在其描述中包含对回传 PR 的引用(相关)。

  5. 已知问题及其解决方案

    1. 缺少 shellinit 命令

    2. 未找到许可证文件