Phabricator 是 Phabulous
Phabricator 太酷了!我一定要跟你们说说。
直到本周,我唯一使用过的协作工具集就是 GitHub 内置的工具。当然,它确实很棒。一旦项目发展到一定规模,Issue 和 Milestone 就比//TODO评论更适合用来组织项目。
不过, Phabricator则完全是另一个层次。它最初是 Facebook 内部为了协调软件开发而创建的,项目维护者Evan Priestly最终离开了公司,创立了Phallacity公司,并全身心投入到 Phabricator 的开发中。
一体式
Phabricator 不仅仅是 GitHub 项目管理工具,它是一套相互关联的工具套件。我相信它只是众多同类工具之一,你们中的大多数人可能在工作中也使用类似的集成解决方案,但这是我第一次使用,而且我非常喜欢它。
微分
它与 Git 集成,如果您熟悉 GitHub Pull Request,那么它的对应物是差异修订:
所有内容都显示在同一页面上,方便浏览此版本的历史变更记录,并查看整个存储库中的所有更改:
港务长
Harbormaster是内置的持续集成工具:
该项目已与Jenkins集成,实现了完全自动化的 CI/CD 流水线。
曼尼菲斯特
Maniphest 用于处理任务级别的工作——这与 GitHub Issue 非常相似。
您可以关联子任务和父任务,以及特定的差异化修订。
仪表盘
Phabricator 的可定制性非常强。以下是@codemouse92为此实例创建的定制版“任务查找器”仪表板:
通过正确利用项目和求助标签,您可以轻松引导潜在的贡献者找到代码的简单入口点。
先驱报
Herald 是一个规则引擎,允许你将逻辑脚本嵌入到网站的许多部分。它可以自动为新的差异修订版本添加项目标签,添加订阅者,或者拒绝没有相应项目关联的团队成员的提交——功能远不止这些。我还没用过它,因为它已经为这个实例配置好了,但显然它功能非常强大。
摩擦
Phriction 是内置的 wiki。
没错,它就是一个维基百科。这并不奇怪,但整合进去还是很有用的。
项目
这是组织 Maniphest 任务的一种方式。它采用看板式工作板:
就像在家一样!
思考
“思考”是一个开放式的、一般性的讨论空间,不专门针对任何特定的任务或差异化修订。
当然,这些也是 Phabricator 对象。
普尔
它甚至还内置了网址缩短功能:
超级方便!
康弗伦斯
Conpherence 是内置的聊天应用程序——可以把它想象成精简版的 Slack:
名字/Pholio
除了上述部分之外,还有专门的空间用于上传静态资源,例如图像和字体,以及发布博客文章的地方——当然,所有这些都会生成可超链接的 Phabricator 对象!
超链接至 MAX
这是最精彩的部分。每一项内容都会获得一个唯一的标识符。差异修订版本可能获得一个唯一标识符D238,任务可能获得一个唯一标识符T1235,聊天室可能获得一个唯一标识符Z23,用户可能获得一个@bdlovy唯一标识符,等等。
最棒的是,只要在任何地方提到这些标签,它们都会在两个地方都变成超链接。每个 Phabricator 对象 ID 都会被一个灰色方框包围:
那个灰色方框是指向相关对象的链接——现在该对象又有一个指向该对象的链接:
内置的聊天小部件也是一个 Phabricator 对象,因此,如果您在聊天室中请求有关特定任务的帮助,您将在任务页面上获得一个链接,指向聊天室日志中的特定位置。
当然,这些对象 ID 也是可以搜索的:
奥术师
Phabricator 提供了一个命令行工具,几乎可以在命令行中启用所有 Web 应用程序功能。目前我只用它来创建新的差异化版本。在单独的分支中完成更改后,您可以git commit运行该工具arc diff。
您也可以在这里使用上述标签!当您提交时arc diff,您的$EDITOR项目将打开并允许您编写差异化修订部分:
Scrobble BitClass2
Summary: Progress towards T1225: Scrobble ALL the bits. Bits from BitClass2 have now been fully scrobbled.
Test Plan: Test suite has been updated
Reviewers: @smartperson
Subscribers: @peerwhoknowsstuff
Revert Plan: Reset to commit f928ybrv9q48th from landing D291
编辑、保存,搞定!所有已配置的代码检查工具和端到端测试都会自动运行,CI/CD 流程也会启动,并且您会收到一个指向新创建的差异版本链接,该链接会添加到您的 CLI 中。同时,T1225、提交 f928ybrv9q48th 和差异版本 D291 的 Phabricator 页面也会自动更新,添加指向您刚刚创建的新版本的链接,这仅仅是因为您提到了它。此外,所有被提及的审阅者和订阅者都会收到通知。
当您在 GitHub 上托管 Phabricator 镜像时,会收到以下完整消息。Phabricator:
GitHub:
这是好东西。
PHP
如果你一直关注的话,你会发现这些工具里有好几个都带点“phunky”的元素ph。没错,这个工具是用PHP实现的——不管你喜不喜欢,它都是必备工具。它可能不再那么“性感”了(不管这到底是什么意思),但不可否认的是,无论任务多么复杂,它都能出色地完成。
开源软件
Phabricator 是免费的!没错,它是一款非常实用的开源软件,而且完全免费。源代码托管在 GitHub(以及 Phabricator 官网)上,您可以直接在自己的硬件上运行。他们也提供托管实例和企业级支持,但您现在就可以搭建一个个人使用的实例(除非您的网络服务提供商有相关规定)。
熟悉这个工具的过程真是太棒了——就实用性而言,它远胜 GitHub。虽然每个组件本身并不一定新颖或具有突破性,但它们之间的配合却无比流畅。不过,对我来说,它真正的优势在于其强大的互联性。Phabricator 对象之间的自动超链接简单直观,而且你完全无需操心。我已经感觉自己被它惯坏了。
综上所述,这也是我第一次在 GitHub 之外使用类似的工具——你还有什么要推荐的吗?
照片由 Ant Rozetsky 拍摄,来自 Unsplash
文章来源:https://dev.to/decidously/phabricator-is-phabulous-294p














