This is a high level outline of some our long-term plans for Phabricator (like a roadmap, but looking far into the future). It lists things we plan to build eventually, over the course of **many years**.
This document spans an enormous amount of work and includes projects which will not be completed for many years. In some cases, we won't //start// building these projects for many years. By the time we start, some of these projects won't make sense anymore, so we may never build them or may build something very different than what we describe here.
This is not a prioritization or scheduling document. It doesn't tell you what we'll build next or what we'll build soon, just what we intend to build eventually. For near-term term planning, see the [[ Roadmap ]].
This is also not exhaustive. At the time of writing we have 1,200 open tasks, all of which we plan to address eventually. This is just a summary of some of the major plans.
This section describes long-term plans for first-party Phabricator applications.
Almanac is a service directory, like an augmented version of DNS. You ask it for "db.service.company.com" and it returns a record which includes addresses and may include other information (datacenters, read/write availability, etc).
Almanac also serves as a device inventory for tracking physical devices (like hosts or phones).
Almanac is an important component of building Phabricator clusters. Almanac is currently used in production in the Phacility cluster.
- We plan to generally make Almanac more user-friendly.
- We'd eventually like to integrate device status reporting/monitoring into Almanac (e.g., monitor load on hosts).
Audit allows users to preform post-publish code review.
Audit shipped in 2011. Audit is a core application.
- We generally plan to improve audit workflows, but don't have any major changes planned.
Badges will be a UI hint that can designate special users (like administrators or employees) and award users for certain activity.
Badges are a new application with no code written.
- (T6526) We plan to implement badges.
Calendar allows users to notify other users of availability, so no one expects you to review code while you're on vacation.
Calendar is a prototype application.
- We plan to make Calendar useful for scheduling meetings and integrate it with other calendars (like Google Calendar).
Chatlog records the history of an IRC chatroom or other similar chat.
Chatlog is a deprecated prototype application.
- (T6875) We plan to remove Chatlog.
Conduit is the Phabricator API.
We shipped Conduit in 2011. It is a core application.
- (T5955) We plan to make Conduit easier to use and improve support for binary data.
- (T5873) For compatibility, Conduit has lagged behind other infrastructure. We plan to make major changes to Conduit to modernize it.
Conpherence is a messaging/chat application.
We shipped Conpherence in 2012. It is a core application.
- (T7565) We plan to add chatrooms and other features to Conpherence to make it a more complete messaging application.
- We plan to improve API access to Conpherence.
Dashboards allow users to collect information from other applications in one place.
We shipped Dashboards in 2013. It is a core application.
- We plan to improve parameterization for dashboards, so you can write panels which depend on context like the current viewer.
- (T3583) We plan to completely replace the homepage with dashboards.
Daemons run background tasks.
We shipped Daemons in 2011. It is a core application.
- We have no major plans to change daemons.
Differential is a code review application.
We shipped Differential in 2011. It is a core application.
- (T182) We plan to let users commit revisions directly from Differential.
- (T5000, etc) We plan to generally improve integration between Differential and VCS operations.
Diffusion is a repository management application.
We shipped Diffusion in 2011. It is a core application.
- Generally, we aren't happy with some aspects of the Diffusion UI and UX, and plan to do work to improve them.
Diviner is a documentation generator.
We shipped Diviner in 2011, approximately. It is a core application.
- (T4558) We plan to make Diviner more useful to third parties. It is currently mostly useful only for generating Phabricator documentation.
Drydock is a software resource manager. Particularly, Drydock can create and destroy working copies in a scalable way that other processes (like test and build workflows) can leverage and reuse.
Drydock is a prototype with major missing functionality.
- We plan to make Drydock work as designed.
Facts is an ETL/reporting pipeline.
Facts is a prototype with major missing functionality.
- (T1562) We plan to make Facts work as designed.
Files is a file storage application.
We shipped Files in 2011. It is a core application.
- We have no major plans to change Files.
Feed is an event log which allows you to review activity across an install.
We shipped Feed in 2011. It is a core application.
- (T5726) We plan to make it easier to use Feed to publish events into remote systems.
Fund is a donation/funding application similar to Kickstarter. It was developed primarily to test payments infrastructure.
Fund is a prototype application.
- We have no specific plans around Fund.
Harbormaster is a build/CI pipeline and integration tool. It will be able to either run tests on an existing external test system or host tests itself. It can report test results from other systems.
Harbormaster is a prototype application with major missing functionality.
- (T1049) We plan to make Harbormaster work as designed.
Home is the default application.
We shipped home in 2011. It is a core application.
- (T3583) We plan to replace most of the content on Home with Dashboards.
- (T5317) We plan to make the first content a new administrator sees more useful in helping them set up an install.
Legalpad tracks legal documents and signatures, like a ToS or CLA.
We shipped Legalpad in 2013. It is a core application.
- (T5505) We plan to generally improve Legalpad's featureset.
Maniphest is a task tracking application.
We shipped Maniphest in 2011. It is a core application.
- Most plans which impact Maniphest are indirect. For example, see "Projects", "Nuance" and "Spaces".
MetaMTA is a message (email/SMS) delivery application.
We shipped MetaMTA in 2011. It is a core application.
- (T5791) We plan to write Herald rules for outbound mail and make it easier to understand why messages were or were not delivered.
- (T920) We plan to provide SMS support.
Nuance is a high-volume human-intelligence task queue. It will handle workloads like support email, content categorization, monitoring social media accounts, and responding to abuse reports: anything which requires humans to go through a long list of stuff quickly, making human-intelligence assessments about it and usually taking one of a few specific actions in response.
Nuance is a prototype application with major missing functionality.
- We plan to make Nuance work as designed.
The OAuth Server allows third-party applications to authenticate against Phabricator.
OAuth Server is a prototype, but used in production in the Phacility cluster.
- We plan to make the OAuth Server more useful for third-party users and improve OAuth access to the API.
Owners is a tool for assigning ownership of a codebase to specific users.
We shipped Owners in 2011. It is a core application.
- Owners limped out of Facebook and has barely changed since then, and is generally in bad shape. We plan to modernize it.
- (T2443) We plan to provide better access to owner information from the CLI.
Passphrase is a credential store.
We shipped Passphrase in 2012. It is a core application.
- (T4721) We plan to improve the usability of Passphrase.
- We plan to support more credential types.
- We plan to support optional client-side encryption.
Paste stores quick snippets of text, usually code or logfiles.
We shipped Paste in 2011. It is a core application.
- We have no plans to make major changes to Paste.
Phlux is a manually editable key-value store. It has poor performance characteristics, but good permission/audit characteristics.
Phlux is a prototype application. It works, but isn't really in use.
- The future of Phlux is uncertain. It may be obsoleted by Almanac/Phragment.
Phame is a blog.
Phame is a prototype application.
- We plan to generally improve Phame and make it more modern and useful.
Pholio is a design review application, similar to Differential but for pictures.
We shipped Pholio in 2013. It is a core application.
- We have no major plans to change Pholio.
Phortune is a billing application.
Phortune is a prototype. Phortune is in use in production in the Phacility cluster.
- We generally plan to improve the usability and featureset of Phortune.
Phragment is an artifact store for build processes. It might also become a hierarchical filestore for human users.
Phragment is a prototype application with major missing functionality.
- We plan to make Phragment work as designed.
Phrequent is a time tracking application.
Phrequent is a prototype application with major missing functionality.
- We plan to make Phrequent work as designed.
Phriction is a wiki.
We shipped Phriction in 2011. Phriction is a core application.
- We broadly plan to pull Phriction in a direction which gives it some CMS flavor, and give users more control over presentation and organization of documents.
Projects is an organization application which allows you to manage objects in other applications.
We shipped Projects in 2011. Projects is a core application.
- (T3670) We plan to add subprojects and improve usability for sprint/milestone project planning use cases.
- (T5474) We plan to implement triggers for workboard columns so they can have behaviors (like closing tasks which are dropped into them).
- (T3980) We plan to allow project membership to be dictated by an external source, like an LDAP group.
Releeph is a release management application.
Releeph is a prototype application with major missing functionality.
- (T2714) We plan to make Releeph work as designed.
Repositories is an old repository management application.
We shipped Repositories in 2011. Repositories is deprecated.
- We plan to move remaining functionality to Diffusion and remove the UI for repositories.
Search is a search application.
We shipped Search in 2011. Search is a core application.
- We have no plans to make major changes to search.
Settings allows users to configure preferences.
We shipped Settings in 2011. Settings is a core application.
- (T4103) We plan to let administrators configure default settings.
Slowvote is a polling application.
We shipped Slowvote in 2011. Slowvote is a core application.
- We have no major plans to change Slowvote.
Spaces are top-level policy containers which make it easier to manage policies on large groups of objects.
Spaces is a new application with no code written.
- (T3820) We plan to implement Spaces as designed.
Tokens are a lightweight way to say "thanks" or show interest in something.
We shipped tokens in 2012. Tokens are a core application.
- We have no major plans to change Tokens.
This section describes changes planned to the Phabricator support ecosystem.
Increasingly, Phabricator is a modular applications platform.
- (T5447) We plan to support third-party applications in a first-class way.
This section describes changes planned to Phabricator infrastructure systems.
Internationalization is the process of making Phabricator available in other languages.
- (T1139) We plan to internationalize Phabricator.
Scalability / Availability
Phabricator currently has some ability to run in a cluster configuration, but not all services are fully scalable.
- (T4209) We plan to improve general support for clustering and service scalability.
- (T4292) We plan to implement repository replication with multiple masters.
- (T6930) We plan to create a toolset to make it easier for users to understand and address performance problems.