成為Debian社區(qū)維護(hù)人需要做好的準(zhǔn)備
今天我收到了一封郵件,詢問關(guān)于做 Debian Maintainer 的事情讓我給他寫幾條建議。非常高興看到越來越多的人參與到 Debian 社區(qū)之中,以下是我所寫的一點(diǎn)東西,希望有用。
Debian Maintainer (DM)是有個(gè)別軟件包上傳權(quán)限的 Debian 開發(fā)人員,是成為正式 Debian Developer (DD)前的一個(gè)步驟。在開始前需要清楚,為 Debian 貢獻(xiàn)點(diǎn)力量是很容易的事情,但要成為“官方”的人員則需要付出很多時(shí)間和努力。
1. 盡可能多地使用 Debian 完成日常工作。也就是說,成為開發(fā)者前,先做一個(gè)用戶。
2. 閱讀 Debian New Maintainer’s Guide 學(xué)習(xí) Debian 打包的基本知識(shí)(英文版,中文版)。 這些知識(shí)能幫助你讓不太復(fù)雜的軟件包工作起來,但是與滿足 Debian 標(biāo)準(zhǔn)之間還有相當(dāng)大的距離。這個(gè)過程中可以獨(dú)立地重新打包一個(gè)已經(jīng)在倉庫中的包,完成后和別人現(xiàn)有的工作進(jìn)行對(duì)比,找出自己的不足。這個(gè)包一般不需要很復(fù) 雜,初學(xué)時(shí)直接弄復(fù)雜的包很可能只會(huì)浪費(fèi)很多精力。做包的過程中遇到任何問題都可以找有經(jīng)驗(yàn)的人詢問清楚,這對(duì)提高水平非常有益。
3. 尋找一個(gè)感興趣的軟件進(jìn)行打包,WNPP (Work-needing and Prospective Packages)列表是一個(gè)不錯(cuò)的開始。打包前需要考慮:自己是否有足夠的知識(shí)和能力來維護(hù)這個(gè)包?在可預(yù)見的一段日子里是否有充足的時(shí)間和精力來進(jìn)行 更新和修復(fù) Bug?如果答案都是肯定的,那么就動(dòng)手把它打包好,期間遇到問題則找人咨詢指導(dǎo)。
4. 當(dāng)經(jīng)過反復(fù)檢查和測(cè)試,覺得軟件包已經(jīng)比較完善時(shí),尋找一位 Debian Developer 幫你檢查和上傳軟件包,這位 DD 此時(shí)便是你的 sponsor。
當(dāng)找到一位愿意幫忙的 DD 后,他會(huì)對(duì)你的軟件包進(jìn)行徹底的檢查,指出(可能)存在的問題并請(qǐng)你修改。這時(shí)要做的就是參考他的意見修改軟件包,并把結(jié)果再發(fā)給他,這是一個(gè)極好的學(xué)習(xí) 機(jī)會(huì)。如此反復(fù)若干次后軟件包最終會(huì)符合 Debian 的標(biāo)準(zhǔn),之后 sponsor 便會(huì)將其上傳到 Debian 倉庫。需要說明的是,經(jīng)由 sponsor 上傳的軟件包的維護(hù)者是打包人而非 sponsor,所以它的各種更新、任何 Bug 報(bào)告都是打包人的責(zé)任。在維護(hù)軟件包上,普通維護(hù)人員與正式的 DD 間的差別僅在于能否直接上傳,其他的完全相同。
這個(gè)步驟進(jìn)行期間,需要多次閱讀 Debian Policy Manual 并確保自己的軟件包符合里面的全部要求。最好再讀一下 Debian Developers Reference,里面介紹了很多 Policy Manual 中沒有提到的細(xì)節(jié)和最佳經(jīng)驗(yàn)。
如果打算申請(qǐng) DM/DD,則應(yīng)盡早開始維護(hù)軟件包,因?yàn)樯暾?qǐng) DM 需要經(jīng)過一段時(shí)間的軟件包維護(hù)作為評(píng)價(jià)的材料,以此證明你能夠勝任。
5. 不是有軟件包被上傳到倉庫就說明你已經(jīng)符合了成為 DM 的要求。你必須通過一段時(shí)間的努力(更新軟件、修復(fù) Bug、回應(yīng)用戶請(qǐng)求),來使你的 sponsor 相信你已經(jīng)有能力來處理好某個(gè)特定軟件包,這樣他們才會(huì)在接下來的申請(qǐng)流程中推薦你。
一些 sponsor 會(huì)在他們覺得合適時(shí)向你提議申請(qǐng) DM,另外一些不會(huì),作為新維護(hù)人員要在自己覺得差不多合適的情況下和 sponsor 進(jìn)行溝通,聽取他的意見看是否可以申請(qǐng)。
6. 申請(qǐng) DM 前要讓至少一位你 sponsor 之外的 DD 對(duì)你的 GPG 密鑰進(jìn)行數(shù)字簽名,且密鑰本身至少要 2048 RSA 或更強(qiáng)。簽署密鑰不需要對(duì)技能的考察,其目的是確認(rèn)每個(gè)密鑰的控制者確實(shí)是他本人,從而構(gòu)建 Web of Trust,因而任何人都可以參與到密鑰簽名活動(dòng)當(dāng)中。簽名時(shí)一般需要雙方在現(xiàn)實(shí)生活中見面,互相檢查身份證或護(hù)照確認(rèn)無誤后,交換事先打印好的 GPG key fingerprints 并在稍后進(jìn)行簽署、上傳到公共密鑰服務(wù)器。通??梢栽谝恍┹^大型的開源軟件活動(dòng)前和時(shí)間/地點(diǎn)都方便的 DD 聯(lián)系好,在聚會(huì)時(shí)舉辦一個(gè)密鑰簽名活動(dòng)。另外,如果給你簽名的只有你的 sponsor,則你的密鑰仍不符合要求,因?yàn)?Debian 無法確信這份申請(qǐng)是否是你的 sponsor 偽造的。
接下來就是按照 Debian 的官方流程來進(jìn)行申請(qǐng)。
經(jīng)過一番辛苦成為 DM 之后,便可以考慮是否要申請(qǐng) DD 以及可能的申請(qǐng)計(jì)劃。申請(qǐng) DD 的要求比 DM 更細(xì)致,涉及的方面也更多。DM 和 DD 都擁有或多或少的特權(quán),如此多的要求是為了確保申請(qǐng)者能夠正確把握手中的特權(quán),為社區(qū)做積極的貢獻(xiàn)。如果覺得這個(gè)過程好繁瑣,那么就不要申請(qǐng) DM,直接參與到維護(hù)過程中,其區(qū)別如前所述僅僅是能否直接上傳而已。
附:Debian 項(xiàng)目里一些名詞的含義
1. Maintainer: 泛指軟件包維護(hù)人員,包括 Debian Developer (DD)、Debian Maintainers (DM) 和 Sponsored maintainers。
2. Debian Developer (DD): 又稱 Debian Member,官方 Debian 開發(fā)人員,是 Debian 項(xiàng)目的正式成員。能直接上傳到 Debian 的任意倉庫,有大部分服務(wù)器的登陸帳號(hào),有在全項(xiàng)目?jī)?nèi)選舉、投票和提出議案的權(quán)利。
3. Debian Maintainer (DM): DM 是一部分能夠直接上傳某些特定軟件包的開發(fā)人員,是打包人員通向正式 Debian Developer 的必經(jīng)之路。
3. Sponsored maintainers: 很多開發(fā)人員沒有申請(qǐng) DM/DD,而是選擇通過一位 DD 來協(xié)助上傳軟件包。他們對(duì)于自己的軟件包和其他開發(fā)人員沒有任何更多的區(qū)別,同時(shí)又不必去經(jīng)歷相對(duì)繁瑣的申請(qǐng)流程。
4. Non-uploading DD: Debian 為迎接那些不參與打包,但是參與文檔、翻譯、網(wǎng)站和設(shè)施維護(hù)等工作的人進(jìn)入 Debian 社區(qū)所設(shè)立的 DD 類型,與其他 DD 的區(qū)別是沒有上傳軟件包的權(quán)限。(參考文檔)
5. Sponsor: 協(xié)助其他沒有上傳權(quán)限的開發(fā)人員,檢查軟件包并將符合要求的上傳到官方倉庫的 Debian Developer。
6. NM Process: New Maintainer Process,一位 Sponsored Maintainer 或 DM 申請(qǐng)成為正式的 DD 的過程,需要經(jīng)過 ID Check, Process & Procedure 和 Task & Skills 等多項(xiàng)測(cè)試。不要將 NM Process 誤認(rèn)為是申請(qǐng) DM 的流程,它是申請(qǐng) DD 的。
7. Advocate: 一位現(xiàn)任的 Debian Developer 以個(gè)人名義向 Debian 項(xiàng)目正式推薦某人成為 Debian Maintainer 或 Debian Developer。
8. Debian New Maintainer: 又稱 Applicant、Perspective Maintainer 等,是正在申請(qǐng)成為 DD 的人。不要與 DM 混淆,這是申請(qǐng) DD 的人。
9. Application Manager (AM): NM Process 中申請(qǐng)人被確認(rèn)有現(xiàn)任 DD 推薦后,會(huì)有一位專門的負(fù)責(zé)人來對(duì)他進(jìn)行考核,這個(gè)人就是他的 AM。
10. WNPP: Work-Needing and Prospective Packages 的縮寫,指需要有人接手或幫助的軟件包。這個(gè)概念不是模糊的,而是有明確的定義的。
11. MIA: Missing In Action 的縮寫,指某位 Maintainer 長時(shí)間不參與維護(hù)自己的軟件包,同時(shí)別人也沒能成功地與之取得聯(lián)系。這樣的 Maintainer 被稱為 Zombie Maintainer 。如果他是 DD,那么他的 Debian 項(xiàng)目帳號(hào)會(huì)被鎖定,一年內(nèi)無回應(yīng)則會(huì)刪除。
12. Debian Project: Debian 項(xiàng)目是構(gòu)建自由的通用操作系統(tǒng)(The Universal Operating System)而自發(fā)組織的,致力于滿足各種各樣的用戶需求,并執(zhí)著于追求其自身所信仰的“軟件自由”。參閱 Debian Social Contract(Debian 社會(huì)契約),DFSG(Debian 自由軟件指導(dǎo)方針) 和 Debian Constitution (Debian 憲章)。
申請(qǐng)成為 Debian 開發(fā)人員需要經(jīng)歷一些看似繁瑣的過程,尤其是申請(qǐng) Debian Developer 所需要經(jīng)歷的 NM Process,筆者認(rèn)為來者難免會(huì)望而生畏,不勝其煩。如果你有這樣的感覺,不妨看看這個(gè)幻燈片:Debian New Maintainer Process: History and Aims by bubbles, moray and daf.
原文地址:http://blogs.gnome.org/happyaron/2011/03/08/things-to-do-before-becoming-a-debian-maintainer-zh/
【編輯推薦】