TT Lab
博客

한국어 English 日本語 中文

开始
博客

博客

Could we backport this?: 当你请求将修复内容应用到旧版本时

今日英语表达 30/30 · 阶段:合并后。 文中的例句均为专门编写。并未引用实际仓库的评论,分支和编号仅为示例。

目录

一目了然

表达 Could we backport this to release-1.4? / Is this a candidate for a cherry-pick?
含义 这个修复能同步到 release-1.4 吗?
使用场景 已合并的 PR 评论、Issue、版本发布相关频道
礼貌程度 礼貌的请求。由维护者来做决定

1. 含义与语境

backport 由 back(向后)和 port(迁移、移植)组合而成,意为 将新版本中的修复内容移植到旧版本中。在开源项目中,它指将合并到 main 的修改迁移到已发布的发布分支(如 release-1.4 等),以便将其包含在下一个补丁版本(1.4.x)中。

Kubernetes 将同样的操作称为 cherry pick 。根据 Kubernetes 的 cherry pick 文档,这是指将已合并到 master 的变更迁移到发布分支,通常是为了通过补丁版本发布安全修复或严重漏洞修复。请求者使用仓库的 hack/cherry_pick_pull.sh 脚本为每个目标分支单独创建 cherry pick PR,并从支持的最新发布分支向较旧的分支推进。新的 cherry pick PR 会带上 do-not-merge/cherry-pick-not-approved 标签,只有在版本管理员批准后才能合并。其他项目可能会通过机器人命令或标签来完成相同操作,因此请查阅 CONTRIBUTING 文档。

从这个过程中可以看出,backport 并不是理所当然会做的事情。 发布分支以稳定性为先,通常不接受新功能或有风险的变更。因此在请求时,务必说明 为什么需要它。说明是安全问题、数据丢失或升级失败等严重漏洞,还是受影响的用户较多,有助于维护者做出判断。请求时主语使用 we(Could we ...?)也会带有一种「一起来评估看看」的协作感。

2. 示例句

场景 1:在已合并的 PR 中请求时

Thanks for fixing this! Could we backport it to release-1.4? Users on 1.4 hit this crash during upgrades, and there's no workaround.

there's no workaround 意为“没有变通方法”,能最简短地传达需要 backport 的原因。

场景 2:询问是否适用时

Is this a candidate for a cherry-pick to the 1.3 and 1.4 branches, or is it too risky for a patch release?

candidate 是“候选”的意思。同时给出 too risky(风险太高)这一选项,能让维护者更容易拒绝。

场景 3:维护者回复时

I'd rather not backport this one. It touches the API defaults, which we try to keep stable in patch releases. It'll be in 1.5.0.

拒绝时也伴随着原因和替代方案(下一个正式版本)。

3. 类似表达与区别

4. 韩国人经常犯的错误

5. 一行练习

请将以下韩语句子转换为在已合并 PR 中的评论。

这个修复可以放到 1.4 分支吗?使用 1.4 的用户也遇到了同样的内存泄漏。

参考答案

Could we backport this to the 1.4 branch? Users on 1.4 are hitting the same memory leak.

are hitting 是“正在经历”的进行时,传达了问题正在发生。如果再加上用户数量或问题链接,会更有说服力。

Titi 的寄语。 backport 是一种请求。加上一句话说明为什么需要它,维护者就会更容易说“好的”。谢谢大家陪伴我们度过三十篇教程。

参考

登录后即可点赞

评论

还没有评论。

登录后即可发表评论