Ding!您有一份 ChunJun 實用指南,請查收
ChunJun 是易用、穩(wěn)定、高效的批流一體的數(shù)據(jù)集成框架,主要應用于大數(shù)據(jù)開發(fā)平臺的數(shù)據(jù)同步 / 數(shù)據(jù)集成模塊,使大數(shù)據(jù)開發(fā)人員可簡潔、快速的完成數(shù)據(jù)同步任務開發(fā),供企業(yè)數(shù)據(jù)業(yè)務使用。
本文主要整理 ChunJun 的各類鏈接以及如何提交 pr、Issue 的方法,希望大家更好地參與開源,參與社區(qū)。
ChunJun 百科
● 開源地址
GitHub:https://github.com/DTStack/chunjun
Gitee:https://gitee.com/dtstack_dev_0/chunjun
● 官方網(wǎng)站
https://dtstack.github.io/chunjun/
● 快速入門文檔
https://dtstack.github.io/chunjun-web/docs/chunjunDocs/quickstart/
● 視頻課程
Flink StreamSQL 基礎課程:
https://space.bilibili.com/677474984/channel/seriesdetail?sid=738125
2021 年 ChunJun 課程:
https://space.bilibili.com/677474984/channel/seriesdetail?sid=738126
2022 年 ChunJun 課程:
https://space.bilibili.com/677474984/channel/seriesdetail?sid=2240634
● 課件獲取
關注公眾號 “ChunJun”,回復 “課件”,即可獲得您需要的對應課程的課件。
提交 pr&Issue 指南
如何提交一個優(yōu)秀的 pr
在 GitHub 上提交 pr 是參與 ChunJun 項目開源的一個重要途徑,小伙伴們在使用中的一些功能上 feature 或者 bugfix 都可以向社區(qū)提交 pr 貢獻代碼,也可以根據(jù)已有的 Issue 提供自己的解決方案。
● 第一步:fork ChunJun 到自己的 GitHub 倉庫
?點擊 fork 后就可以在自己倉庫中看到以你名字命名的 ChunJun 項目了:
● 第二步:clone ChunJun 到本地 IDE
● 第三步:將 DTStack/ChunJun 設置為本地倉庫的遠程分支 upstream
● 第四步:提交代碼
任何一個提交都要基于最新的分支 切換分支
?本地修改代碼后,提交 commit
commit_message 格式: [commit_type][module] message
commit_type:
feat:表示是一個新功能(feature)
hotfix:hotfix,修補 bug
docs:改動、增加文檔
opt:修改代碼風格及 opt imports 這些,不改動原有執(zhí)行的代碼
test:增加測試
eg:[hotfix-12345][mysql] Fix mysql time type loses precision.
?rebase 遠程分支
這一步很重要,因為我們倉庫中的 chunjun 代碼很有可能已經(jīng)落后于社區(qū),所以我們 push commit 前需要 rebase,保證我們的 commit 是基于社區(qū)最新的代碼,很多小伙伴沒有這一步導致提交的 pr 當中包含了其他人的 commit
?rebase 后有可能出現(xiàn)代碼沖突,一般是由于多人編輯同一個文件引起的,只需要根據(jù)提示打開沖突文件對沖突部分進行修改,將提示的沖突文件的沖突都解決后,執(zhí)行
?依此往復,直至屏幕出現(xiàn)類似 rebase successful 字樣即可
rebase 之后代碼可能無法正常推送,需要 git push -f 強制推送,強制推送是一個有風險的操作,操作前請仔細檢查以避免出現(xiàn)無關代碼被強制覆蓋的問題
push 到 github 倉庫
● 第五步:提交 pr
以我修復 kafka 寫入過程中出現(xiàn)空指針問題為例,經(jīng)過步驟四我已經(jīng)把代碼提交至我的倉庫 master 分支
?進入 ChunJun 倉庫頁面,點擊 Pull Request
?
?選擇 head 倉庫和 base 倉庫以及相應的分支
?填寫 pr 信息,pr 信息應該盡量概括清楚問題的前因后果,如果存在對應 Issue 要附加 Issue 地址,保證問題是可追溯的
?
?pr 提交成功后需要一段時間代碼 review,您可以耐心等待一下我們 review 后合入,或者直接聯(lián)系我們,提交 pr 的同學更有機會加入我們共創(chuàng)小組。
如何正確進行 pr review
● pr review
?如果是簡單的代碼或者文檔改動,review 結(jié)束可以直接合并
?如果是較大的內(nèi)容改動,需要對應模塊 owner review
?如果是功能分支,需要 pr 中提供設計思路,有必要的情況下,提供設計文檔
?pr 回復時間不能超過一周
?不符合規(guī)范的 pr 在回復提示過后仍未改動,不予合并,一周之后關閉
● review pr 的要求
?在 pr 里備注修復的 issue
?pr commit 模版 [hotfix-#issueID][#fix-module] #fix-commit.
?修改內(nèi)容盡量保持與 issue 內(nèi)容一致,如果出現(xiàn)無關修改,在 pr 中備注出來
?review 代碼時注意代碼格式化
如何正確提出一個 Issue
issue 是一種非常好的可沉淀、可復現(xiàn)、可跟蹤的交流方式,如果您發(fā)現(xiàn)了 ChunJun 有任何 bug 或奇怪的性能特征,請在 GitHub 或 Gitee 中提交新的 Issue。
目前我們團隊主要在 GitHub 上解決 Issue 和 pr 相關內(nèi)容,Gitee 上會相對慢一些,大家如果有 Issue 或者 pr 盡量在 GitHub 上提出,我們會及時處理。
● 在 GitHub 上提交的新 Issue 分為以下幾種:
?反饋錯誤 (Bug Reports)
?提交新需求 (Feature Requests)
?常規(guī)問題 (General Questions)
?性能問題 (Performance Questions)
● 進行高效提問的方法
請您詳細描述存在問題 + 問題截圖,提交到 ChunJun 的 Issue,以便我們迅速定位問題并作出回應。
Issue 地址:
https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FDTStack%2Fchunjun%2Fissues%2Fnew%2Fchoose
不了解如何高效進行提問的同學,請閱讀下面兩篇文章:
《提問的智慧》:
https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md
《社區(qū)提問指南》:
https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md
● 提交 Issue 需要注意的地方
提交的 Issue 最好帶上詳細的復現(xiàn)問題的步驟,這樣可以減少其他同步復現(xiàn)問題的時間,更快更有效地解決問題。
如果能定位到源碼的問題,建議提交一個 pr 來修復它,而不是等待其他同學。
社群交流技巧
除了 GitHub 和 Gitee 之外,我們還有一個擁有 3000 多人的開源框架技術(shù)交流群,在群內(nèi),大家可以盡情交流 ChunJun 相關技術(shù)和資訊,各位開發(fā)者們互幫互助,一串代碼、一個建議,都是對 ChunJun 的莫大幫助。
開源框架交流釘釘群號碼:30537511
對于社群,我們希望它能夠成為一個所有對開源、對 ChunJun 有興趣的朋友的交流場所,而不是一個單純的答疑群。在群里,不論是 ChunJun 團隊成員還是你們,所有人的角色都是 ChunJun 的愛好者和共建者,而不是 “客服”“機器人” 這樣的角色。
當您對于 ChunJun 有疑問時,我們首先推薦您搜索相關文檔,如果不能得到答案,強烈建議您通過提交 Issue 和我們進行溝通,最后才是在社群內(nèi)提問。因為通過提交 Issue 的方式,問題可以得到沉淀,社群內(nèi)消息刷新得很快,一個不小心,您的問題就石沉大海了。
我們團隊成員平時還有自己的工作,沒辦法守在電腦前一個個回復社群中的問題,所以勇敢地提出 Issue 吧,那一刻,你就已經(jīng)變成了開源項目的參與者!
ChunJun 團隊也將根據(jù)大家的反饋,定期更新迭代官方文檔,不斷完善項目質(zhì)量,和你們一起共建 ChunJun。
袋鼠云開源框架釘釘技術(shù)交流群(30537511),歡迎對大數(shù)據(jù)開源項目有興趣的同學加入交流最新技術(shù)信息,開源項目庫地址:https://github.com/DTStack