1、綜合技術分論壇專場Gitee 研發負責人 周凱 Zoker 2021年08月01日Gitee 如何支撐開源項目的發展個人簡介周凱 Zoker2014 年加入開源中國負責 Gitee 產品、研發、運維、架構等工作負責招商證券、比亞迪、招商銀行等客戶售前售后負責 Gitee 公有云架構改進及輕量級產品負責華為相關合作項目鴻蒙、歐拉等為什么做開源?Gitee 的技術支撐開源該怎么做?Gitee 的運營支撐01020304目 錄CONTENTS為什么做開源?大家為什么都在玩開源?1.結識志同道合的開發者和領域專家2.通過參與開源提升個人影響力3.為自己職業經歷增加閃光點4.嘗試通過開源獲利5.沒什么特
2、別的理由,就是玩兒,愛折騰.個人為什么要做開源?為什么做開源?1.得到更多技術和產品上的反饋2.用社會化協作的力量進行同行評審3.提升業界技術影響力4.發現更多的商業機會實現商業價值.企業為什么要做開源?為什么做開源?開源應該怎么做?如何做好一個開源項目?首先,要有一個好的 idea,怎樣才算一個好的 idea?開源應該怎么做?1.同領域還沒有相關的開源產品,并且有一定領域熱度2.在某一領域具體問題的解決上一騎絕塵3.跟其他同類開源產品相比有明顯優勢4.深度洞悉業界發展,敏銳的投資未來.其次,做好項目維護及運營,并持續優化開源應該怎么做?Gitee 如何支撐開源項目的發展?技術支撐:協作工具及
3、流程的支撐Giteehttps:/技術運營運營支撐:運營功能及資源的支撐Gitee 如何支撐開源項目的發展?Gitee 平臺開源協作的技術支撐Step1:建立共識項目的簡歷-README.md1.第一印象很重要,一定要體現閃光點2.為不同的受眾提供快捷入口,一觸即達3.考慮用戶群體并提供多語言版本.Step1:建立共識解決紛爭的利器-LICENSE常見開源協議的介紹:https:/opensource.org/licenses/categoryStep1:建立共識如何選擇合適的 LICENSE他人修改源碼后是否可以閉源?新增代碼是否采用同樣的許可證?每一個修改過的文件,是否都必須放置版權說明?
4、是否需要對源碼的修改之處提供說明文檔?衍生軟件的廣告是否可以使用你的名字促銷?LG PL 許可證M ozi l l a 許可證G PL 許可證BSD 許可證M I T 許可證A pache 許可證N oN oN oN oN oYesYesYesYesYes圖引用改編自阮一峰老師的博客:https:/ Gitee 許可證向導功能建立 LICENSEStep1:建立共識其它同樣需要注意的點1.完善的文檔(產品、技術)2.DCO/CLA 的制定3.CONTRIBUTING.md 貢獻者指南4.CODE_OF_CONCEPT 社區行為準則5.CODEOWNERS6.CHANGELOG7.TODOLIS
5、T.Step2:協作管理反饋管理1.反饋的要及時響應2.通過多樣化的渠道獲取反饋3.集中管理反饋(進展、結論4.培養用戶習慣.G G i i tetee e I I s ss su ue eQ Q Q Q SlSl a ac ck k聚合搜索統一管理知識庫Step2:協作管理缺陷管理Gitee 提供輕量級的任務管理系統:狀態管理、倉庫關聯、指派、搜索等MindSpore 采用 Gitee Issue 進行反饋的統一管理Step2:協作管理缺陷管理Issue 跟 Pull Request 強關聯MindSpore 采用 Gitee Issue 進行反饋的統一管理Step2:協作管理缺陷管理Iss
6、ue 提交模板.gitee/ISSUE_TEMPLATE.zh-CN.md設置充足的預設信息,方便跟進根據不同語言設置不同模板Step2:協作管理成立 PMC 項目管理委員會1.負責社區管理工作,包括開源社區版本規劃、架構看護、特性代碼開發維護、版本及補丁規劃等;2.發布和處理社區需求,為開源社區提供技術架構指導和技術決策;3.組織社區安全工作,及時進行安全漏洞掃描、響應、處理等工作;4.處理社區Bug、issue、郵件列表,閉環周期滿足開源社區的SLA要求;5.負責PMC、Committer成員的選舉和退出,制定PMC、Committer協作機制;參考資料:OpenHarmony PMC:h
7、ttps:/ PMC:https:/apache.org/foundation/governance/pmcs.html統籌管理項目社區的各項事宜,以 OpenHarmony 的 PMC 職責為例:Step3:代碼提交代碼規范建立代碼規范的目的是為了統一共識,為了規范行為和減少溝通成本1.定義統一的規范2.IDE 的智能提示支持3.提交前預檢查4.提供一定的自動修復能力Step3:代碼提交提交規范制定提交的 PR 格式,協助開發者確認根據用戶群體提供多語言版本Pull Request 提交模板.gitee/PULL_REQUEST_TEMPLATE.zh-CN.mdStep3:代碼提交推送自動
8、創建 PR為保護分支設置評審模式,可以自動創建 PR保護分支-評審模式介紹:https:/ Commit Msg 作標題2.根據 Commits 自動填充內容3.自動判定 PR 的更新和新建4.減少開發人員的心智負擔5.結合規范的流程更加方便Step3:代碼提交CLA 的簽署與貢獻者簽署 CLA/DCO 為的是避免出現版權問題DCO:Developer Certificate Of OriginCLA:Contributor License Agreement參考資料:https:/ Gitee 提供的 Sonar 靜態分析工具(Project、Pull Request)Step3:代碼提交自
9、動化質量門禁 Gitee 提供的 Sonar 靜態分析工具(Project、Pull Request)Step3:代碼提交自動化質量門禁 Gitee 提供的缺陷掃描工具 Gitee Scan(Project、Pull Request)1.缺陷掃描2.CVE 漏洞掃描3.依賴項報告Step3:代碼提交自動化質量門禁 Gitee 提供的許可證合規掃描服務 七彩棱鏡Step3:代碼提交自定義質量門禁 Gitee Jenkins Plugins基于 Gitee+Jenkins 的開源項目自動化協作實戰:https:/zoker.io/blog/open-source-project-devops1.支
10、持 Push 觸發2.PR 的新建,合并等事件3.PR 構建結果可回評4.支持正則過濾分支5.支持關鍵字動作6.https:/ 如何支撐開源項目的發展?Gitee 平臺的運營支撐Gitee 平臺對運營的支撐如何知道做的好不好?Gitee 指數Gitee 平臺對運營的支撐Gitee 指數包含的維度1.代碼活躍度:與代碼提交頻次、新版本發布相關2.社區活躍度:與項目的 Issue、PR 互動量相關3.團隊健康:與團隊成員人數和穩定度相關4.流行趨勢:與項目近期受關注度相關5.影響力:與項目的 Star、下載量等社交指標相關Gitee 平臺對運營的支撐Gitee 指數計算方式已經公開影響力,0.3社
11、區反應,開發活躍度,0.15團隊健康度,0.1發展趨勢,0.25Gitee 指數維度影響力社區反應開發活躍度團隊健康度發展趨勢Gitee 平臺對運營的支撐主要是涉及兩個計算公式:維度分數計算公式、歸一化計算公式Gitee 指數計算方式維度分數計算公式歸一化計算公式?為維度下的各個分支特征值?是基于業務場景中的經驗權重 x 為項目及算的某一維度數據 max min 為樣本池中的最大值最小值算法大公開!開源項目的Gitee指數是如何計算的?:https:/ 平臺對運營的支撐訪問統計自定義百度統計如何知道具體訪問量?Gitee 平臺對運營的支撐訪問統計自定義百度統計如何知道具體訪問量?Gitee 平臺對運營的支撐將 Gitee 的倉庫自動鏡像到 Github(Push)將 Github 的倉庫鏡像到 Gitee(Pull)如何兼顧 Gitee&Github?-Gitee 雙向同步此功能目前僅支持申請開通Gitee 平臺對運營的支撐Gitee 推薦項目及分類Gitee 平臺對運營的支撐專屬徽章展示優質展示位每年贈予作者專屬大禮包Gitee GVP 計劃參加 OSCHINA 活動可優惠購買 Gitee 企業版5折優惠GVP 項目附件總容量 20 G歡迎申請加入 GVP:https:/