如何維護關鍵的 Python 項目
Jannis Leidel 是 Jazzband 社區的一部分。Jazzband 是一個協作社區,共同承擔維護基於 Python 的項目。
Jazzband 的誕生源於長期獨自維護一個開源項目的壓力。Jannis 是「roadie」,這意味著他負責管理任務並確保團隊中的人可以在他們想要的時候參與。
Jazzband 並不是他的第一個開源志願者工作——他是前 Django 核心開發人員,Django 軟體基金會 董事會成員,編寫了許多 Django 應用程序和 Python 項目,曾是 pip 和 virtualenv 核心開發人員和發布經理,共同創立了 Python 打包機構 ,還擔任過 PyPI 管理員。在社區方面,他共同創立了德國 Django 協會,擔任 DjangoCon Europe 2010 聯合主席,在多個會議上發言,並在去年擔任了 Python 軟體基金會 董事和聯席主席。
Moshe Zadka: 你是如何開始編程的?
Jannis Leidel:我開始接觸編程是在高中的常規德國計算機科學課程中,在那裡我涉獵了 Turbo Pascal 和 Prolog。我很快就進入了 Web 開發的世界,並使用 PHP3、Perl5 和 MySQL 編寫了一些小型網站。後來在大學裡,我在從事媒體藝術項目時再次學習了編程,發現 Ruby、Perl 和 Python 特別有用。我最終堅持使用 Python,因為它的多功能性和易用性。從那時起,我很高興能夠在我的職業生涯中使用 Python 和開放 Web 技術(HTML/JS/CSS)。
Zadka: 你是如何開始接觸開源的?
Leidel:作為大學藝術項目的一部分,我需要一種與各種 Web 服務對話並與一些電子設備交互的方法,但發現我之前的 PHP 技能無法勝任這項任務。因此,我參加了有關使用 Python 編程的課程,相比庫,我對學習更多有關框架如何工作更感興趣,因為它們進一步體現了我想了解的最佳實踐。特別是,新生的 Django Web 框架對我很有吸引力,因為它傾向於一種務實的方法,並為如何開發 Web 應用程序提供了大量指導。 2007 年,我作為學生參與了 Google Summer of Code for Django,後來為 Django 及其可重用組件生態系統做出了更多貢獻,不久我也成為了 Django 核心開發人員。在完成學位期間,我能夠利用這些技能成為一名自由職業者,並花時間在 Django 社區的許多不同部分工作。在那時,橫向移動到更廣泛的 Python 社區不過是很自然的。
Zadka: 你的日常工作是什麼?
Leidel:我是 Mozilla 的一名軟體工程師,致力於為 Firefox 數據管道開發數據工具。實際上,這意味著我在更廣泛的 Firefox 工程團隊中工作,從事各種內部和面向公眾的基於 Web 的項目,這些項目幫助 Mozilla 員工和社區成員理解 Firefox Web 瀏覽器發送的遙測數據。我目前的部分重點是維護我們的數據分析和可視化平台,該平台基於開源項目 Redash,並對其做出貢獻。我參與的其他項目是我們的下一代遙測系統 Glean 和一個允許你在瀏覽器(包括 Scientific Python 堆棧)中進行數據科學的工具 Iodide。
Zadka: 你是如何參與 Jazzband 的?
Leidel:早在 2015 年,我就對單獨維護很多人所依賴的項目感到沮喪,並看到我的許多社區同行都在為類似的問題苦苦掙扎。我不知道有什麼好方法可以讓社區中更多的人對長期維護感興趣。在某些情況下,我覺得新的「社會編碼」範式的社會性的不足,而且常常是孤立的,有時甚至對新老貢獻者來說都是創傷。我相信在我們的社區中,我現在覺得無法容忍的不平等現象在當時更加猖獗,這使得為貢獻者提供一個安全的環境變得困難——我們現在知道這對於穩定的項目維護至關重要。我想知道我們是否缺少一種更具協作性和包容性的軟體開發方法。
Jazzband 項目的啟動是為了降低進入維護的門檻,並簡化其中一些較無聊的方面(例如,圍繞 CI 的最佳實踐)。
Zadka: 你最喜歡 Jazzband 的哪一點?
Leidel:我最喜歡 Jazzband 的一點是,我們確保了許多人所依賴的許多項目的維護,同時還確保任何經驗水平的新貢獻者都可以加入。
Zadka: Jazzband 的「roadie」的工作是什麼?
Leidel:「roadie」是指處理 Jazzband 幕後所有事務的人。這意味著,例如,處理新項目的進入、維護 Jazzband 網站以處理用戶管理和項目發布、充當安全或行為準則事件的第一響應者等等。「roadie」這個詞是從音樂和演出行業借來的,指的是支持人員,他們負責在巡迴演出中幾乎所有需要做的事情,除了實際的藝術表演。在 Jazzband,他們的存在是為了確保成員可以在項目中工作。這也意味著,在有意義的情況下,某些任務是部分或完全自動化的,並且最佳實踐被應用於大多數 Jazzband 項目,如打包設置、文檔託管或持續集成。
Zadka: 作為 Jazzband 的「roadie」,你工作中最具挑戰性的方面是什麼?
Leidel:目前,我作為「roadie」的工作中最具挑戰性的方面是實施社區成員提出的 Jazzband 改進,而不影響他們所依賴的工作流程。換句話說,Jazzband 越大,在概念級別上擴展項目變得越困難。具有諷刺意味的是,我是目前唯一的「roadie」,獨自處理一些任務,而 Jazzband 卻試圖阻止其項目發生這種情況。這是 Jazzband 未來的一大擔憂。
Zadka: 對於有興趣想知道能否加入 Jazzband 的人,你有什麼想說的?
Leidel:如果你有興趣加入一群相信協作工作比單獨工作更好的人,或者如果你一直在為自己的維護負擔而苦苦掙扎,並且不知道如何繼續,請考慮加入 Jazzband。它簡化了新貢獻者的進入流程,提供了一個爭議解決框架,並自動發布到 PyPI。有許多最佳實踐可以很好地降低項目無人維護的風險。
Zadka: 你還有什麼想告訴我們的讀者的嗎?
Leidel:我鼓勵每個從事開源項目的人都考慮屏幕另一邊的人。要有同理心,記住你自己的經歷可能不是你同齡人的經歷。要明白你是全球多元化社區的成員,這要求我們始終尊重我們之間的差異。
via: https://opensource.com/article/20/2/python-maintained
作者:Moshe Zadka 選題:lujun9972 譯者:stevenzdg988 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive