一個(gè) npm 包的坎坷“續(xù)命”之生

2019-11-30    seo達(dá)人

如果說 npm 的大新聞,莫過于之前的 left-pad 撤包事件,event-stream 投毒事件,Ant Design 彩蛋事件。使得很多前端開發(fā)者又開始重新思考 npm 生態(tài)時(shí)候真的存在問題?



今天我們文章的主角是 memwatch,一個(gè)用來幫助我們檢查 Node.js 是否存在內(nèi)存泄漏的庫(kù),和這個(gè)庫(kù)傳奇的一生。



2012 年 02 月 06 日,一位 Mozilla 的工程師 lloyd 創(chuàng)建了這個(gè)庫(kù),并寫了一篇博文“Is My NodeJS Program Leaking?”(我的 Node.js 程序是否存在內(nèi)存泄漏?)。這個(gè)包最初被命名為 gcstats,代碼上傳到了 github。



6 月 27 日,npm 包改名為 memwatch,發(fā)布 0.1.1 版。



7 月 4 日,lloyd 為這個(gè)庫(kù)添加了開源許可協(xié)議:WTFPL,發(fā)布 0.1.2 版。很多人對(duì)這個(gè)開源許可協(xié)議可能比較陌生,WTFPL 的全稱是 Do What The Fuck You Want To Public License,中文譯名:你他媽的想干嘛就干嘛公共許可證。也許就是這份協(xié)議開啟了 memwatch 庫(kù)不尋常的一生。



2013 年 3 月 14 日,作者 lloyd 提交了最后一次代碼,發(fā)布了 0.2.2 版本。支持的 Node.js 版本為 0.6.0。隨后這個(gè)庫(kù)再也沒有更新過。



從作者的博文和推文可以看到,作者在 2014 年離開了 Mozilla。而從作者的 github 動(dòng)態(tài)更可以看出,作者應(yīng)該是轉(zhuǎn)入了 golang 陣營(yíng)。



2014 年 6 月 28 日,作者的一位前同事 deepak1556 fork 了這個(gè)庫(kù),增加了對(duì) Node.js 0.11 的支持,并發(fā)起了合并請(qǐng)求。但是作者并沒有回復(fù),也沒有合并此次請(qǐng)求。此時(shí)距離原作者放棄這個(gè)庫(kù)也已經(jīng)過去一年多了。



2015 年 2 月 7 日,marcominetti 又 fork 了 deepak1556 的庫(kù),增加了對(duì) Node.js 0.12 的支持,并向原庫(kù)發(fā)起了合并請(qǐng)求,同樣沒有得到作者的任何回復(fù)。于是 marcominetti 決定自立門戶,于是將 memwatch 改名為 memwatch-next 發(fā)布到了 npm。



2017 年 1 月 27 日,如同前兩位維護(hù)者一樣,marcominetti 也最終放棄了繼續(xù)更新這個(gè)庫(kù)。到此時(shí),此庫(kù)支持的 Node.js 版本為 4、5、6。



2018 年 5 月 6 日,eduardbcom 又 fork 了 marcominetti 的庫(kù),增加了 Node.js 9 的支持,并且放棄了對(duì) Node.js 9 以下所有版本的支持。改名為 node-memwatch 并發(fā)布到了 npm。隨后再也沒有更新過代碼。



2018 年 7 月 17 日,一位開發(fā)者 dyatko 又 fork 了 eduardbcom 的庫(kù),增加了對(duì) Node.js 8 的支持,并向原庫(kù)發(fā)起了合并請(qǐng)求,同樣沒有得到作者的任何回復(fù)。



但在此次 pr 的評(píng)論中,另一位開發(fā)者說,airbnb 也 fork 了 marcominetti 的庫(kù),并改名為 @airbnb/node-memwatch 發(fā)布到了 npm。



有了大廠接手,也算是這個(gè)庫(kù)最終的歸宿吧。







相關(guān)閱讀



開發(fā)者對(duì) npm 公司不滿,unpublish 了自己的所有模塊



月下載量千萬的 npm 包被黑客篡改,Vue 開發(fā)者可能正在遭受攻擊



駁《我不是很懂 Node.js 社區(qū)的 DRY 文化》



機(jī)器人偽裝成人類在 GitHub 上為開源項(xiàng)目修復(fù) bug




分享本文至:

日歷

鏈接

個(gè)人資料

存檔