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,500 open tasks, all of which we plan to address eventually. This is just a summary of some of the major plans.
Applications
=====
This section describes long-term plans for first-party Phabricator applications.
Almanac
-----
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 and clusters maintained by installs.
Almanac shipped in 2016. Almanac is a core application.
- 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
-----
Audit allows users to perform post-publish code review.
Audit shipped in 2011. Audit is a core application.
- We have no major changes planned for Audit.
Badges
-----
Badges will be a UI hint that can designate special users (like administrators or employees) and award users for certain activity (like contributing to a project for the first time).
Badges is a prototype application.
- (T11167) We plan to unprototype badges.
Calendar
-----
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.
- (T7924) We plan to unprototype Calendar, make it useful for scheduling meetings and integrate it with other calendars (like Google Calendar).
Chatlog
-----
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
-----
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
-----
Conpherence is a messaging/chat application.
We shipped Conpherence in 2012. It is a core application.
- (T10364) We plan to improve UI/UX and general usability of Conpherence.
- We plan to build bot support into Conpherence.
- We plan to improve API access to Conpherence.
Dashboards
-----
Dashboards allow users to collect information from other applications in one place.
We shipped Dashboards in 2013. It is a core application.
- We haven no major plans to change Dashboards.
Daemons
-----
Daemons run background tasks.
We shipped Daemons in 2011. It is a core application.
- We have no major plans to change daemons.
Differential
-----
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
-----
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
-----
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
-----
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.
We shipped Drydock in 2016. It is a core application.
- We plan to continue improving the usability and power of Drydock.
Facts
-----
Facts is an ETL/reporting pipeline.
Facts is a prototype with major missing functionality.
- (T1562) We plan to make Facts work as designed.
Files
-----
Files is a file storage application.
We shipped Files in 2011. It is a core application.
- (T11367) We plan to add directory support to Files.
Feed
-----
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
-----
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
-----
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.
We shipped Harbormaster in 2015. It is a core application.
- We plan to make continue improving Harbormaster.
Home
-----
Home is the default application.
We shipped home in 2011. It is a core application.
- We have no major plans to change Home.
Legalpad
-----
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
-----
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".
Mail
-----
Mail (formerly MetaMTA) is a message (email/SMS) delivery application.
We shipped Mail 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
-----
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.
- (T8783) We plan to make Nuance work as designed.
OAuth Server
-----
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
-----
Owners is a tool for assigning ownership of a codebase to specific users.
We shipped Owners in 2011. It is a core application.
- (T2443) We plan to provide better access to owner information from the CLI.
Packages
-----
Packages is a package management system for distributing software, updates, and handling dependencies.
Packages is a prototype with little real functionality.
- (T5055) We plan to implement Packages to provide a distribution mecanism for arc extensions.
Passphrase
-----
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
-----
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.
Phame
-----
Phame is a internal or external blogging platform with basic permissions for viewing and publishing.
We shipped Phame in 2016. It is a core application.
- We have no plans to make major changes to Phame.
Phlux
-----
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.
Pholio
-----
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
-----
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
-----
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.
- (T11367) We plan to merge Phragment into Files.
Phrequent
-----
Phrequent is a time tracking application.
Phrequent is a prototype application with major missing functionality.
- We plan to make Phrequent work as designed.
Phriction
-----
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.
Phurl
-----
Phurl is a URL shortener and bookmarking application.
Phurl is used on this install, and you can reach this document by following this link: <https://phurl.io/u/starmap>
Phurl is a prototype application.
- (T6049) We plan to complete Phurl.
Ponder
-----
Ponder is a question and answer application.
We shipped Ponder in 2016.
- The future of Ponder is currently unclear. We aren't convinced it's a useful application.
Projects
-----
Projects is an organization application which allows you to manage objects in other applications.
We shipped Projects in 2011. Projects is a core application.
- (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
-----
Releeph is a release management application.
Releeph is a prototype application with major missing functionality.
- (T9530) We plan to substantially rewrite Releeph.
Search
-----
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
-----
Settings allows users to configure preferences.
We shipped Settings in 2011. Settings is a core application.
- We have no plans to make major changes to Settings.
Slowvote
-----
Slowvote is a polling application.
We shipped Slowvote in 2011. Slowvote is a core application.
- We have no major plans to change Slowvote.
Spaces
-----
Spaces are top-level policy containers which make it easier to manage policies on large groups of objects.
We shipped Spaces in 2015. Spaces is a core application.
- We have no major plans to change Spaces.
Tokens
-----
Tokens are a lightweight way to say "thanks" or show interest in something.
We shipped tokens in 2012. Tokens are a core application.
- (T11217) We plan to make Tokens modular, so users can define their own tokens.
Ecosystem
=====
This section describes changes planned to the Phabricator support ecosystem.
Platform
-----
Increasingly, Phabricator is a modular applications platform.
- (T5447) We plan to support third-party applications in a first-class way.
Infrastructure
=====
This section describes changes planned to Phabricator infrastructure systems.
Clustering
-----
See: #clusters
Phabricator can be deployed in a highly available cluster configuration.
- We plan to make various improvements to clusters so they are more powerful and easier to administrate.
Internationalization
-----
Internationalization is the process of making Phabricator available in other languages.
- (T5267) We plan to internationalize Phabricator.