LLVM 項(xiàng)目“master”改名成難題:開發(fā)者討論激烈
LLVM 項(xiàng)目最近一個(gè)待解決的任務(wù)是將其 Git 倉庫中使用“master”命名的分支更改為更具包容性的描述。到目前為止,幾乎所有發(fā)表意見的人都支持這種改變,不過仍存在一些開放性的問題有待解決,比如該如何稱呼新的主開發(fā)分支、評估更改分支命名涉及的技術(shù)成本,以及這種變更應(yīng)該如何快速實(shí)現(xiàn)。
在 LLVM-dev 開發(fā)者郵件列表上,關(guān)于將 LLVM Git 倉庫主分支從"master"改為 "trunk", "dev" 或 "main"等名稱已經(jīng)進(jìn)行了非常熱烈的討論。
許多開發(fā)者似乎贊成把"master"改為"trunk",就像使用 Subversion 開發(fā) LLVM 時(shí)一樣(LLVM 的代碼倉庫去年已從 SVN 切換至 Git),不過 Arm 對使用"trunk"作為主分支名稱表示了擔(dān)憂,因?yàn)樗麄円呀?jīng)將 trunk 分支用作其他用途。
同時(shí)也有少數(shù)開發(fā)者表示更愿意將其稱為"dev"分支。目前,上游的 Git 和 GitHub 尚未決定如何命名新的默認(rèn)術(shù)語,他們的方案可能一致也可能不一致,但無論如何都希望更具包容性。
LLVM 項(xiàng)目創(chuàng)始人 Chris Lattner 對此發(fā)表了評論并支持更改"master"分支的命名。他建議,與其自己想出一個(gè)新的名稱,不如坐等上游 GitHub/Git 的方案。然后一旦落實(shí),就與他們的方案保持一致,以避免任何不必要的混亂。
不少開發(fā)者也同意這個(gè)提議,還希望在 LLVM 新版發(fā)布后進(jìn)行更改以實(shí)現(xiàn)平滑過渡。但也有少數(shù)人呼吁盡快改名,不希望受 Git/GitHub 決定的影響而被耽誤,更不希望等到下半年 LLVM 11.0 發(fā)布再改名,他們想看到一兩周內(nèi)就完成改掉"master"的任務(wù)。對于這種呼吁,考慮到涉及的技術(shù)成本,以及不希望意外地破壞項(xiàng)目上游或眾多下游用戶使用的任何構(gòu)建/拉取腳本,有部分開發(fā)者提出了反對意見。
除了"master"這個(gè)名詞,還有開發(fā)者提出用 allowlist/denylist 替換 LLVM 中的 whitelist/blacklist。目前看來這個(gè)更改提議在 LLVM 代碼庫中很快就會(huì)實(shí)現(xiàn)。還有一位開發(fā)者提出,應(yīng)避免使用"work"和"job"這兩個(gè)名詞,因?yàn)樵诙碚Z和其他斯拉夫語言中,它可以被翻譯成"奴隸(slave)"。
LLVM 面臨的問題除了要就新的主分支名稱達(dá)成共識(shí)外,還有變更背后的技術(shù)成本。目前所涉及的主要技術(shù)成本是必須更新其所有的構(gòu)建機(jī)器人和 CI 基礎(chǔ)設(shè)施,以便在新的分支名稱下拉取代碼,以及任何其他依賴 Git 中現(xiàn)有分支名稱的腳本 —— 包括那些由 LLVM 本身以外的組織使用的腳本,畢竟這些組織可能并不知道名稱發(fā)生了變化。