DEV Community

Cover image for Phabricator is Phabulous

Phabricator is Phabulous

Ben Lovy on January 21, 2020

Phabricator is SO COOL y'all. I gotta tell you about it. Until this week the only collaborative toolset I'd ever used is what's built in to GitHu...
Collapse
 
tiguchi profile image
Thomas Werner

I've been using Phabricator for a while now and I love it. It's just hard to convince non-technical people to use it, since it can be visually quite overwhelming, and the obscure module names such as "Maniphest" are a constant source for head scratchers ("where do I find the tickets again?").

At least it's possible to customize the heck out of it, so I created a main menu side bar with reasonable, self-describing entries in it such as "Repositories" instead of "Diffusion" or "Code Review" instead of "Differential".

Other than that it's a great hub for keeping everything organized and in one place. In addition to what you mention in your post, I also want to point out that Phabricator has a pretty powerful feature for event handling and scripting. It can be used to set up simple and complex rules that trigger an action or that enforce access rights and policies, e.g. "start a Jenkins build if there's a new commit in a certain branch" or "refuse a commit if a protected file has been changed and the committer is not member of a specific project".

If anyone's interested in self-hosting Phabricator: it can be really a pain in the backside to install.
I created an interactive installation Bash script a couple years ago that does the whole installation and setup process automatically. Unfortunately it only supports Debian, but with a minor tweak Ubuntu should work as well

Collapse
 
deciduously profile image
Ben Lovy

Thanks for adding on to this! I haven't looked into Herald yet, it looks really cool (and clearly already put to good use in this organization).

Too bad about the install process - thankfully there's devs like you who don't put up with that :)

Collapse
 
lijukrks profile image
Liju Kuriakose

Thanks a lot that the installation script is very useful for me I am using the ubuntu server, but I managed to change the script as I need.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Great write-up!

I also love the Remarkup markup language specific to Phabricator. Compared to Markdown, it's just a lot more intuitive!

Also, you may not have discovered it yet, but by wrapping those codes in curly braces, like {P1} or {T567}, you actually get an embedded form of the object. Usually Differentials and Tasks are just listed with title and status, but other objects, like Pastes (P) and Slowvote Polls (V), the contents are actually displayed right there.

There's sort of a playful spirit about the whole thing that also makes it a joy to use, in my opinion. They even took the time to build a meme generator, Macro, right in. You upload images to Macro, and then you can embed them in any Remarkup text with a custom caption. Soooo much room for abus...uhm...productivity. ;)

Just for kicks, here's a (mostly) complete list of the applications in Phabricator to date. I've marked the ones I have never used with as *:

  • Almanac: Service directory for distributed computing/clusters.*
  • Audit: Browse code, post-commit reviews.
  • Badges: Reward users.
  • Calendar: Events and scheduling. (Prototype)
  • Conpherence: Chat with other users.
  • Countdown: Uhm...that's a countdown tool.
  • Dashboards: Customizable pages.
  • Differential: Pre-commit reviews (think pull request)
  • Diffusion: Repository browser and manager.
  • Drydock: Manage distributed build resources.*
  • Flags: Personal bookmarks of Phabricator objects.
  • Fund: Accept donations. (Prototype)*
  • Harbormaster: CI/CD integration.
  • Herald: Automatically issue alerts or perform actions.
  • Legalpad: Sign and track legal agreements.
  • Macro: Meme generator.
  • Maniphest: Issue tracker.
  • Nuance: Support desk task queues. (Prototype)*
  • Owners: Organize code by responsible user/team.
  • Phame: Blog (can even publish as external blog)
  • Paste: Store and edit text snippets; with highlighting and history.
  • Passphrase: Store credentials and other secrets.
  • People: User profiles.
  • Pholio: Graphics review (great for UI mockup discussion!)
  • Phortune: Manage accounts and billing. (Prototype)*
  • Phragment: Versioned artifact storage. (Prototype)*
  • Phriction: Wiki.
  • Phurl: Link shortener. (Prototype)
  • Ponder: Ask and answer questions, StackOverflow-style.
  • Projects: Manage projects, kanban boards, teams, tags
  • Releeph: Manage releases. (Prototype)*
  • Slowvote: Create, vote in, and view polls.
  • Spaces: Permissions control.
  • Tokens: Leave thumbs up, hearts, etc. on objects.
Collapse
 
deciduously profile image
Ben Lovy

I'm tempted to spin up a personal instance for my next large hobby project.

Collapse
 
codemouse92 profile image
Jason C. McDonald

Fun fact: Task Finder is actually just a Dashboard constructed for our specific instance, using custom queries with project tags. The Dashboard feature is so cool like that. :)

Collapse
 
deciduously profile image
Ben Lovy

...that IS a fun fact. I'll edit the post.

Collapse
 
isopropylcyanide profile image
Aman Garg

I echo the thoughts here. We, at Uber have been ❤️ Phab for years now.

Collapse
 
deciduously profile image
Ben Lovy

That's great! I noticed that since this posting, Phabricator is no longer actively maintained. Do you maintain an in-house fork?

Collapse
 
isopropylcyanide profile image
Aman Garg

Yea, Phacility no longer maintains Phabricator. However, we have been maintaining an internal fork for 3-4 years (often behind upstream). Our fork has improvements to address performance issues, scalability and integrations with many of our internal tools such as SubmitQueue.

Phab is still the defacto tool used for Code review and its integration. Task management was migrated from Manifest to JIRA last year. However, before the impending doom was announced by Phacility, we had already begun evaluating alternatives. We've issued notices to internal teams relying on Phab APIs to prepare room for a rewrite down the line. I surmise, a good couple of years before Phab is completely buried at Uber.

Collapse
 
dannypsnl profile image
林子篆

really cool, thanks for sharing.

Collapse
 
valentinogagliardi profile image
Valentino Gagliardi

Impressive tool!

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

They had me at free!