知名Python 庫Requests 作者Kenneth Reitz 被指濫用捐款
最近德云社演員“有房有車還募捐”的事情正在發酵,開源圈里關於技術募捐也曝出了醜聞,主角是知名Python 庫Requests 作者 Kenneth Reitz。Python async/await-native I/O 庫Trio 作者Nathaniel J. Smith 發文詳細說明了Kenneth Reitz 在Requests 3 的開發過程中如何濫用社區用戶的捐款的。
2017 年8 月,Nathaniel 開始為urllib3 添加異步支持,urllib3 是Requests 使用的底層HTTP 庫,該支持是是高度實驗性的。Kenneth 對這項工作非常感興趣,他非常希望在Requests 中提供異步支持,但是自己又不知道怎麼做。於是他開始招募志願者以Nathaniel 的方式去開發。
幾個月之後,Kenneth 宣布Requests 3 的工作開始,並且首要新特性就是Nathaniel 正在進行的原生 async/await 支持:
同時,Requests 3項目發起募捐,以實現這一目標。很快許多個人與微軟、谷歌與Slack等大公司都進行了捐款,籌款達到了3萬美元左右。
隨後Kenneth 聯繫Nathaniel 討論籌款活動,Kenneth 表示不知道如何處理這筆錢,他說最初的目標只是籌集5 千美元來買一台電腦。
Nathaniel心裡覺得5千美元都可以買一台強大的服務器或者高端遊戲設備了,跟開發Requests沒有什麼關係,Requests是一個小的純Python庫,使用任何便宜的筆記本開發都完全沒問題。但他同時也理解,即使花了5千美元購買一些不相關的電腦,也可以將這筆費用認為是對過去的工作進行的一種補償,而且還會留下25 000美元來履行他在籌款活動中所作出的承諾,不管怎麼說這對於開發出一些令人驚嘆的新功能其實是有幫助的。
於是Nathaniel 提供了一些籌款和撥款的經驗,強調了保持信任的透明度的重要性,並建議Kenneth 與Python 軟件基金會(PSF)或類似的非盈利組織建立財政贊助關係。
同時Nathaniel 試圖幫助找到有效利用這筆捐款的方法,例如聯繫志願者,邀請其他人參與有償開發Requests 3;並且在後來他離開UC 伯克利時,還希望能夠全職去參與到Requests 的開發中。
然而在這個過程中,雖然Kenneth 也有對Nathaniel 在urllib3 上的工作進行一些實驗,添加了一些基本的HTTP/2 支持,但是Nathaniel 早就提示過這種方法不可行,最後Kenneth 的這些代碼實際上也沒法用。
同時其他社區成員也聽到了關於募集到的這筆資金去向的不同版本。
幾個月後,Kenneth 在回复 Nathaniel 的郵件中提出了以下幾點內容:
- 他實際上只籌集到了2 萬8 千美元
- “大部分”都是稅
- 他希望Nathaniel 完成(Kenneth)在 Requests 3 中為新功能所做的承諾
- 但是完成功能並不會支付他資金,相反,需要等功能實現後,把這2 萬8 千美元用於編寫文檔
- 如果Nathaniel 不能在志願地去實現功能,Kenneth 鼓勵其發起自己的籌款活動
也就是說Kenneth 想讓Nathaniel 無償地去開發Requests 3 那些承諾好的異步功能,而且這筆籌集到的捐款去向也不明不白,甚至最開始募捐也是沒有在Nathaniel 本人承諾會完成異步功能的情況下發起的。Nathaniel 明確指出:“實際上,他公開承諾如何使用Requests 3 資金是徹頭徹尾的謊言,他沒有表現出任何悔恨,甚至不明白這是一個問題。”
Effectively, his public promises about how he would use the Requests 3 money were lies from start to finish, and he hasn’t shown any remorse or even understanding that this is a problem.
Requests 一直以來享有“以人為本”的美譽,然而發生在作者身上的這件事情,同時也讓Nathaniel 覺得“在互動中非常容易被操縱”,“我覺得他試圖利用我,並試圖讓我同謀掩飾他的謊言以保護他的聲譽。我對與此相關的想法感到非常不安,在他造成的這種情況下,我唯一的其它選擇就是要么完全放棄異步工作,要么全身心地公開,這對我自己造成潛在的嚴重損失。”
最終,為了自己與Python 社區,Nathaniel 決定把事情公開。他呼籲 Kenneth 對他籌集的資金以及如何使用進行公示,敦促Requests 項目維護者將他們的項目轉換為更正常、功能更少的管理模型。