代码贡献
简介
Neo4j 社区是一个围绕 Neo4j 图数据库的软件和组件的免费软件和开源社区。它由 Neo Technology 赞助,该公司提供基础设施(不同类型的托管、文档等)以及人员来管理它。Neo4j 社区是一个开放的社区,因为它欢迎任何接受基本贡献标准的成员。
贡献可以有多种形式(文档、讨论、错误报告)。本文档概述了代码贡献者的治理规则。
贡献者角色
每个贡献代码的个人都以角色的上下文进行贡献(一个个人可以有多个角色)。角色定义了他们的责任和权限
-
补丁提交者 是希望向现有组件贡献补丁的人员。请参见下面的 贡献工作流程。
-
提交者 可以直接向一个或多个组件贡献代码。
-
组件维护者 负责特定组件。他们可以
-
在他们组件的存储库中提交代码,
-
管理存储库的工单,
-
授予存储库的推送权限。
-
-
Neo4j 管理员 管理 Neo4j 基础设施。他们
-
定义新的组件并分配组件维护权,
-
推动、指导和指导 Neo4j 组件开发。
-
贡献工作流程
单元测试
如果您为我们提供了覆盖您编写的代码的小型、可读的单元测试,那么您的更改被接受的机会会更高。此外,请确保您的代码不会破坏任何现有的测试。请注意,根据您更改的内容,可能还需要测试下游组件,。
要运行测试,请使用 Maven 而不是您的 IDE,以确保其他人可以复制您的测试运行。在任何给定组件中运行 Neo4j 测试的命令是 mvn clean test
。
单元测试的总体结构如下所示
@Test
public void myTest()
{
// Given
[ Setup code here, setting the stage and
parameters that are relevant ]
// When
[ The code that is being tested, preferably
just one line, like calling a method ]
// Then
[ Assertions on the result ]
}
代码风格
Neo4j 代码风格维护在 http://neo4j.github.io/。
提交消息
请在提供良好的提交消息时多加注意;可以在 http://chris.beams.io/posts/git-commit/ 找到关于良好实践的优秀总结。请同时考虑以下指南
-
使用英语。这包括正确的标点符号和拼写。提交消息应该能够一目了然地传达一些信息——它们不是聊天室。
-
请记住,提交是一个更改集,它描述了跨多个文件的连贯更改集。尝试将每个提交作为一个逻辑更改进行分组。解释它更改了什么。如果您必须重做工作,您可能需要在进行拉取请求之前清理您的提交日志。
-
如果您修复了与工单相关的错误或问题,请在消息中引用该工单。例如,“添加了这个然后更改了那个。这修复了 #14。” 仅在提交中提及 #xxx 将将其连接到具有该编号的 GitHub 问题,请参阅 GitHub 问题。以下任何同义词也将起作用
-
修复 #xxx
-
已修复 #xxx
-
修复 #xxx
-
关闭 #xxx
-
关闭 #xxx
-
已关闭 #xxx。
-
-
请记住传达意图。不要过于简短,也不要提供太多细节。这就是
git diff
的作用。
签署 CLA
贡献的一个关键方面是 贡献者许可协议。简而言之:请确保签署 CLA,否则 Neo4j 项目将无法接受您的贡献。
不要合并,而是使用变基!
因为我们希望每个贡献都包含在一个提交中,所以拉取请求中不允许合并提交。合并很混乱,并且应该只在必要时进行,例如,当将分支合并到 master 以记住代码来自何处时。
如果您想更新您的开发分支以合并来自 master 的最新更改,请使用 git rebase
。有关如何使用变基的详细信息,请参阅 Git 手册中的变基内容:Git 手册。