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

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

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

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

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

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

從作者的博文和推文可以看到,作者在 2014 年離開了 Mozilla。而從作者的 github 動態更可以看出,作者應該是轉入了 golang 陣營。

2014 年 6 月 28 日,作者的一位前同事 deepak1556 fork 了這個庫,增加了對 Node.js 0.11 的支持,並發起了合併請求。但是作者並沒有回復,也沒有合併此次請求。此時距離原作者放棄這個庫也已經過去一年多了。

2015 年 2 月 7 日,marcominetti 又 fork 了 deepak1556 的庫,增加了對 Node.js 0.12 的支持,並向原庫發起了合併請求,同樣沒有得到作者的任何回復。於是 marcominetti 決定自立門戶,於是將 memwatch 改名為 memwatch-next 發布到了 npm。

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

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

2018 年 7 月 17 日,一位開發者 dyatko 又 fork 了 eduardbcom 的庫,增加了對 Node.js 8 的支持,並向原庫發起了合併請求,同樣沒有得到作者的任何回復。

但在此次 pr 的評論中,另一位開發者說,airbnb 也 fork 了 marcominetti 的庫,並改名為 @airbnb/node-memwatch 發布到了 npm。

有了大廠接手,也算是這個庫最終的歸宿吧。


相關閱讀:

  • 我不是很懂 Node.js 社區的 DRY 文化
  • 駁《我不是很懂 Node.js 社區的 DRY 文化》
  • 駁《駁《我不是很懂 Node.js 社區的 DRY 文化》》
  • 駁《駁〈駁《我不是很懂 Node.js 社區的 DRY 文化》〉》
  • 駁《駁《駁《駁《我不是很懂 Node.js 社區的 DRY 文化》》》》
  • ……

推薦閱讀:

相關文章