大家好,

这是自定义发布服务项目谷歌Summer of Code时间轴上的最后一篇博文。我有复杂的感觉,因为我们几乎接近终点的最令人惊叹的开源程序之一。然而,现在是时候为这个项目打包了,并达到一个项目可以构建和进一步扩展的状态。这个阶段在bug修复、测试和项目托管方面非常忙碌,所以让我们直接进入阶段3更新。

修复和代码质量保证

将Jen必威国际有限公司kinSfile代理设置为Linux

我们意识到该构建在Windows上失败,并且现在没有真正的用例在Windows上运行它。也许它可能是未来的路线图。因此,我们决定将测试转移到仅在Jenkins服务器上运行测试的Linux代理。必威国际有限公司

后端端口错误信息

控件上有一个默认消息港口:8080因此,我们想在后端将其更改为自定义消息。这里主要的要点是我们需要实现误差控制器接口,并在其中包含自定义消息。这是上一阶段的技术债务,在本阶段完成并合并。

PMD分析

为了提高代码的质量,将PMD源代码分析器应用到项目中。它帮我发现了大量的错误。当运行最初的PMD检查时,我们发现大约162个PMD错误。我们意识到其中一些是不相关的,而有些可以稍后修复。

Findbugs分析

我们在这个阶段中包含的另一个提高代码质量的工具是findbugs。它确实捕获了我代码中的5-10个漏洞,我立即解决了它们。大部分都在关闭HTTP请求一个简单的修复是尝试资源

雅各布代码覆盖范围

我们需要确保我们写的大多数代码对所有分支机构和行都具有适当的覆盖范围。因此,我们决定包含一个雅科科尼亚州代码覆盖记者,帮助我们找到了我们需要改善覆盖的未覆盖的线条和地区。

删除JCasC代

在开发服务时,我们很快意识到战争包的产生如果我们包括一个配置代码节,但没有提供到相应所需的路径yml.文件。因此,我们决定删除赌场一整组在一起。也许它将在未来的补丁中卷土重来

次要修复

  • 记录修复:# 99

  • 文档修复:链接:#120.

  • 更新中心转储修复:链接:#125

  • 类路径修复:#126

  • 发布Drafter加法:链接:#136.

前端

没有为导航添加社区配置链接。现在从主页本身导航到社区页面更容易了。

码头工人的更新

用Docker建立一切

这是这一阶段的主要变化之一,使服务非常容易在本地启动,这一变化将极大地帮助社区采用,因为它消除了人们需要在本地安装的工具。最初的过程是在本地运行maven,生成所有文件,然后将其所有内容复制到容器中。然而,通过这个更改,我们将在docker容器本身内生成所有文件。允许用户只运行几个命令来启动和运行服务。

所以我们对dockerfile做的一些主要的改变是:

a)复制所有配置文件pom.xml到容器中。

b)执行命令mvn清洁包在生成jar的容器内。

c)在容器内运行罐子。

主机的更新

这一过程应该是未来的路线图,但是,INFRA团队批准并超级有助于使这一过程尽可能顺利。感谢Gavin,Tim和Oblak来实现这一目标。这是Google集团面貌

该项目现在已经被托管这里作为预览。它仍然需要一些修复程序来完全正常。

测试更新

单元测试服务

关于社区托管和采用,对该阶段最重要和主要的里程碑之一的服务是测试大多数代码,我们已经完成了飞行的测试。所有服务都是完全测试的,这是一个重大成就。对于您的服务测试,我们决定使用丝网可用于模拟外部服务。柯智的评论帮助我们了解我们所需要的事情,因为他在Github检查API项目中做得非常相似。

因此,我们基本上重新构建了更新中心url,并确保通过适当的控制流逻辑测试得到准确的响应。

wiremockrules . stubfor (get(urlPathMatching("/getUpdateCenter")) .willReturn(response () .withStatus(200) .withHeader("Content-Type", "application/json") .withBody(updateCenterBody)));

添加更新中心控制器测试

另一个主要的测试更改涉及测试控制器。为此,我们决定使用wiremockjava中的库将在调用控制器时模拟服务器响应。

例如:如果我有一个在一个名为API中的控制器/ api / plugin / getpluginlistWiremock可用于在遭到测试时停止其响应。所以我们使用这样的东西来测试它。

(updateService.downloadupdatecenterjson())。然后return(util.convertpayloadtojson(dummyupdatebody))

当特定控制器称为底层服务时,嘲笑,并且根据我们提供的响应返回响应。要查找更多详细信息,PR在这里。

添加打包控制器测试

除了更新中心控制器测试外,另一个需要测试的控制器是包装器控制器。我们还需要确保控制器的所有分支都经过了适当的测试。更多细节可以在下面的公关中找到。

码头工人组成的测试

我们在整个阶段面临的一个问题是docker容器。我们经常发现,由于代码库的一些变化,docker容器构建有时会中断,甚至有时内部api似乎出现故障。为了解决这个问题,我们决定在当地进行一些测试。所以我所做的基本上是引入一组bash脚本,它将做以下事情:

a)使用该容器构建Docker撰写命令。

b)运行容器。

c)使用暴露的端口测试api。

d)拆除运行容器。

用户文档

我们还包括一个用户文档指南,以便它使其超级易于开始服务。

未来的路线图

这是一个非常令人兴奋的项目,我可以肯定的是,这个项目将在未来建立和扩展。

我想谈谈剩下的一些功能,可以在未来的路线图讨论中占据

一种)jcasc支持

如果用户选择了slack插件,我们需要问他一些类似的问题必威国际有限公司什么是松弛频道?什么是令牌?等等,并在此基础上生成a赌场文件。这个功能最初是计划加入服务的,但我们意识到这是一个自身能力的项目。

b)自动创建Pull请求

说明:允许用户创建配置文件,并立即在GitHub上打开Pull请求,而不会离开用户界面。这是最初计划使用GitHub Bot,我们开始工作了。但是,如果服务将被托管并因此将发展持有,我们有疑问。您可以在此处找到拉出请求:

  • GitHub控制器# 72

  • Pull请求创建函数# 66

c)与图像控制器协同

描述:此功能需要一些规划,我们可以提出的一些问题是:

a)我们能否生成图像(即图像控制器)。我们能提供多用途发电机的服务吗?

统计数据

这一阶段一直是最繁忙的所有阶段,它涉及很多工作,超过我最初在阶段预期的工作。虽然添加了代码行不是所做的工作指示,但是添加了800行的代码是我的真实个人里程碑。

把请求打开

26

增加的代码行数

1096.

DOCS的行添加

200.

关于作者
Sladyn Nunes.

Sladyn是印度孟买大学的计算机科学学生。他参加了2019年社区桥梁,以IDE集成的形式为jcasc插件提供开发工具,架构架构改进和配置扩展点配置为代码插件