前几天,有人在查看github上的platform项目时问我“Joomla-jenkins是谁?”这显然是一个做了很多事情的人。但实际上,它并不是一个人。

Jenkins持续集成软件(Hudson项目的分支),用于通过运行单元测试、样式检查和各种分析来确保平台的稳定性。

Ian MacLennan最近宣布了一个流程变更,要求所有拉取请求(某人请求提交代码的请求)都应该发送到暂存分支。这样可以在提交并测试代码。如果测试失败,那么“拉取请求者”需要在提交之前修复代码。这样,破坏测试的代码永远不会进入“真实点”的主分支。

 

如果你在github上查看,你会看到一个名为“切换分支”的下拉菜单,你可以在这里看到暂存分支和主分支之间的差异。大多数时候它们会是相同的,但如果你在正确的时间查看,你会看到差异。

最终,部分Jenkins数据将不断传输到开发者网站。但除了主仓库中没有测试失败(并且由于Jenkins,它将保持这种方式),它还提供了其他有趣的分析。

例如,最近有很多关于代码风格的工作,也就是说,使框架的编码方式在许多人的工作中保持一致。虽然我们过去有过各种风格指南(多年来的一致规则是:代码缩进使用制表符而不是空格,其余基本上遵循PEAR标准),但现在有了Jenkins,代码风格实际上可以被强制执行。我们在内部一致性方面已经做得更好,这主要归功于Andrew Eddie运行的自动化检查和Louis Landry所做的工作。

 


这是最近的快照,其中最大的问题是公共变量名称开头使用下划线和各种间距问题。然而,正如你所看到的,当你引入规则时,违规次数突然增加,所以将来不要惊讶于看到这种情况上下波动。

 

 

重复代码也正在朝着正确的方向发展。不出所料,由于是新代码以及代码的结构方式,最多的重复代码出现在新的数据库类中。

 

 

单元测试是持续集成最重要的方面。目前我们有1216个测试,而且它们全部通过。但我们仍然需要更多。这是一个帮助改进Joomla!的绝佳地方。我们的单元测试越多,修改导致问题的可能性就越小,向后兼容性问题也就越少。编写测试不仅仅是对使用Joomla!的人有帮助,如果你想要更好地理解代码,这也是一个很好的学习经历。如果你查看测试文件夹中的示例,你会发现,在很多情况下,php本身并不复杂。重要的是考虑所有可能发生和应该发生的事情。所以如果你在寻找一种贡献方式,进行周末或晚上项目,为一个方法编写测试或完成一个需要更多测试的测试,都是很大的帮助。