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/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

《社区提问指南》:

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实用指南,请查收的更多相关文章

  1. Lombok好用是好用,就是容易踩坑,这份避坑指南请查收

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们平常在开发过程中,总是希望能够尽量少敲代码.这一方面,当然是为了偷懒,另一方面,当然也是为了代码看起来更加简洁一点,不断往编程规范上靠.然后其 ...

  2. Linux 网络命令必知必会之 tcpdump,一份完整的抓包指南请查收!

    目录 01 简介 02 tcpdump 命令选项 03 过滤器 04 常用操作 4.1 抓取某主机的数据包 4.2 抓取某端口的数据包 4.3 抓取某网络(网段)的数据包 4.4 抓取某协议的数据包 ...

  3. 购买二手iPhone需要注意什么?这份避坑指南请收好!

    iPhone二手机市场一直非常火热,有时甚至出现供不应求的情况.主要是因为新机的价格不便宜,没什么性价比,很多小伙伴会选择低价购买二手iPhone,价格基本只要新机的二到五折.不过二手机的水深相信大家 ...

  4. [转载]Firefox插件(plugins)开发实用指南

    转自: http://huandu.me/2010/02/11/595/ Firefox插件可实现强大功能,但其中麻烦事情不少.写这个实用指南首先是为了方便自己记忆,免得以后再次栽倒一些坑里面,如果能 ...

  5. 本人为项目组制定的一份页面优化指南(easyui页面优化方案)

    #本人为项目组制定的一份页面优化指南(easyui页面优化方案) ##背景 这是一篇我之前为项目组制定的页面优化指南,主要是面向表单页面,典型的像[注册用户](https://passport.cnb ...

  6. Chrome 控制台实用指南【转】

    转自伯乐在线. Chrome 控制台实用指南 前言 Chrome浏览器我想是每一个前端er必用工具之一吧,一部分原因是它速度快,体积不大,支持的新特性也比其它浏览器多,还有一部分我想就是因为它的控制台 ...

  7. A Practical Guide to Distributed Scrum - 分布式Scrum的实用指南 - 读书笔记

    最近读了这本IBM出的<A Practical Guide to Distributed Scrum>(分布式Scrum的实用指南),书中的章节结构比较清楚,是针对Scrum项目进行,一个 ...

  8. MSIL实用指南-生成索引器

    MSIL实用指南-生成索引器 索引器是一种特殊的属性,它有参数的,也有get和set方法,属性名称一般是"Item",并且方法名称一般名称是"get_Item" ...

  9. webdriver实用指南python版本(1)-安装开发环境

    webdriver实用指南是本人编写的系列丛书,包括ruby版.python版和java版.在线版是免费的,之前是放在我的github上,但是很多同学总不记得地址,现在转到我的博客上,方便大家阅读. ...

  10. 乙醇的webdriver实用指南ruby版本

    webdriver实用指南是乙醇2013年分享计划的一部分,作为对已逝去的selenium2时代的追忆. 目录如下 启动浏览器 关闭浏览器 浏览器最大化 设置浏览器大小 访问链接 打印当前页面的tit ...

随机推荐

  1. 文件转十六进制出现转义字符直接通过ASCII码逐字符展开的问题与修复

    近日工作中遇到某品牌电子签章系统生成的PDF文件若直接使用十六进制查看器打开,会出现转义字符被直接以ASCII编码转换为16进制字符串的问题,导致提取的文件无法匹配ASN.1格式,无法进一步对签章有效 ...

  2. 容器一直处于Create状态

    通过命令排查 docker inspect b5be1d9e71de报错 "Error": "Could not attach to network fabric-tbc ...

  3. FastAPI Pydantic动态调整Schema

    title: FastAPI Pydantic动态调整Schema date: 2025/3/29 updated: 2025/3/29 author: cmdragon excerpt: Pydan ...

  4. 【Markdown】简明语法手册

    Cmd Markdown 简明语法手册 标签: Cmd-Markdown 1. 斜体和粗体 使用 * 和 ** 表示斜体和粗体. 示例: 这是 *斜体*,这是 **粗体** 这是 斜体,这是 粗体. ...

  5. 一文彻底搞懂 MCP:AI 大模型的标准化工具箱

    MCP 最近在 AI 领域 引发了 广泛关注,特别是在 海外各大社区 中,大家热烈讨论,热度 相当高. 我打开了 Google Trends,这是一个专门用于查看全球热点趋势的网站. 输入关键词后,可 ...

  6. python基础必练题!!

    水仙花数 水仙花数 info = 3 while info: # 用户输入数字 try: print(f"请输入数字,您有{info}次机会!!") num = int(input ...

  7. Java编程--接口(interface)简单用法(一)

    接口是Java中的一个重要的概念. interface:定义了子类要实现的功能.由全局常量和抽象方法组成. 接口的定义 定义一个简单的interface public interface A {  p ...

  8. API接口调用--历史上的今天(v1.0)

    历史上的今天 参考(聚合数据):https://www.juhe.cn/docs/api/id/63 事件列表(v1.0) 接口地址: http://api.juheapi.com/japi/toh ...

  9. .NET 原生驾驭 AI 新基建实战系列(六):Pinecone ── 托管向量数据库的向量数据库的云原生先锋

    引言 随着人工智能和机器学习技术的快速发展,向量数据在许多应用场景中变得越来越重要.从推荐系统到自然语言处理,再到图像搜索,向量搜索技术成为实现高效.精准匹配的核心.Pinecone 作为一个托管的向 ...

  10. 在鸿蒙NEXT中实现完全自定义导航栏

    在日常app开发中,导航栏扮演着重要的角色.鸿蒙提供了系统导航栏Navigation,它支持很多属性的修改,但是应用需求更加灵活多变,比如有的导航栏有背景图片,有的导航栏要求渐变色,有的导航栏需要随时 ...