Bram去世之後Vim的維護:來自一位核心維護人員的講述

轉自:InfoQ 
作者:David Cassel 
譯者:平川
本文最初發佈於 THENEWSTACK 部落格。
阿爾布開剋日落(2022 年 10 月),David Cassel 拍攝
開源文字編輯器 Vim 的建立者 Bram Moolenaar 於 2023 年 8 月去世後,這個專案怎麼樣了?
為了確保專案得以繼續,社群默默地做出了巨大的努力。
2024 年 11 月底,在 VimConf 2024 大會上,Vim 維護者 Christian Brabandt 講述了這個故事。這是一個真實的鼓舞人心的故事,關於堅韌、毅力和紀念。
在東京,Brabandt 對聽眾說:”你們可以看到,開發工作並沒有停止。“
每天都有新的 pull 請求和問題需要稽核,所以“它仍然相當活躍。GitHub 上有很多活動在進行。“
2024 年 1 月,他們釋出了 Vim 9.1,並將其獻給了 Moolenaar。
開發沒有停止
自 2006 年以來,平臺顧問 Christian Brabandt 就一直活躍在 Vim 社群,貢獻了 Bug 報告、修復和一些新特性。他參與了 Vim 的正則表示式處理和加密支援等工作,還幫助建立每日 Appimage 並“遷移了主頁”。2023 年 8 月,“我突然成了 Vim 的主要維護者之一”。
Moolenaar 去世的訊息“讓我們所有人都非常震驚”,儘管在此之前幾周,Vim 的郵件列表已經“非常安靜”,“人們已經開始懷疑 Bram 出了什麼事?他在哪裡?”
“我們必須決定該怎麼做。“
Brabandt 首先承認,他們“失去了很多知識”,而不僅僅是 Moolenaar 的測試指令碼。
30 年前,Moolenaar 建立了 Vim,他的腦子裡“裝著很多知識,關於他最初希望 Vim 擁有的所有功能”。不僅如此,Moolenaar 還是專案的領導者。“基本上,是他決定了專案的戰略——他希望專案向何處發展,他希望它包含什麼,以及他不喜歡什麼”。
“我們必須重組,找到延續專案的方法。”
從一開始,我們就遇到了一個很大的問題。Vim 的 GitHub 賬戶,“Bram 是所有者。這意味著只有他才能做出某些決定——比如做出為其他維護者設定角色和許可權的最終決定…… 我們需要有這樣的權力才能繼續工作,並邀請其他維護者加入專案"。
幸運的是,GitHub 有一項 “已故使用者”政策,其中包括“預先指定的繼任者”。但遺憾的是,Brabandt 告訴聽眾,利用這項政策 “並不像聽起來那麼容易”,因為在填寫完相關檔案後,GitHub 賬戶 “基本上就失效了”。這對我們來說不是最好的辦法,因為 Bram 的家人可以訪問他的賬戶,我不想讓他們失去這項能力“。相反,為了方便邀請其他維護者,Moolenaar 的家人更改了許可權。
Brabandt 說,Moolenaar 去世後不久,GitHub 上就累積了“大量的 pull 請求。於是我開始檢視並匯入它們。當另一位長期貢獻者和核心維護者 Charles Campbell 決定退休時,我決定再邀請一些維護者…… 主要是那些長期為 Vim 做出貢獻的人。“
但是,除了原始碼,他們還必須管理專案的其他基礎設施。遺憾的是,那些工作沒有一個記錄在案的流程,“因此,我不得不自己找出這一切——如何管理——總的來說,困難重重”。
似乎所有可能出錯的地方都出錯了:
  • 處理 Vim 漏洞報告的網站被一家人工智慧安全公司收購。Brabandt 說,“這家公司專注於人工智慧,而且只專注於人工智慧…… 開源漏洞報告幾乎立即就被關閉了”。於是,該專案轉向了 GitHub 安全諮詢。
  • Brabandt 瞭解到,Vim 主頁的基礎程式碼過去 20 年從未變過。它仍然包含 PHP 7 程式碼——儘管對 Php 7 的支援已於 2022 年 11 月終止。
  • 2023 年 7 月,為 Vim 主頁提供託管服務的公司被開源中國收購,很快訪問者就開始遇到資料庫錯誤,而技術支援請求無人回覆。因此,在重組 Vim 專案的過程中,專案團隊也不得不為 Vim 主頁尋找新的託管服務,但“遺憾的是,這也意味著我們必須將主頁從 PHP 7 至少升級到  PHP 8”。
  • Brabandt 說,”FTP 伺服器仍由荷蘭 Unix 使用者組運營。這在上世紀 90 年代或 2000 年代初還可以。但現在,我認為人們通常都是從 GitHub 或主頁上下載。” 荷蘭 Unix 使用者組也不願意給 Brabrandt 開通訪問許可權。他說,“沒關係…… 因為我們後來決定淘汰舊的 FTP 伺服器。如果需要下載,可以透過 Vim 主頁完成“。
Brabandt 說,自從取消 FTP 訪問以來,他還沒有聽到過任何投訴。
對 ICCF 有什麼影響 ?
直到 2024 年底,他們才意識到,幫助頁面上的電子郵件地址仍然是轉發到 Moolenaar 的郵箱賬號。“大概就在兩週前,我更改了這些地址,所以現在它們都轉發到了我的郵箱“。
眾所周知,Vim 鼓勵使用者向 Moolenaar 最喜歡的慈善機構荷蘭國際兒童保育基金(ICCF)捐款。Brabandt 說,Moolenaar 家族仍在維護 Bram 的 Paypal 賬戶(仍可從 Vim.org 上的連結訪問),用於接收捐款。Moolenaar 去世後,很多人向 ICCF 捐款,2024 年又有 9 萬歐元的捐款。Brabandt 也致力於確保這些捐款能夠按照預期使用,並表示近期內不打算建立任何 Vim 贊助專案。
有一項變化:Bram Moolenaar 曾允許 ICCF 捐贈者對 Vim 的未來功能進行投票,這項功能被關閉了。很難弄清楚哪些 ICCF 捐款應該與 Vim.org 使用者掛鉤。( Brabandt 說,我不知道 Bram 過去是怎麼做的,ICCF 的其他人也無法告訴我!")。實際上,大多數新增的增強請求和問題都來自其他渠道,比如 GitHub 和 Vim 自己的待辦事項列表。
維護模式
那麼未來會發生什麼呢?Brabandt 告訴與會者,Vim 計劃在即將釋出的 Vim 9.2 中做出“更多可能引起爭議的改動”。其中包括支援 XDG 規範的基目錄規範(“至少有 10 年的時間,社群一直希望這樣做”),以及更好地支援 Wayland)。此外,還有一些新的選項和外掛,以及一些不可避免的 Bug 修復。
因此,在進行更改的同時,關於 Vim 的未來,Brabandt 悄悄地發表了一份重要的宣告。“不過目前,我認為 Vim 或多或少地處於維護模式。我認為,任何維護者都無法全職從事 Vim 或較大功能的維護工作“。舉例來說,他知道,Neovim 社群一直在做一些比較大的更改,比如支援解析庫 Tree-sitter,但將其新增到 Vim 將需要付出“巨大的努力…… 我不太確定我們能否做到,至少在短期內不能”。
不過,Brabandt 宣佈了另一個有價值的目標:確保社群的健康發展。也就是說,要歡迎新的貢獻者,讓他們能夠輕鬆地開始程式碼貢獻。Brabandt 甚至還引進了一些自動程式碼格式化工具,因為在此之前,Vim 的原始碼使用的是一種在 Brabandt 看來比較“奇怪 ”的特殊格式化風格。基本上,那是 Bram 的工作方式,這沒什麼問題,但對新使用者沒有幫助"。
隨後的一張幻燈片建議人們開展一些工作,包括:“Tree-Sitter 整合?”、 GTK 版的 Vim GUI 和更高階的終端功能。例如,Vim 的拼寫檢查程式碼“已經有好幾年沒動過了”。
Brabandt 說:“如果未來開發重大的新功能,那麼我們確實需要社群的幫助。“但他一直建議,在熟悉程式碼庫之前,新的貢獻者要“從小處著手”。
就目前而言,”大部分已合併的變更都是相對獨立的小特性集合,很容易進行測試,而且不會對程式碼的其他部分產生太大的影響。“
 測試、重構,或許還要淘汰
Python 2 介面
他們仍在使用兼顧“防禦性和安全性”的 C 語言編碼。Brabandt 說,現在不可能把所有東西都重構成 Rust 這樣的現代程式語言。他對所有變更都進行了全面的測試,他們每天都執行程式碼分析工具 Coverity。今後,他們將重構部分 “相當冗長、複雜和難以理解 ”的程式碼。(Vim 真的還需要 Python 2 的外部介面嗎?由於 Python 社群早在幾年前就轉向了 Python 3,Brabandt 認為,這是一個過時介面的例子,“在未來某個時候”可能會退出歷史舞臺)。
他們有一個重要的政策目標是確保 Vim 的向後相容性。當然,Brabandt 也吸取了過去的經驗教訓,在一張標題為“新 Vim 專案——未來”的幻燈片中,他提出了一個關鍵的“政策”要點:“更好地記錄(內部)流程”。
Brabandt 說,他是在檢視 Moolenaar 積壓的待處理 pull 請求時提出這些政策原則的。
他希望看到的另一項改進是更好地瞭解 Vim 社群,他甚至在考慮進行一次使用者調查。在演講的最後,Brabandt 向聽眾講述了他在 Moolenaar 辭世後瞭解到的東西:維護 Vim 是一項艱鉅的工作,而且是一項全職工作。“那不僅是編寫程式碼的問題,也是管理社群的問題。這就意味著要傾聽社群的聲音——“傾聽他們的要求,修復出現的 Bug,確保我們能夠跟上社群的步伐,滿足社群的需求”。
“這是一個開源專案——這意味著社群可以做出貢獻,也應該做出貢獻,同時幫助我們引導專案走向未來“。
Brabandt 說,這個健康的社群已經有了一個明確的訊號,那就是 Vim 大會本身。
原文連結:
https://thenewstack.io/vim-after-bram-a-core-maintainer-on-how-theyve-kept-it-going/
推薦閱讀點選標題可跳轉

相關文章