W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
你已經(jīng)找到了你喜愛的項目,也已準備好貢獻了,迫不及待、躍躍欲試了。好吧!以下就是帶領(lǐng)你如何以正確的姿勢作貢獻。
無論你處于什么樣的目的:僅僅是一次性的貢獻,亦或是永久性的加入社區(qū),都得和他人進行溝通和交往,這是你要在開源圈發(fā)展必須修煉的技能。
[作為一名新手,] 我很快的就意識到,我若是要關(guān)閉一條 issue 時,我不得不問更多的問題。我瀏覽了代碼庫,一旦我覺得有什么問題的時候,我就得需要更多的指點,瞧! 在我得到所有的所需要的信息后,我就可以解決這個問題!
— @shubheksha , 一名菜鳥進入開源世界的坎坷之旅
在你開啟一個 issue 或 PR 之前,或者是在聊天室問問題之前,請牢記下面所列出的幾點建議,會讓你的工作更加的高效。
給出上下文 以便于讓其他人能夠快速的理解。比方說你運行程序時遇到一個錯誤,要解釋你是如何做的,并描述如何才能再現(xiàn)錯誤現(xiàn)象。又比方說你是提交一個新的想法,要解釋你為什么這么想,對于項目有用處嗎(不僅僅是只有你!)
???? “當我做 Y 的時候 X 不能工作”
???? “X 出問題! 請修復(fù)它?!?/em>
在進一步行動前,做好準備工作。 不知道沒關(guān)系,但是要展現(xiàn)你嘗試過、努力過。在尋求幫助之前,請確認閱讀了項目的 README、文檔、問題(開放的和關(guān)閉的)、郵件列表,并搜索了網(wǎng)絡(luò)。當你表現(xiàn)出很強烈的求知欲的時候,人們是非常欣賞這點的,會很樂意地幫助你。
???? “我不確定 X 是如何實現(xiàn)的,我查閱了相關(guān)的幫助文檔,然而毫無所獲?!?/em>
???? “我該怎么做 X ?”
保持請求內(nèi)容短小而直接。 正如發(fā)送一份郵件,每一次的貢獻,無論是多么的簡單,都是需要他人去查閱的。很多項目都是請求的人多,提供幫助的人少。相信我,保持簡潔,你能得到他人幫助的機會會大大的增加。
???? “我很樂意寫 API 的教程。”
???? ” 有一天我駕駛汽車行駛在高速公路上,在某個加油站加油的時候,突發(fā)奇想,我們應(yīng)該這么做,不過在我進一步解釋之前,我先和大家展示一下。。?!?/em>
讓所有的溝通都是在公開場合下進行。 哪怕是很不起眼的小事,也不要去給維護者發(fā)私信,除非是你要分享一些敏感信息(諸如安全問題或嚴重的過失)。你若能夠保持談話是公開的,很多人可以在你們交換的意見中學(xué)習和受益。
???? (評論) “@維護者 你好!我們該如何處理這個 PR?”
???? (郵件) “你好,非常抱歉給發(fā)信,但是我實在很希望你能看一下我提交的 PR?!?/em>
大膽的提問(但是要謹慎?。?。 每個人參與社區(qū),開始的時候都是新手,哪怕是非常有經(jīng)驗的貢獻者也一樣,在剛進入一個新的項目的時候,也是新手。出于同樣的原因,甚至長期維護人員并不總是熟悉一個項目的每一部分。給他們同樣的耐心,你也會得到同樣的回報。
???? “感謝查看了這個錯誤,我按照您的建議做了,這是輸出結(jié)果?!?/em>
???? “你為什么不修復(fù)我的問題?這難道不是你的項目嗎?”
尊重社區(qū)的決定。 你的想法可能會和社區(qū)的優(yōu)先級、愿景等有差異,他們可能對于你的想法提供了反饋和最后決定的理由,這時你應(yīng)該去積極的討論,并尋求妥協(xié)的辦法,維護者必須慎重的考慮你的想法。但是如果你實在是不能同意社區(qū)的做法,你可以堅持下去!繼續(xù)維護自己的分支,或者另起爐灶。
???? “你不能支持我的用例,我很失望,但是你的解釋僅僅是對一小部分用戶起作用,我理解為什么。感謝你的耐心傾聽。”
???? “你為什么不支持我的用例?這是不可接受的!”
最重要的是,保持優(yōu)雅 開源社區(qū)有來自世界各地的協(xié)作者,所以跨語言、文化、地理位置和時區(qū)的情況下會丟失上下文語境。另外,書面交流使得傳達語氣或情緒變得更加困難。對話過程中善意地理解對方的意圖、禮貌地反駁他人的想法,詢問更多的上下文語境,或進一步澄清你的立場都是好事。我們要讓互聯(lián)網(wǎng)變得更加美好。
在正式開始之前,做一些快速的檢查項,以確保沒有人討論過你的想法??匆槐轫椖康?README、問題(開放的和關(guān)閉的都算)、郵件列表、Stack Overflow。不需去花好幾個小時去全部折騰一遍,但是使用幾個關(guān)鍵的詞匯來搜索一下是必要的。
如果你沒有找到和你想法一樣的內(nèi)容,你就可以繼續(xù)了。如果項目是在 GitHub 上的話,你可以通過開啟一個 issue 或 PR:
在你創(chuàng)建 issue 和 PR 之前,請檢查項目的貢獻者文檔(文件名通常叫做 CONTRIBUTING,或者就直接包含在README中),找一些你需要的較具體的東西,例如,他們會要求你遵循某個模版,或者是要求你使用某個測試。
如果你做的是一個非常實際的貢獻,在正式開啟之前,先創(chuàng)建一個 issue。Watch 這個項目是很有幫助的(在 GitHub,點擊 “Watch” ,所有的對話都會通知你),要讓社區(qū)的成員們知道你要做的工作,免得你做了之后,再讓他們知道,他們不同意,就浪費了。
你能夠從單個的項目學(xué)習到 很多 ,只要你踴躍的去使用,在GitHub上密切觀察項目,并閱讀每一個 issue 和 PR。
— @gaearon 參與項目
你應(yīng)該在遇到下列情況下,去創(chuàng)建一個 issue:
在 issue 的溝通中幾點實用的技巧:
在下面的情形時,請你務(wù)必使用PR:
一個 PR 并不代表著工作已經(jīng)完成。它通常是盡早的開啟一個 PR,是為了其他人可以觀看或者給作者反饋意見。只需要在子標題標記為”WIP”(正在進行中)。作者可以在后面添加很多評論。
如果說項目是托管在 GitHub 上的,以下是我們總結(jié)出的提交 PR 的建議:
如果這是你第一次提交 PR??梢詾g覽 提交 PR 的文檔,這是 @kentcdodds 專門為初次創(chuàng)建 PR 的人寫的公開的資料。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: