LLVM 项目“master”改名成难题:开发者讨论激烈
扫描二维码
随时随地手机看文章
LLVM 项目最近一个待解决的任务是将其 Git 仓库中使用“master”命名的分支更改为更具包容性的描述。到目前为止,几乎所有发表意见的人都支持这种改变,不过仍存在一些开放性的问题有待解决,比如该如何称呼新的主开发分支、评估更改分支命名涉及的技术成本,以及这种变更应该如何快速实现。
在 LLVM-dev 开发者邮件列表上,关于将 LLVM Git 仓库主分支从"master"改为 "trunk", "dev" 或 "main"等名称已经进行了非常热烈的讨论。
许多开发者似乎赞成把"master"改为"trunk",就像使用 Subversion 开发 LLVM 时一样(LLVM 的代码仓库去年已从 SVN 切换至 Git),不过 Arm 对使用"trunk"作为主分支名称表示了担忧,因为他们已经将 trunk 分支用作其他用途。
同时也有少数开发者表示更愿意将其称为"dev"分支。目前,上游的 Git 和 GitHub 尚未决定如何命名新的默认术语,他们的方案可能一致也可能不一致,但无论如何都希望更具包容性。
LLVM 项目创始人 Chris Lattner 对此发表了评论并支持更改"master"分支的命名。他建议,与其自己想出一个新的名称,不如坐等上游 GitHub/Git 的方案。然后一旦落实,就与他们的方案保持一致,以避免任何不必要的混乱。
不少开发者也同意这个提议,还希望在 LLVM 新版发布后进行更改以实现平滑过渡。但也有少数人呼吁尽快改名,不希望受 Git/GitHub 决定的影响而被耽误,更不希望等到下半年 LLVM 11.0 发布再改名,他们想看到一两周内就完成改掉"master"的任务。对于这种呼吁,考虑到涉及的技术成本,以及不希望意外地破坏项目上游或众多下游用户使用的任何构建/拉取脚本,有部分开发者提出了反对意见。
除了"master"这个名词,还有开发者提出用 allowlist/denylist 替换 LLVM 中的 whitelist/blacklist。目前看来这个更改提议在 LLVM 代码库中很快就会实现。还有一位开发者提出,应避免使用"work"和"job"这两个名词,因为在俄语和其他斯拉夫语言中,它可以被翻译成"奴隶(slave)"。
LLVM 面临的问题除了要就新的主分支名称达成共识外,还有变更背后的技术成本。目前所涉及的主要技术成本是必须更新其所有的构建机器人和 CI 基础设施,以便在新的分支名称下拉取代码,以及任何其他依赖 Git 中现有分支名称的脚本 —— 包括那些由 LLVM 本身以外的组织使用的脚本,毕竟这些组织可能并不知道名称发生了变化。