很高兴你对Matermost open source project感兴趣。为了帮助翻译,请参阅本地化过程。 对于代码贡献,这里是过程:
1 选择一个Ticket
- 从Help Wanted GitHub问题列表中选择一个ticket。
- 在开始工作之前,comment让人们知道你正在处理这个问题。
- 如果您有任何问题,请将其发布到Mattermost forum或加入Contributors频道,并宣布您想要处理的故障单,以便将其分配给您。
欢迎没有ticket的轻微更正和改善的Pull requests
如果对现有行为的改动较小,少于20行的代码更改,则可以提交一个缺陷或增量改进的PR,不需要Help Wanted ticket。 所有提交的没有相应标签的请求将首先由核心团队产品经理审核。 一些小的更正和改进的例子包括:
- 修复帮助文本中的格式错误
- 修复Makefile中的success typo
- 修复Edit Webhooks屏幕中的Cancel按钮
- 修复了保存用户通知设置时Android应用崩溃的问题
- 修复最近提到的搜索不起作用
较大的pull request,包括需要修改文档或用户期望的请求,需要核心团队打开Help Wanted,以便测试,记录和支持更改。
与核心团队讨论opening a Help Wanted ticket的最佳方法是在the feature idea forum中开始对话。
2 安装Mattermost并设置你的Forks
一旦你有ticket:
- 按照developer setup instructions说明安装Mattermost。
- 在您的mattermost-server或mattermost-webapp repository中创建一个分支,并使用以下命令将
<branch name>
设置为正在使用的ticket的ID,例如PLT-394
:git checkout -b <branch name>
- 看看developer flow,了解如何使用Mattermost代码库。
3 准备Pull Request
在提交poll request(PR)之前,请检查:
- 您已经签署了Contributor License Agreement,因此您可以将其添加到Mattermost Approved Contributor List中。
- 你有一个用于改善代码的Help Wanted ticket
- 你的代码遵循Mattermost Style Guide,你已经运行了
make check-style
来检查样式错误。 - 包括新的服务器端功能的单元测试。
- 用户界面中的字符串包含在i18n/en.json服务器和webapp i18n/en.json本地化文件中。其他语言的文件将通过Mattermost Transtation Server自动更新,不需要包含在拉取请求中。
- 变化符合Fast, Obvious, Forgiving的用户体验指南。
- 如果更改要求用户理解新的概念或做出决定,PR帮助文档将提交给mattermost/docs。
- 改变经过彻底的测试。如果您的更改涉及到文本处理,请确保在提交PR之前至少在
/tests
中运行降级测试。运行loadtests:- 转到System Console > Developer并将Enable Testing Commands设置为true
- 运行
/test url test-markdown-basics.md
并按照说明操作 - 运行
/test url test-markdown-lists.md
并按照说明操作 - 运行
/test url test-tables.md
并按照说明操作
- 确认你squashed your commits。
4 提交Pull Request
提交PR时,请检查:
- PR is submitted against
master
- PR标题以Jira Ticket ID开头(例如
PLT-394
:见examples) - PR comment描述了这些变化以及该功能应该如何工作
- 多个存储库中的多个相关PR必须在说明中包含它们之间的依赖关系。
5 管理一个Open Pull Request
提交PR后,合并之前:
- 自动构建过程必须通过
- 如果构建失败,请检查错误日志以缩小原因。
- 有时,由于Travis CI中的问题,多个构建测试中的一个将会随机失败。 如果您只看到一个构建失败并且没有明确的错误消息,则可能是一个随机问题。 添加评论,以便更改的审阅者可以重新运行构建,或者关闭公共关系并重新提交,通常会清除问题。
- PM审查必须通过
- 产品经理将检查pull request以确保:
- 适合我们的产品路线图
- 按预期工作
- 满足用户体验指南
- 产品经理可能会回来一些错误或用户界面的改进来解决之前拉动请求移动开发审查。
- 产品经理将检查pull request以确保:
- CSS审查必须通过
- 任何包含CSS更改的pull request都应该由UX和HTML/CSS开发人员进行审查。
- Dev审查必须通过
- 两个核心提交者将审查拉取请求,并提供反馈或批准公关。
- 在拉取请求准备合并之前,需要解决任何注释。
如果您的邮寄地址包含在注册的Contributor License Agreement中,则在您的第一个拉取请求合并后,您可能会收到一个限量版Mattermost杯子作为感谢礼物。
核心提交者
Mattermost存储库上的核心提交者由经过审核的核心团队成员组成,包括社区贡献者以及来自Mattermost,Inc.的员工,这些人员都值得信赖来审查和合并PR。
- 核心提交者包括:Coreyhulen,crspeller,csduarte,enahum,grundleborg,hmhealey,jwilander
- 产品经理包括:asaadmahmood,esethna,it33,jasonblais,lfbrock