贡献指南
我们欢迎和鼓励社区朋友为 Flynn 共享自己的力量。
由于该项目尚未稳定,所以后续开发过程会朝着某些侧重点依次展开。若 Flynn 还未具备"production ready" 特性,那么某些还未纳入研发排期的需求将不予接受。
请在贡献代码前熟悉本贡献指南和项目线路图。
除了贡献代码外,当然还有很多方法可以共建 Flynn:
- 修复 bug 或 提出问题
- 改进文档
贡献代码
除非你是在修复一个已知的 bug,否则我们强烈建议,在你开始提交代码前,通过 GitHub issue、IRC 或者email和 Flynn 核心团队探讨,以便确定你的工作,同 Flynn 技术路线以及架构是否一致。
所有的贡献通过 pull request 来完成。注意,所有贡献者修正的补丁都会经过严格审查。当一个 pull request 完成后,其他贡献者可以进行反馈,如果补丁通过审查,那么维护者就会接受该补丁并进行标注。若 pull request 测试未通过,那么作者需要更新 pull request 处理错误直到测试通过并且 pull request 合并成功。
所有的补丁都至少被一个维护者审查过(即使补丁的作者是维护者)
审查者通过补丁的时候应当标记 “LGTM”。如果补丁是由一个维护者提交并且有了写权限,pull request 应该在审查通过后由提交者进行合并。
代码风格
编程式,请遵循下列规则:
- Go 语言的代码应该匹配
gofmt -s
的输出 - Shell 脚本应当遵循 Google shell 编程规范
开发者的源证书
所有贡献必须接受 DCO
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
每次提交前,只需你的姓名和邮箱地址后,添加下面的信息就可以接受 DCO (使用 git commit -s
)
Signed-off-by: Jane Example <jane@example.com>
因为法律原因,不接受匿名和假名的贡献(如果这是个问题请与我们contact@flynn.io">联系)
Pull request 程序
在申请 pull request 前,请确保你有 GitHub 账户,如果你对这些不了解,请看 GitHub forking 和 pull request 文档。通俗的讲,Pull request 就是所谓的主干开发。新建 pull request 之前,请检查下列事项:
- 基于
master
创建一个特定分支,这样就不会搞乱了。 - 将本地代码合并到
master
上,并将本地重置为新的基线版本。 - 用命令
go test ./…
进行全项目的测试,并确保通过。 - 运行
gofmt -s
(如果项目是用 Go 语言写的)。 - 在所有提交中接受开发者的源证书。
- 确认每个提交都有一个子系统前缀(例如:
controller
:)
Pull requests 被看作是 “review requests“,维护者会对补丁的风格和实质进行反馈。
通常,所有的 pull request 必须功能测试通过才行。偶尔也会出现某个新功能,很难测试,这种情况下,请在提交消息中标记处并说明缘由。
讨论
我们在 Freenode 上使用 #flynn IRC 进行讨论。欢迎大家加入,提问,讨论bug。你可以通过BotBot.me 登录,若你本地未安装 IRC 客户端,也可通过webchat登录。
管理
不管你是 Flynn 老朋友,还是新朋友,我们专注于将这个社区打造为一个安全的社区并得到你的青睐。
- 我们致力于向所有人提供一个友好、安全、包容的环境,无论性别、性取向、残疾与否、种族、宗教信仰或类似的个人特征。
- 请不要使用昵称,这会破坏大家社区的友好、安全和包容的环境。
- 请保持善良和谦虚美德,不要变的那么尖酸刻薄和粗鲁。
- 如果你对别人进行辱骂和骚扰,我们将对你禁言。特别的,我们不会容忍排挤社会中边缘化的人的行为。
- 对别人的骚扰也是不可容忍的。无论你是谁,只要你觉得自己被社区成员骚扰,请立即联系该频道的 ops 或者 Flynn 核心团队的成员。
- 同样的,任何发送垃圾邮件、钓鱼等意在窃取的行为都是禁止的。
我们欢迎来讨论如何为社区提供一个友好的、安全的生产环境。如果你有任何问题、反馈或者建议,请contact@flynn.io">联系我们。