分布式項目開發(fā)模型Chiefr分析
本項目的目的是在項目成員之間共享和去中心化項目不同部分的開發(fā)和維護。Chiefr的靈感來自于Linux內(nèi)核及其“get_contributors.pl”腳本的貢獻模型。
為什么要使用Chiefr?
一個典型項目默認的貢獻方案是完全集中化的。如果有一個貢獻提交到項目或者倉庫上,那么每個相關的人員都被通知到,并且各自手頭的工作都會被中斷,因此,這種方案并不適合于規(guī)模大的項目。對于擁有多個活躍成員的項目來說,隨著項目的成長,其成員所浪費的時間也會越來越多,因為所有的貢獻和問題都會發(fā)送給每個成員。
Chiefr的目標就是要通過更好的流程和工具來解決這個問題。
Chiefr如何工作?
Chiefr要求將單個項目拆分為多個邏輯段,每個段都有各自的維護者、存儲庫和可選的其他服務,比如郵件列表或者聊天群組。為方便管理,根據(jù)項目的大小,每個段可以切分成多個更小的段。
如果在把這個模型應用到自己項目的過程中遇到任何問題,請隨時與我聯(lián)系。
特性
對于維護者:
- 將代碼庫不同部分的所有權分配給不同的維護者
- 自動拉取請求的標簽和相關維護者的任務
對于貢獻者:
- 在提交貢獻的時候,Chiefr會顯示對應的倉庫和維護者
使用方法Chiefr工具
Chiefr同時也是一個依賴于.maintainers.ini的命令行工具,具有以下命令:
- submit:顯示在哪里可以提交補丁
- list:列出項目所有的段
- update-pull-request:根據(jù).maintainers.ini更新一個拉取請求的被指定人和主題
- ask:顯示哪里可以提出有關某個主題的問題(尚未實現(xiàn))
- add:將新的段添加到.maintainers.ini中(尚未實現(xiàn))
- scan-project:搜索沒有維護者的段(尚未實現(xiàn))
維護者文件( .maintainers.ini)
Chiefr需要在項目根目錄中存在.maintainers.ini文件,該文件定義了項目的段。.maintainers.ini可以包含任意數(shù)量的段。
段
段定義了項目的邏輯塊資源。
段的屬性:
- Chiefs:負責當前段的項目成員列表,多個成員之間用逗號分隔
- Repository:用于提交補丁的倉庫URL
- Chat:聊天服務URL
- MailList:郵件列表URL
- IssueTracker:問題跟蹤URL
- Reviewers:負責代碼審核的項目成員列表,多個成員之間用逗號分隔
- FilePatterns:用于指定要包含在此段中文件的正則表達式列表,用逗號分隔
- ContentPatterns:指定此段中應包含哪些補丁內(nèi)容的正則表達式列表,用逗號分隔
- FileExcludePatterns:用正則表達式從FilePatterns匹配到的文件中排除出去,用逗號分隔
- ContentExcludePatterns:用正則表達式從ContentPatterns匹配到的文件中內(nèi)容中排除出去,用逗號分隔
- Priority:如果某個更改集會影響多個段,則此優(yōu)先級用于描述所列段的順序
- Topics:段的主題,多個主題之間用逗號分隔
.maintainers.ini中有關段的示例:
?。踓ode]Repository = https://github.com/asciimoo/chiefrIssueTracker =https://github.com/asciimoo/chiefr/issuesChiefs = @asciimooFilePatterns = .+.goPriority =1安裝 $ go get github.com/asciimoo/chiefr $ “$GOPATH/bin/chiefr”--help缺陷
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%