Categories
程式開發

唯一維護者鋃鐺入獄,週下載量超2600萬的JS庫該何去何從?


事件回顧

Denis Pushkarev是Core-js庫的維護人員,去年,他在駕駛摩托車時撞到兩名行人,導致其中一人死亡。 2019年10月,Pushkarev 被定罪;同年11月,Denis Pushkarev 提出上訴,可惜上訴失敗,最終被判處18個月有期徒刑。上訴時,他強調自己是因為對面駛來的汽車的遠光燈使自己視野受限且那兩名行人是突然出現的,導致自己沒有看見才釀成惡果,但這個辯解最終並沒有改變判決結果。

一個廣受歡迎的JS庫的唯一維護者被判18個月有期徒刑,意味著這個人氣很高的項目將處於一個無人維護和更新的階段,這種情況下,很多項目貢獻者和開發者都在擔心Core-js 的命運。

Core-js將何去何從

Core-js 是 Javascript 的模塊化標準庫,它提供了大量的功能來執行常見的操作,適用於2020年的ECMAScript的polyfills:集合、迭代器、類型數組等等。 Core-js 每週通過npm註冊表下載的次數超過2600萬次,其中包括蘋果等大公司,但這場車禍使這一切的未來都充滿了不確定性。

唯一維護者鋃鐺入獄,週下載量超2600萬的JS庫該何去何從? 1

數據來自於npm

唯一維護者鋃鐺入獄,週下載量超2600萬的JS庫該何去何從? 2

截圖自蘋果官網

Denis Pushkarev 的GitHub 賬號ID為zloirock,早在去年5月,發生車禍之後,他就曾提出通過在庫中加入廣告從而增加收入,因為他覺得自己需要承擔車禍相關的法律和醫療費用,但是Core- js 雖然下載量比較高,樂於付費的人卻少之又少。 Core-js 的 GitHub 首頁上仍寫著“作者正在找工作”,雖然很多開發者都在吐槽他“一直處於找工作的階段”,但似乎並沒有令 Pushkarev 滿意的工作出現。

此前,開發商 Nathan Dobrowolski 向 Pushkarev 提出疑問:“如果你進了監獄,那麼誰來維護 Core-js?”對此,Pushkarev 沒有給出任何答案。我們可以看到,GitHub 上最後一次發布更新是2020年1月13日,此後沒有任何更新消息。若無人接替 Pushkarev 對 Core-js 進行維護與更新,雖然不會像 left-pad 事件那樣嚴重,開發者們可以修改 Core-js 的代碼,但這樣又會出現很多額外成本。

解決方案

GitHub社區與安全高級產品經理Ben Balter 在給The Register的電子郵件中說,在項目維護者不響應的情況下,該公司將繼續考慮回購所有權的轉移。 Balter 說:“在一種首選的情況下,我們要確保提前主動緩解問題。”同時還表示,“我們鼓勵維護者將受歡迎的項目從他們的個人帳戶轉移到組織中。除了獲得高級社區管理功能之外,添加至少一名其他維護者作為共同所有者進一步確保了該項目能夠繼續進行,即使一個維護者是無法使用。”

他補充說,維護者可以通過將GitHub狀態設置為“離開”來表示他們打算暫時或永久性退出項目,以使開發者們知道在此期間這些維護者並不會對他們的問題進行回應。

Balter 還表示,GitHub擁有在生病時轉移帳戶所有權的流程,適用於親戚,合作者,同事和業務合作夥伴。他說,GitHub提供了某種應急遷移流程,fork不活動的代碼庫也是其中的一個選項。他還指出,如果GitHub可以接管項目的規範資源,則它有可能重新定位。

Pushkarev 仍沒有任何消息,Core-js 的首頁上也沒有任何更新,沒有人知道 Pushkarev 是否​​會將 Core-js 託管給朋友或社區,又或是被 GitHub 接管?一個深受眾多開發者們喜愛的項目,如果就此停止維護,那麼過不了多久,這個項目的熱度就會逐漸降低,逐漸被開發者們放棄。如果等到 Pushkarev 18個月後出獄之後再進行更新維護的話,可能沒有多少開發者會重新選擇 Core-js 了,畢竟18個月足夠開發者找到一個更棒的替代品了。

延伸閱讀

https://www.theregister.co.uk/2020/03/26/corejs_maintainer_jailed_code_release/