贡献
您可以提交一个bug,一个Feature建议或者直接提交改进。
1. 如何提交Bug
当您发现一个Bug时,请提交Bug,提交前:
- 请先在issue列表里查找一下是否该bug已经提交,如果已经有此bug,请在此bug下接着回复。
- 如果该Bug是可以复现的。请尽量提供完整的重现步骤。
请在issues页面中提交Bug。
一个高质量的Bug通常有以下特征:
- 使用一个清晰并有描述性的标题来定义Bug。
- 详细的描述复现Bug的步骤。包括您的配置情况,预计产生的结果,实际产生的结果。并附加详细的TRACE日志。
- 如果程序抛出异常,请附加完整的堆栈日志。
- 如有可能,请附上屏幕截图或动态的GIF图,这些图片能帮助演示整个问题的产生过程。
- 哪个版本。
- 需要修复的优先级(危急、重大、次要、细微)。
下面是Bug的Markdown模板,请按照该模板填写issue。
**标题**
标题格式: [BUG][Priority] bug标题
Priority分为四级: Critical、Major、Minor、Trivial
**问题描述**
[清晰准确描述遇到的问题]
**问题复现步骤:**
1. [第一步]
2. [第二步]
3. [...]
**期望的表现:**
[在这里描述期望的表现]
**观察到的表现:**
[在这里描述观察到的表现]
**屏幕截图和动态GIF图**
![复现步骤的屏幕截图和动态GIF图](图片的url)
**DolphinScheduler版本:(以1.1.0为例)**
-[1.1.0]
**补充的内容:**
[请描述补充的内容,比如]
**需求或者建议**
[请描述你的需求或者建议]
2. 如何提交功能(Feature)建议
提交前:
- 请确定这不是一个重复的功能增强建议。 查看Issue Page列表,搜索您要提交的功能增强建议是否已经被提交过。
请在issues页面中提交Feature。
一个高质量的Feature通常有以下特征:
- 一个清晰的标题来定义Feature
- 详细描述Feature的行为模式
- 说明为什么该Feature对大多数用户是有用的。新功能应该具有广泛的适用性。
- 尽量列出其他调度已经具备的类似功能。商用与开源软件均可。
以下是Feature的Markdown模板,请按照该模板填写issue。
**标题**
标题格式: [Feature][Priority] feature标题
Priority分为四级: Critical、Major、Minor、Trivial
**Feature的描述**
[描述新Feature应实现的功能]
**为什么这个新功能是对大多数用户有用的**
[解释这个功能为什么对大多数用户是有用的]
**补充的内容**
[列出其他的调度是否包含该功能,是如何实现的]
3. 如何领取Bug/Feature
如果您想实现某个Feature或者修复某个Bug。请参考以下内容:
- 所有的Bug与新Feature建议使用Issues Page进行管理。
- 如果想要开发实现某个Feature功能,请先回复该功能所关联的Issue,表明您当前正在这个Issue上工作。 并在回复的时候为自己设置一个deadline,并添加的回复内容中。
- 最好在核心贡献者找到一个导师(指导者),导师会在设计与功能实现上给予即时的反馈。
- 您应该新建一个分支来开始您的工作,分支的名字为Feature功能名称/issueId。 比如,您想完成依赖功能并提交了Issue 111,那么您的branch名字应为 dependency/111。 功能名称可与导师讨论后确定。
- 完成后,发送一个pull request到incubator-dolphinscheduler,提交过程具体请参考下面《提交代码流程》。
如果是想提交Pull Request完成某一个Feature或者修复某个Bug,这里都建议大家从小处做起,完成一个小功能就提交一次,每次别改动太多文件(最好6个以下),改动文件太多也会给Reviewer造成很大的心里压力,建议通过多次pr的方式完成。