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 本身以外的組織使用的腳本,畢竟這些組織可能並不知道名稱發生了變化。