参与

我们经常被问到“我如何参与”,幸运的是,答案很简单,只要写一些代码,然后提交 :) 这里没有你必须要跨越的障碍,也没有秘密的握手。我们有一个非常小的“开销”,我们请求允许可伸缩的项目开发,下面我们将提供我们要求的工具和“工作流”的概述,以及一些一般性建议。

如果你写了一些好文章,别忘了写博客。

注册jboss.org

登录到jboss.org,你可以访问JBoss wiki、论坛和JIRA,进入https://www.jboss.org/ 并点击“注册”。

sign_jbossorg.png

签署贡献者协议

你需要签署的唯一形式是贡献者协议,该协议通过web完全自动化,如下图所示,“这为你的贡献建立了条款和条件,并确保源代码能够得到适当的许可”。

https://cla.jboss.org/

sign_contributor.png

通过JIRA提交问题

为了能够与核心开发团队进行交互,你将需要使用问题跟踪器JIRA,这确保了所有的请求都被记录下来并分配到一个发布计划中,所有的讨论都被捕获在一个地方,Bug报告,Bug修复,特性请求和特性提交都应该在这里,一般问题应在邮件列表中回答。

次要的代码提交,比如格式或文档修复,不需要创建相关的JIRA问题。

https://issues.jboss.org/browse/DROOLS

https://issues.jboss.org/browse/JBPM

https://issues.jboss.org/browse/GUVNOR

submit_jira.png

Fork GitHub

在签署了贡献者协议并将你的请求提交给JIRA之后,你现在应该准备好编码 :) 创建一个GitHub帐户,并fork任何Drools、jBPM或Guvnor存储库,fork会在你自己的GitHub空间中创建一个副本,你可以按照自己的进度进行操作,如果你犯了错误,别担心,把它吹走,然后再用fork。注意,每个GitHub存储库都为你提供了克隆(检出)URL,GitHub将为你提供特定于fork的URL。

https://github.com/kiegroup

fork_github.png

编写测试

在编写测试时,尽量使它们最小化并保持自我控制,我们更喜欢将DRL片段保存在测试中,因为这样可以更快地进行检查。如果它们是大量的规则,那么使用字符串是不实际的,所以无论如何都要将它们放在单独的DRL文件中,而不是从类路径加载。如果你的测试需要使用模型,请尝试使用那些已经存在于其他单元测试中的模型;例如Person,Cheese或Order,如果不存在具有所需字段的类,请在添加新类之前尝试更新现有类的字段。

有大量的测试需要查看以获得一个想法,MiscTest是一个很好的起点。

https://github.com/kiegroup/drools/blob/master/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java

unit_test.png

遵守正确的约定

当你提交时,确保使用了正确的约定,提交必须从JIRA问题id开始,例如JBRULES-220。这确保了提交通过JIRA被交叉引用,因此我们可以看到在相同的位置为一个给定的问题提交的所有提交。在id之后,接下来是问题的标题,然后使用带有破折号的换行符来提供与此提交相关的附加信息,为你想要表达的每一个单独的观点使用额外的新线条和破折号。你可以向同一个提交添加额外的JIRA交叉引用,如果它是合适的。一般来说,尽量避免在同一个提交中组合不相关的问题。

不要忘记从原来的主分支中重新定位本地分支,然后将你的提交推回到你的分支中。

jira_crossreferenced.png

提交pull请求

通过将代码从最初的master中重新构建并推送到你的个人GitHub区域,你现在可以以pull请求的形式提交你的工作,如果你在GitHub上查看你工作区域的页面顶部,你会看到一个“Pull Request”按钮,然后选择它将提供一个gui来自动提交pull请求。

然后,pull请求进入一个队列,供每个人查看和评论,下面你可以看到一个典型的pull请求。pull请求允许进行讨论,并显示所有相关提交和每个提交的差异,讨论通常涉及到代码审查,这些审查为改进提供了有用的建议,并允许我们对代码的特定部分留下内联注释。如果我们不直接合并,不要灰心,在接受pull请求之前,通常需要进行多次修改,幸运的是,GitHub让返回代码变得非常简单,执行更多提交,然后将pull请求更新到你的pull请求到最新和最大。

我们需要时间来回复pull请求,所以请耐心等待,随修复程序一起提交的测试通常会很快被应用,在我们有时间提交修复程序之前,测试通常会一直进行下去。不要忘记不时地重新建立和重新提交你的请求,否则随着时间的推移,它会有合并冲突,而核心开发人员通常会忽略这些冲突。

submit_pull_request.png


上一篇:Drools 文档(介绍)
下一篇:安装和设置(core和IDE)

博弈
2.5k 声望1.5k 粉丝

态度决定一切


引用和评论

0 条评论