Ding!您有一份ChunJun实用指南,请查收
ChunJun是易用、稳定、高效的批流一体的数据集成框架,主要应用于大数据开发平台的数据同步/数据集成模块,使大数据开发人员可简洁、快速的完成数据同步任务开发,供企业数据业务使用。
本文主要整理ChunJun的各类链接以及如何提交pr、Issue的方法,希望大家更好地参与开源,参与社区。
ChunJun百科
● 开源地址
GitHub:https://github.com/DTStack/chunjun
Gitee:https://gitee.com/dtstack_dev_0/chunjun
● 官方网站
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指南
如何提交一个优秀的pr
在GitHub上提交pr是参与ChunJun项目开源的一个重要途径,小伙伴们在使用中的一些功能上feature或者bugfix都可以向社区提交pr贡献代码,也可以根据已有的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这些,不改动原有执行的代码
test:增加测试
eg:[hotfix-12345][mysql] Fix mysql time type loses precision.
rebase远程分支
这一步很重要,因为我们仓库中的chunjun代码很有可能已经落后于社区,所以我们 push commit前需要rebase,保证我们的commit是基于社区最新的代码,很多小伙伴没有这一步导致提交的pr当中包含了其他人的commit
rebase后有可能出现代码冲突,一般是由于多人编辑同一个文件引起的,只需要根据提示打开冲突文件对冲突部分进行修改,将提示的冲突文件的冲突都解决后,执行
依此往复,直至屏幕出现类似rebase successful字样即可
rebase之后代码可能无法正常推送,需要git push -f 强制推送,强制推送是一个有风险的操作,操作前请仔细检查以避免出现无关代码被强制覆盖的问题
push到github仓库
● 第五步:提交pr
以我修复kafka写入过程中出现空指针问题为例,经过步骤四我已经把代码提交至我的仓库master分支
进入ChunJun仓库页面,点击Pull Request
选择head仓库和base仓库以及相应的分支
填写pr信息,pr信息应该尽量概括清楚问题的前因后果,如果存在对应Issue要附加Issue地址,保证问题是可追溯的
pr提交成功后需要一段时间代码review,您可以耐心等待一下我们review后合入,或者直接联系我们,提交pr的同学更有机会加入我们共创小组。
如何正确进行pr review
● pr review
• 如果是简单的代码或者文档改动,review 结束可以直接合并
• 如果是较大的内容改动,需要对应模块owner review
• 如果是功能分支,需要pr中提供设计思路,有必要的情况下,提供设计文档
• pr 回复时间不能超过一周
• 不符合规范的pr 在回复提示过后仍未改动,不予合并,一周之后关闭
● review pr 的要求
• 在pr里备注修复的issue
• pr commit 模版[hotfix-#issueID][#fix-module] #fix-commit.
• 修改内容尽量保持与issue内容一致,如果出现无关修改,在pr中备注出来
• review 代码时注意代码格式化
如何正确提出一个Issue
issue是一种非常好的可沉淀、可复现、可跟踪的交流方式,如果您发现了ChunJun有任何bug或奇怪的性能特征,请在GitHub或Gitee中提交新的Issue。
目前我们团队主要在GitHub上解决Issue和pr相关内容,Gitee上会相对慢一些,大家如果有Issue或者pr尽量在GitHub上提出,我们会及时处理。
● 在 GitHub 上提交的新 Issue 分为以下几种:
• 反馈错误 (Bug Reports)
• 提交新需求 (Feature Requests)
• 常规问题 (General Questions)
• 性能问题 (Performance Questions)
● 进行高效提问的方法
请您详细描述存在问题+问题截图,提交到ChunJun的Issue,以便我们迅速定位问题并作出回应。
Issue地址:
不了解如何高效进行提问的同学,请阅读下面两篇文章:
《提问的智慧》:
https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md
《社区提问指南》:
https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md
● 提交Issue需要注意的地方
提交的Issue 最好带上详细的复现问题的步骤,这样可以减少其他同步复现问题的时间,更快更有效地解决问题。
如果能定位到源码的问题,建议提交一个pr来修复它,而不是等待其他同学。
社群交流技巧
除了GitHub和Gitee之外,我们还有一个拥有3000多人的开源框架技术交流群,在群内,大家可以尽情交流ChunJun相关技术和资讯,各位开发者们互帮互助,一串代码、一个建议,都是对ChunJun的莫大帮助。
开源框架交流钉钉群号码:30537511
对于社群,我们希望它能够成为一个所有对开源、对ChunJun有兴趣的朋友的交流场所,而不是一个单纯的答疑群。在群里,不论是ChunJun团队成员还是你们,所有人的角色都是ChunJun的爱好者和共建者,而不是“客服”“机器人”这样的角色。
当您对于ChunJun有疑问时,我们首先推荐您搜索相关文档,如果不能得到答案,强烈建议您通过提交Issue和我们进行沟通,最后才是在社群内提问。因为通过提交Issue的方式,问题可以得到沉淀,社群内消息刷新得很快,一个不小心,您的问题就石沉大海了。
我们团队成员平时还有自己的工作,没办法守在电脑前一个个回复社群中的问题,所以勇敢地提出 Issue吧,那一刻,你就已经变成了开源项目的参与者!
ChunJun团队也将根据大家的反馈,定期更新迭代官方文档,不断完善项目质量,和你们一起共建ChunJun。
Ding!您有一份ChunJun实用指南,请查收的更多相关文章
- Lombok好用是好用,就是容易踩坑,这份避坑指南请查收
序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们平常在开发过程中,总是希望能够尽量少敲代码.这一方面,当然是为了偷懒,另一方面,当然也是为了代码看起来更加简洁一点,不断往编程规范上靠.然后其 ...
- Linux 网络命令必知必会之 tcpdump,一份完整的抓包指南请查收!
目录 01 简介 02 tcpdump 命令选项 03 过滤器 04 常用操作 4.1 抓取某主机的数据包 4.2 抓取某端口的数据包 4.3 抓取某网络(网段)的数据包 4.4 抓取某协议的数据包 ...
- 购买二手iPhone需要注意什么?这份避坑指南请收好!
iPhone二手机市场一直非常火热,有时甚至出现供不应求的情况.主要是因为新机的价格不便宜,没什么性价比,很多小伙伴会选择低价购买二手iPhone,价格基本只要新机的二到五折.不过二手机的水深相信大家 ...
- [转载]Firefox插件(plugins)开发实用指南
转自: http://huandu.me/2010/02/11/595/ Firefox插件可实现强大功能,但其中麻烦事情不少.写这个实用指南首先是为了方便自己记忆,免得以后再次栽倒一些坑里面,如果能 ...
- 本人为项目组制定的一份页面优化指南(easyui页面优化方案)
#本人为项目组制定的一份页面优化指南(easyui页面优化方案) ##背景 这是一篇我之前为项目组制定的页面优化指南,主要是面向表单页面,典型的像[注册用户](https://passport.cnb ...
- Chrome 控制台实用指南【转】
转自伯乐在线. Chrome 控制台实用指南 前言 Chrome浏览器我想是每一个前端er必用工具之一吧,一部分原因是它速度快,体积不大,支持的新特性也比其它浏览器多,还有一部分我想就是因为它的控制台 ...
- A Practical Guide to Distributed Scrum - 分布式Scrum的实用指南 - 读书笔记
最近读了这本IBM出的<A Practical Guide to Distributed Scrum>(分布式Scrum的实用指南),书中的章节结构比较清楚,是针对Scrum项目进行,一个 ...
- MSIL实用指南-生成索引器
MSIL实用指南-生成索引器 索引器是一种特殊的属性,它有参数的,也有get和set方法,属性名称一般是"Item",并且方法名称一般名称是"get_Item" ...
- webdriver实用指南python版本(1)-安装开发环境
webdriver实用指南是本人编写的系列丛书,包括ruby版.python版和java版.在线版是免费的,之前是放在我的github上,但是很多同学总不记得地址,现在转到我的博客上,方便大家阅读. ...
- 乙醇的webdriver实用指南ruby版本
webdriver实用指南是乙醇2013年分享计划的一部分,作为对已逝去的selenium2时代的追忆. 目录如下 启动浏览器 关闭浏览器 浏览器最大化 设置浏览器大小 访问链接 打印当前页面的tit ...
随机推荐
- PX4 仿真环境开发整理
博客地址:https://www.cnblogs.com/zylyehuo/ (一)PX4 仿真开发 搭建仿真环境 概念介绍及环境建议 MAVROS安装(适用于ROS1.ROS2) Ubuntu安装Q ...
- 【Linux】5.11 shell文件包含
Shell 文件包含 ?和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号 ...
- 高格发票勾稽之BUG
select (INVNO) AS INVCODE, SDATE ,* FROM STKSALE1 WHERE LEN(INVSCODE) > 0 AND INVSCODE = '3100000 ...
- TdxpageControl融合窗口和free
for I := cxpgcntrl1.PageCount - 1 downto 0do begin if cxpgcntrl1.Pages[i].Caption <> '首页' then ...
- 2012R2双网卡路由的设定
目前T440服务器, os只能起步2012R2.intelWin联盟是实实在在的.在该os上,DB支持SQL2008. 你要安装SQL2005也可以.到网上查找攻略.那也是死去活来.还好.2008兼容 ...
- 让 LLM 来评判 | 技巧与提示
这是 让 LLM 来评判 系列文章的第六篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技巧与提示 LLM 评估模型已知偏 ...
- Springboot连接Greenplum,分页查询
1.springboot分页查询greenplum数据报错: org.mybatis.spring.MyBatisSystemException: nested exception is org.ap ...
- rabbitmq的消息的有顺序性
一.rabbitmq:拆分多个queue,每个queue一个consumer,就是多一些queue而已,确实是麻烦点:或者就一个queue但是对应一个consumer,然后这个consumer内部用内 ...
- Python爬取任意城市肯德基门店信息(json数据反序列化、提取数据、写入CSV)
本案关键内容点:json数据反序列化.提取数据.写入CSV 创建csv,写入表头数据,脚本同目录下会创建名称为book的csv文件,且第一行插入表头内容 import csv f = open('bo ...
- GeoIP库商业版调研-支持IPV6
背景 因需要支持ipv6网络,目前所使用的GeoIP库无法解析或者很少量的能解析出IPV6的IP地址位置信息,所以需要更新最新的GeoIP库文件.目的配置在Nginx或者服务直接调用使用,从而获取城市 ...