提交一个变更到Gerrit

在向Hyperledger Fabric代码库提交代码变更之前,请仔细阅读下述内容。 这些指南适用于开源新手,同样也适用于经验丰富的开源开发人员。

变更要求

这节包含了提交用于审核的代码变更的指南。关于如何使用Gerrit提交变更的信息,请参考 使用Gerrit进行工作

所有对Hyperledger Fabric的变更都是利用Gerrit通过Git commits进行提交的。 每个提交必须包括:

  • 一个简短的描述性的主题行,不超过55个字符,后面跟上一行空行。
  • 包含逻辑的描述或者变更的原因说明,后面再跟一行空行。
  • 一行Signed-off-by,跟在(Signed-off-by:)后面。
  • 一行Change-Id标识行,跟在(Change-Id:)后面。Gerrit不会接受没有这个标识的行。

一个具备以上格式的提交被认为是一个良好的提交。

注解

你不需要为新的提交提供Change-Id标识符; commit-msg 仓库关联的 Git钩子会自动添加。如果你接下来修改了之前的提价并且重新提交了, 然后使用与初始提交相同的Change-Id将保证Gerrit识别后续提交为与之前提交相关的修改提交。

发送给Gerrit的所有变更和主题必须是符合上述格式的。 除了上述的强制的格式之外,一个提交消息需要包括:

  • what 变更做了什么,
  • why 为什么你选择这种方法,
  • how 你怎么知道这种方法可行—例如,你运行了哪些测试。

提交必须 build cleanly ,从而避免破坏可分割性。 每个提交都需要有一个JIRA标识,在逻辑上独立。举个例子,一个提交可能会修复一个空白问题, 另一个提交可能会重命名一个函数,第三个提交可能会修改一些代码的功能。

下面详细说明了一个格式良好的提交:

[FAB-XXXX] purpose of commit, no more than 55 characters

You can add more details here in several paragraphs, but please keep
each line less than 80 characters long.

Change-Id: IF7b6ac513b2eca5f2bab9728ebd8b7e504d3cebe1
Signed-off-by: Your Name <commit-sender@email.address>

Signed-off-by: 行中的名字和邮箱必须和变更的作者信息相匹配。 请确保你的 .gitconfig 文件是正确的。

如果变更中包含了用以其他变更的代码,但是现在还不是最终的集合,请将这些信息告知审核者。

检查你的变更是否在CI校验通过了

为了保证代码的稳定性并限制可能的回归,我们使用基于Jenkins的持续集成(CI)流程, 该流程触发多个平台上的构建,并针对变更请求运行测试。你也有责任检查你的CR是否通过了测试。 在没有通过测试的前提下CR是不会被合并的。 在CRs通过CI的测试之前,你不应该期望任何人对你的CR作出回应。

为了检查CI的进度,只需要按照上一中推送给你的URL,在Gerrit上进行查看。 页面底部的“历史记录”会显示正在执行的CI过程对应的“Hyperledger Jobbuilder”所采取的一组操作。

完成后,如果成功了 “Hyperledger Jobbuilder” 会添加一个 a +1 投票 ,否则则添加一个 -1 投票

如果失败了,请浏览CR历史记录的链接。如果你发现CR有问题,那么请修改你的提交,并将它进行更新, 这样它会再次启动CI流程。

如果你发现你的CR没有问题,那么可能是CI过程因为某些和你的CR无关的原因导致的失败。 在这种情况下,你可能希望使用简单的 “reverify” 来重新启动CI过程。 有关此问题的更多信息和选项,请查看 CI 管理页面