工欲善其事,必先利其器。开源社区提供了大量易用的开发协作工具。掌握好这些工具,对于高效的开发来说十分重要。
超级账本项目受到 Linux 基金会的支持,采用 Linux Foundation ID(LF ID)作为社区唯一的 ID。
个人申请 ID 是完全免费的。可以到 https://identity.linuxfoundation.org/ 进行注册。
用户使用该 ID 即可访问到包括 Jira、Gerrit、RocketChat 等社区的开发工具。
Jira 是 Atlassian 公司开发的一套任务管理和事项跟踪的追踪平台,提供 Web 操作界面,使用十分方面。
社区采用 jira.hyperledger.org 作为所有项目开发计划和任务追踪的入口,使用 LF ID 即可登录。
登录之后,可以通过最上面的 Project 菜单来查看某个项目相关的事项,还可以通过 Create 按钮来快速创建事项(常见的包括 task、bug、improvement 等)。
用户打开事项后可以通过 assign 按钮分配给自己来领取该事项。
一般情况下,事项分为 TODO(待处理)、In Process(处理中)、In Review(补丁已提交、待审查)、Done(事项已完成)等多个状态,由事项所有者来进行维护。
Gerrit 是一个负责代码协同的开源项目,很多企业和团队都使用它负责代码仓库管理和代码的审阅工作。Gerrit 使用十分方便,提供了基于 Web 的操作界面。
社区的 Fabric、Cello 等项目都采用 gerrit.hyperledger.org 作为官方的代码仓库,并实时同步代码到 github.com/hyperledger 作为只读的镜像。
用户使用自己的 LF ID 登录之后,可以查看所有项目信息,也可以查看自己提交的补丁等信息。每个补丁的页面上会自动追踪修改历史,审阅人可以通过页面进行审阅操作,赞同提交则可以加分,发现问题则注明问题并进行减分。
除了邮件列表外,社区也为开发者们提供了在线沟通的渠道—— RocketChat。
RocketChat 是一款功能十分强大的在线沟通软件,支持多媒体消息、附件、提醒、搜索等功能,虽然是开源软件,但在体验上可以跟商业软件 Slack 媲美。支持包括网页、桌面端、移动端等多种客户端。
社区采用 chat.hyperledger.org 作为服务器。最简单的,用户直接使用自己的 LF ID 登录该网站,即可访问。之后可以自行添加感兴趣项目的频道。
用户也可以下载 RocketChat 客户端,添加 chat.hyperledger.org 作为服务器即可访问社区内的频道,跟广大开发者进行在线交流。
一般地,每个项目都有一个同名的频道作为主频道,例如 #Fabric
,#Cello
等。同时各个工作组也往往有自己的频道,例如大中华区技术工作组的频道为 #twg-china
。
最后,各个项目和工作组都建立了专门的邮件列表,作为常见的交流渠道。当发现问题不知道往哪里报告时,可以先发到邮件列表进行询问,一般都能获得及时的回答。
例如大中华区技术工作组的频道为 [email protected]
。
用户在 https://lists.hyperledger.org/g/main/subgroups 看到社区已有的邮件列表并选择加入。
为什么我在社区提出的问题会过了很长时间也无人回应?
开源社区是松散自组织形式,大部分开发者都是利用业余时间进行开发和参与社区工作。因此,在社区提出问题时就必须要注意问题的质量和提问的方式。碰到上述情况,首先要先从自身找原因。
如果能做到下面几点,会让你所提出的问题得到更多的关注。
- 正确的渠道:这点十分重要。不同项目和领域有各自的渠道,一定要在相关的渠道进行提问而不要问跟列表主题不相关的话题,例如每个项目相关问题应该发送到对应的邮件列表。
- 问题的新颖性:在提问之前,应该利用包括搜索引擎、技术文档、邮件列表等常见方式进行查询,确保提出的问题是新颖的,有价值的,而不是已经被回答过多遍的常识性问题。
- 适当的上下文:不少提问者的问题中只包括一条很简单的错误信息,这样会让社区的开发者有心帮忙也无力回答。良好的上下文包括完整的环境信息、所使用的软件版本、所进行操作的详细步骤、问题相关的日志、以及自己对问题的思考等。这些都可以帮助他人快速重现问题并帮忙回答。
- 注意礼仪:虽然技术社区里大家沟通方式会更为直接一些,但懂得礼仪毫无疑问是会受到欢迎的。要牢记,别人的帮助并非是义务的,要对任何来自他人的帮助心存感恩。