變調的 Hacktoberfest 與 amazing project


Posted by huli on 2020-10-02

前言

十月除了是中秋節以外,還有另外一個盛大的節慶,那就是由 DigitalOcean 所主辦的 Hacktoberfest,這個活動的立意是希望大家能夠投入 open source 的社群,一起讓它變得更好,所以只要你在十月份送了 4 個 PR,就可以得到一件免費的 t-shirt。

這活動其實已經有一陣子了,至少我在四年前就已經參加過,也寫了篇文章稍微介紹一下這個活動:Hacktoberfest:一起踏入 open source 的世界吧!

當時覺得這活動還滿不錯的,鼓勵新手加入 open source 的領域,讓大家知道其實要貢獻不是一件難事,修一點小 bug 或者是幫忙寫文件都是一種貢獻,不一定要寫 code 其實也可以,都是對 project 的一種幫助。

可是今年卻變了調。

怎麼個變法?我們看下去就知道。

Amazing project!

這是 PyCon TW 官網的 repo,然後底下這是 PR 的截圖:

一大堆被標註 invalid 的 PR,我們隨便找一個點進去看:

wow,真的 amazing!

今年的 Hacktoberfest,從 10/1 一開始就出現了一堆這種 spam 的 PR,到底有多少呢?多到你可以在 GitHub 上面搜尋 amazing project,然後就會被結果嚇到:

20000 多筆!接著我們一樣隨便點一個進去看,看看 PR 的內容是什麼:

有許多 GitHub 上面的開源專案都受到了祝福,被稱讚為是 amazing project,而那些貢獻者自己覺得 amazing 還不夠,一定要發一個 PR 幫你改 README,在文件上面加上 amazing project,讓全世界都知道才行。

除了這種 amazing project 式的 PR spam 攻擊之外,還有一些比較有創意的,例如說幫你加上跑馬燈

或是幫你在 requirements.txt 裡面加空格

又或者是貼心地幫你改 margin,好達到 pixel perfect:

各個開源專案的 maintainer 都被這一大堆的 spam PR 給惹火了,在 twitter 上面頻頻抱怨。還有人開了一個推特帳號叫做 shitoberfest,專門搜集這些低品質的 PR。

這個活動的立意良好,但是在今年卻變了調,有一些人因為想要拿免費的衣服不擇手段,以為發發幾個毫無意義的 PR 就可以收到獎品,而累的卻是 maintainer 們,要去 close 這些 PR 並且標註為 invalid 或是 spam。

可是這活動也不是第一次辦了,為什麼今年突然變這樣呢?

有些人把矛頭指向了這個影片:How to Earn Free T-Shirt, Swag & Goodies Online!

說他在影片裡面教大家怎麼樣發 PR 來賺取免費 t-shirt,而我去找了影片中示範的 repo,確實有很多人在練習怎麼樣發 PR:https://github.com/xraymemory/micromtn/pulls

不過本人在影片的底下有出來做澄清,因為影片中講的是 hindi 所以可能很多人聽不懂,但他在影片中有強調你應該要送一個合格的 PR,做出合理的貢獻,他影片的目的只是教大家怎麼發 PR 然後示範給大家看整個流程,沒有要鼓勵大家 spam。

後續發展

活動的主辦方在台灣時間 10/1 晚上九點馬上發布了公告:Shared commitment to reducing spam with Hacktoberfest,文中有提到規則上面會做一些改動,例如說不想參與的專案可以寫信給他們,在那些專案發的 PR 就不會被列入計算。

對於那些濫竽充數的 PR,第一點是審核期會變長,第二點是如果你都發這種 PR,那可能會被 Hacktoberfest 永 ban,永遠不得參與這個活動。活動的 onboarding flow 也會強制參與者看完發 PR 的規則,確保大家知道只有真的有貢獻的 PR 才算數。

而 GitHub 也發了一則推特,告訴大家在 repo 的設定裡面有個選項可以設置,能夠針對不同的帳號做出限制,例如說最近才創的帳號沒辦法發 PR,或者是只有以前有貢獻過的帳號可以發 PR 之類的:

有了這些措施之後,希望這些 spam 的 PR 可以有效地減少。

結語

要拿 t-shirt 可以,但是請憑本事,那些獎品是給真的對開源社群有貢獻的人拿的,要修改文件可以,但是要修改的有意義,像是上面截圖那些,一看就知道只是為了發 PR 而發 PR。

我也有幫一些專案送過 PR,其實每次送的時候都戰戰兢兢的,深怕造成 maintainer 們的困擾。首先看 CONTRIBUTING.md 是一定要的,裡面有寫清楚想貢獻專案的步驟或是注意事項,接著就在 issue 裡面找到自己能力可以解掉的問題,然後在 local 把專案建起來,開始修 bug 或是加新功能,確認 ok 沒問題,測試也跑過之後才送 PR,然後在 PR 裡面詳細描述解法。

像是底下這兩個就是我前陣子幫 Insomnia 送的 PR:

  1. Consistent export dropdown verbiage
  2. Replace textarea with code editor for response raw viewer

第一個只是簡單修 UI 上的文字而已,第二個比較複雜一點,是把其中一個 UI 的顯示方式換掉。而且送 PR 的時候要有一個心理準備,就是你的 PR 可能不會即時被 review,這很正常。我上面送的那兩個是因為有公司在維護,所以 review 的速度出乎意料的快(覺得感人),但並不是每個專案都這樣。

像是我之前寫 styled components 那篇送的 PR,就等了兩個月才被 merge。

這是正常的,畢竟 maintainer 們也有自己的事情要忙。

總之呢,還是鼓勵大家去參與 Hacktoberfest 的活動,但請記住必須要真的有貢獻才算數,請確保自己送出的是有品質的 PR,而不是濫竽充數,只為了發 PR 而發 PR。


#hacktoberfest









Related Posts

Day01 : 關於這系列的 React 七天寫作松

Day01 : 關於這系列的 React 七天寫作松

菜比八寫後端(4) - JSON column 挖坑給自己跳

菜比八寫後端(4) - JSON column 挖坑給自己跳

Secure Apache Using Certbot with Let's Encrypt on Ubuntu 20.04

Secure Apache Using Certbot with Let's Encrypt on Ubuntu 20.04




Newsletter




Comments