点击上方 蓝字关注我们

作者 | 严天奇

✎ 编 者 按

最近有一些新加入社区的朋友反馈不太了解 Apache DolphinScheduler 提交 PR 的步骤和规则。这不,人帅心美的严天奇同学就录制了详细的视频教程,手把手教你提交 PR,不会的小伙伴快上车!

视频教程

大家好,这一期将会向大家介绍如何提交PR。

01

什么是 PR

我们在 Wikipedia 中搜索 pull request,页面直接进入了 Distributed version control 词条中。Pull request 是属于 Distributed version control system 的一个操作,wiki 中介绍到 PR 是为开源仓库做贡献的方式,也可以被称作 merge request。贡献者 request 开源项目维护人员来 pull 贡献者提交的代码改动,所以这个动作被称作 pull request。当贡献的代码改动被通过后,维护人员会merge 贡献者的改动到开源项目中。

02

我们可以从哪些方面提交 PR

绝大多数的代码贡献出发点来自 Apache DolphinScheduler,GitHub 的 issue中,其中会包含 Feature,Bug,Improvement,Test 和 Sub-Task 方向的改动。我们可以根据问题的描述,解决 issue 并进行代码贡献。

作为新手,我建议大家从新手任务开始。

打开 issue, 我们可以看到 pinned issues 里的 good first contributor,官方持续为我们提供了入坑的新手任务,一般新手任务会带有 easy to fix 或 good first issue 标签。

我们可以从列表中选择自己感兴趣的问题,作为第一个 PR 的提交内容。

03

提交 PR 需要注意的点

我们打开官方文档中提交者指南里的 Pull Request 须知。

DolphinScheduler 对 PR 的规范,包括了 PR 标题,PR 分支名,Commit Message 规范,以及 Code Style 配置。

下面我们根据官方文档来学习正确的 PR 规范。

首先是 PR 标题。PR 标题是我们提交 PR 时设置的标题,由[PR 类型-ISSUE 号][模块名]和描述组成,模块名填对应的模块即可。

其次是 PR 分支名 是我们在本地 clone 的项目中新建新的 PR 分支。格式是 Pull Request 类型 -Issue 号。

Commit Message 是我们在提交代码时的提交信息,应该包括三个部分:Header,Body 和 Footer。其中,Header 是必需的,Body 和 Footer 可以省略。

Header 部分只有一行,包括三个字段:type(必需)、scope(可选)和 subject(必需)。

格式为[DS-ISSUE 编号][type] 和 subject。

其他 body footer 部分这里就不赘述,大家可以在 Commit Message 须知进行了解。

稍后我们就按照这个例子来写 Commit Message。

Code-style 按照官方进行配置即可,这样可以保证编码的格式,就不赘述了。

最后,DolphinScheduler 官方建议大家尽量把一个 Pull Request 作为任务的最小粒度进行提交。

Type 用于说明 commit 的类别,是类别的缩写,包括feat for feature,fix,docs,style,refactor,test,chore。

Scope 用于说明 commit 影响的范围,比如 Server、Remote 等;

Subject 是 Commit 目的的简短描述,不超过 50 个字符。

Body 部分是对本次 commit 的详细描述,可以分成多行。

当提交代码与上一个版本不兼容或针对某个 issue 则需要 footer。

下面是一个例子。

xxxx

[DS-001][docs-zh] add commit message

  • commit message RIP

  • build some conventions

  • help the commit messages become clean and tidy

  • help developers and release managers better track issues and clarify the optimization in the version iteration

This closes #001

接下来,我来演示如何在  DolphinScheduler 文档中通过纠错单词和错误语法来提交 PR。

比如,如果我们在官网看到关于 DolphinScheduler 的硬件环境中有错误的单词和语法,我们可以自行提交 issue 或者他人发布 issue 来暴露这个问题。

首先,我们找到这个问题的 issue,并留言我们会接管该问题。

接下来分为以下几步:

首先,fork 和 clone 文档项目仓库(因为我们是对官网进行修改,所以需要 fork website 项目,如果需要给 DolphinScheduler 项目提交则换成 DolphinScheduler 项目即可)。接下来是新建分支改动,最后 Push 和提交 PR。

再讲解下详细步骤。首先我们打开 website 的仓库,我们需要在自己的 GitHub 中 fork 官方的 ds-website 项目。

然后我们通过 git clone 克隆 ds-website 项目,如果网络不通的同学可以通过设置 git proxy 来下载。

下载完成之后,我们使用 IDEA 加载项目。这里我已经提前打开了项目。

接着我们新建一个分支,根据前面提到的 PR 分支命名规则设置为 bug-Issue 号, bug-6939。

我们需要找到硬件环境(https://dolphinscheduler.apache.org/en-us/docs/latest/user_doc/guide/installation/hardware.html)这篇文章,首先找到对应的版本 2.0.0,再找到 url 中对应的 hardware.html 文件在 /user_doc/guide/installation 文件夹下。

接着我们对错误的单词和语法进行修正。

所有的改动结束之后,我们需要先 commit 这次的改动并根据官方要求填写Commit Message。

再将分支 push 到我们的 GitHub 中。

最后,GitHub 提示我们的改动可以提交 PR,点击 compare & pull request 提交 PR 并按照官方要求描述 PR 标题。

这样,我们的 PR 就提交好了!后续如果有任何改动依然可以对该分支进行提交。

提交 PR 的后续:

  • 社区 Committer 们会做 CodeReview,再与您讨论一些细节(包括设计,实现,性能等)和可能需要更改的部分。当团队对本次修改满意后,会将提交合并到 dev 分支;

  • 最后,恭喜您已经成为了 DolphinScheduler 的官方贡献者。

看到这里,你学会了吗?如果您也想参与贡献,下面有各种问题汇总

参与贡献

随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。

参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689

非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22

如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html

来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。

参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手

微信(Leonard-ds) 手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。添加小助手微信时请说明想参与贡献。

来吧,开源社区非常期待您的参与。

社区官网

https://dolphinscheduler.apache.org/

代码仓地址https://github.com/apache/dolphinscheduler

您的 Star,是 Apache DolphinScheduler 为爱发电的动力️ 

投稿请添加社区小助手微信

(Leonard-ds)

从 Airflow 到 Apache DolphinScheduler,有赞大数据开发平台的调度系统演进

☞在生鲜零售业,DolphinScheduler 还能这么玩!

☞4 亿用户,7W+ 作业调度难题,Bigo 基于 Apache DolphinScheduler 巧化解

☞荔枝机器学习平台与大数据调度系统“双剑合璧”,打造未来数据处理新模式!

看到社区代码不规范,强迫症的我顺手就给格式化了!

最佳实践|联通数科基于 DolphinScheduler 的二次开发

DolphinScheduler 荣获 2021 中国开源云联盟优秀开源项目奖!

☞重构、插件化、性能提升 20 倍,Apache DolphinScheduler 2.0 alpha 发布亮点太多!

☞巨变!a16z 关于新一代数据基础设施架构的深度洞察

手把手教你 Apache DolphinScheduler 本地开发环境搭建 | 中英文视频教程

点击阅读原文,加入开源!

点个在看你最好看

不会提交 PR 的小伙伴看过来,超详细的视频教程!的更多相关文章

  1. Java架构师必看,超详细的架构师知识点分享!

    在Java程序员行业中,有不少Java开发人员的理想是成为一名优秀的Java架构师,Java架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作.他必须对开发技术非常了解,并且 ...

  2. 适合新手看的超详细CentOS Linux 7 安装Tomcat8过程

    非常详细的安装Tomcat8的步骤,适合新手学习.废话不多说,直接干! 前提条件 1. 已有可直接连接的CentOS7系统 2. CentOS7系统已安装Java JDK 8 下载Tomcat8 下载 ...

  3. 如何在github上提交pr

    如何在github上提交pr 1.fork开源的代码到自己的远程仓库 2.clone自己的仓库到本地电脑 3.与源代码的github仓库建立新的连接 git remote add upstream h ...

  4. GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮 ...

  5. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  6. (原创)超详细一步一步在eclipse中配置Struts2环境,无基础也能看懂

    (原创)超详细一步一步在eclipse中配置Struts2环境,无基础也能看懂 1. 在官网https://struts.apache.org下载Struts2,建议下载2.3系列版本.从图中可以看出 ...

  7. java初学者必看之构造方法详细解读

    java初学者必看之构造方法详细解读 构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实就是在调用构造方法. 格式 public 类名称(参数类型 参数名称){ 方法体 } 注 ...

  8. Linux:査看文件的详细信息

    Linux中stat是査看文件详细信息的命令. 1.命令格式: stat [选项] 文件名/目录名 2.选项: -f:査看文件所在文件系统信息,而不是査看文件信息. 3. 案例 案例1:査看文件的详细 ...

  9. git stash提交PR的正确步骤&git squash技术

    1.git stash梳理 1.1git stash的克隆与同步 首先整理下git stash的逻辑是这样 在本地做出了新的修改,提交时显示当前的版本不是最新版本,这时就需要先pull一下自己代码仓库 ...

随机推荐

  1. c# 简单的滑动图片验证

    普通的验证码对用户使用体验不友好,出现了滑动图片验证的验证方式,用户只要按住滑块完成图片的拼接即可通过验证(这是最简单的方式,滑动轨迹,数据分析,滑行速度 什么的暂没考虑) 主要的实现思路: 1.先从 ...

  2. 奶盖拌饭 NKOJ8457

    题意:一个无向图,每次询问给出一条边,问这条边的最大值满足这条边一定在这个图的最小生成树上,如果没有上限输出-1. 思路:考场上想过的,将分为两类,(非)树边. 1.亿点性质 非树边:加上这条边所构成 ...

  3. 如何用HMS Core位置和地图服务实现附近地点路径规划功能

    日常出行中,路径规划是很重要的部分.用户想要去往某个地点,获取到该地点的所有路径,再根据预估出行时间自行选择合适的路线,极大方便出行.平时生活中也存在大量使用场景,在出行类App中,根据乘客的目的地可 ...

  4. React简单教程-6-单元测试

    前言 我想大部分人的前端测试,都是运行项目,直接在浏览器上操作,看看功能正不正常.虽然明明有测试库可以使用,但是因为"要快"的原因,让好好做测试变成了一件影响效率的事. 因为这种无 ...

  5. 3D编程模式:依赖隔离模式

    大家好~本文提出了"依赖隔离"模式 系列文章详见: 3D编程模式:开篇 本文相关代码在这里: 相关代码 目录 编辑器需要替换引擎 设计意图 定义 应用 扩展 最佳实践 更多资料推荐 ...

  6. 运筹学笔记12 大M法

    引入M,其中M是一个充分大的正数.由此,目标函数也改变为zM. 如此构造的线性规划问题我们记作LPM,称之为辅助线性规划问题,也即在原来的线性规划问题的基础上,改造了其等式约束条件,然后有对目标函数施 ...

  7. C++ 炼气期之基本结构语法中的底层逻辑

    1. 前言 从语言的分类角度而言,C++是一种非常特殊的存在.属于高级语言范畴,但又具有低级语言的直接访问硬件的能力,这也成就了C++语言的另类性,因保留有其原始特性,其语法并不象其它高级语言一样易理 ...

  8. 在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker

    在Winform开发中有时候我们为了不影响主UI线程的处理,以前我们使用后台线程BackgroundWorker来处理一些任务操作,不过随着异步处理提供的便利性,我们可以使用Async-Awati异步 ...

  9. python亲密数设计

    '''亲密数 (如果a的所有正因子和等于b,b的所有正因子和等于a,因子包括1但不包括本身,且a不等于b,则称a,b为亲密数对.一般通过叠代编程求出相应的亲密数对)'''n = 3000def fun ...

  10. 前端环境搭建nodejs%VScode

    nodejs:https://blog.csdn.net/antma/article/details/86104068VScode:https://code.visualstudio.com/Down ...