返回 登录
0

Chiefr:分布式项目开发模型和工具包

原文Chiefr Git Repo
作者:asciimoo
翻译:雁惊寒

本项目的目的是在项目成员之间共享和去中心化项目不同部分的开发和维护。Chiefr的灵感来自于Linux内核及其“get_contributors.pl”脚本的贡献模型。

1.png

为什么要使用Chiefr?

一个典型项目默认的贡献方案是完全集中化的。如果有一个贡献提交到项目或者仓库上,那么每个相关的人员都被通知到,并且各自手头的工作都会被中断,因此,这种方案并不适合于规模大的项目。对于拥有多个活跃成员的项目来说,随着项目的成长,其成员所浪费的时间也会越来越多,因为所有的贡献和问题都会发送给每个成员。

Chiefr的目标就是要通过更好的流程和工具来解决这个问题。

Chiefr如何工作?

Chiefr要求将单个项目拆分为多个逻辑段,每个段都有各自的维护者、存储库和可选的其他服务,比如邮件列表或者聊天群组。为方便管理,根据项目的大小,每个段可以切分成多个更小的段。

如果在把这个模型应用到自己项目的过程中遇到任何问题,请随时与我联系。

特性

对于维护者:
- 将代码库不同部分的所有权分配给不同的维护者
- 自动拉取请求的标签和相关维护者的任务

对于贡献者:
- 在提交贡献的时候,Chiefr会显示对应的仓库和维护者

使用方法

Chiefr工具

Chiefr同时也是一个依赖于.maintainers.ini的命令行工具,具有以下命令:
- submit:显示在哪里可以提交补丁
- list:列出项目所有的段
- update-pull-request:根据.maintainers.ini更新一个拉取请求的被指定人和主题
- ask:显示哪里可以提出有关某个主题的问题(尚未实现)
- add:将新的段添加到.maintainers.ini中(尚未实现)
- scan-project:搜索没有维护者的段(尚未实现)

维护者文件(.maintainers.ini

Chiefr需要在项目根目录中存在.maintainers.ini文件,该文件定义了项目的段。.maintainers.ini可以包含任意数量的段。

段定义了项目的逻辑块资源。

段的属性:
- Chiefs:负责当前段的项目成员列表,多个成员之间用逗号分隔
- Repository:用于提交补丁的仓库URL
- Chat:聊天服务URL
- MailList:邮件列表URL
- IssueTracker:问题跟踪URL
- Reviewers:负责代码审核的项目成员列表,多个成员之间用逗号分隔
- FilePatterns:用于指定要包含在此段中文件的正则表达式列表,用逗号分隔
- ContentPatterns:指定此段中应包含哪些补丁内容的正则表达式列表,用逗号分隔
- FileExcludePatterns:用正则表达式从FilePatterns匹配到的文件中排除出去,用逗号分隔
- ContentExcludePatterns:用正则表达式从ContentPatterns匹配到的文件中内容中排除出去,用逗号分隔
- Priority:如果某个更改集会影响多个段,则此优先级用于描述所列段的顺序
- Topics:段的主题,多个主题之间用逗号分隔

.maintainers.ini中有关段的示例:

[code]
Repository = https://github.com/asciimoo/chiefr
IssueTracker = https://github.com/asciimoo/chiefr/issues
Chiefs = @asciimoo
FilePatterns = .+.go
Priority = 1

安装

$ go get github.com/asciimoo/chiefr
$ "$GOPATH/bin/chiefr" --help

缺陷

如果遇到错误,或者提建议,请访问issue tracker

评论