2017-01-11 08:01:24 +01:00
|
|
|
|
Zulip Roadmap
|
|
|
|
|
=============
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
## Introduction
|
|
|
|
|
|
|
|
|
|
Zulip has received a great deal of interest and attention since it was
|
|
|
|
|
released as free and open source software by Dropbox. That attention
|
|
|
|
|
has come with a lot of active development work from members of the
|
|
|
|
|
Zulip community. From when Zulip was released as open source in late
|
2016-11-11 06:31:27 +01:00
|
|
|
|
September 2015 through today (early November, 2016), more than 150
|
|
|
|
|
people have contributed over 1000 pull requests to the various Zulip
|
|
|
|
|
repositories, the vast majority of which were submitted by Zulip's
|
|
|
|
|
users around the world (as opposed to the small core team that reviews
|
|
|
|
|
and merges the pull requests).
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
In any project, there can be a lot of value in periodically putting
|
|
|
|
|
together a roadmap detailing the major areas where the project is
|
|
|
|
|
hoping to improve. This can be especially important in an open source
|
2016-11-11 06:31:27 +01:00
|
|
|
|
project like Zulip, where development is distributed across many people
|
2016-04-09 23:16:39 +02:00
|
|
|
|
around the world. This roadmap is intended to organize a list of the
|
2016-06-02 19:16:56 +02:00
|
|
|
|
most important improvements that should be made to Zulip in the
|
2016-04-09 23:16:39 +02:00
|
|
|
|
relatively near future. Our aim is to complete most of these
|
2016-11-11 06:31:27 +01:00
|
|
|
|
improvements by February 2017 and then prepare a new roadmap then.
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
This document is not meant to constrain in any way what contributions
|
|
|
|
|
to Zulip will be accepted; instead, it will be used by the Zulip core
|
|
|
|
|
team to prioritize our efforts, measure progress on improving the
|
2016-11-11 06:31:27 +01:00
|
|
|
|
Zulip product and hold ourselves accountable for making Zulip improve
|
|
|
|
|
rapidly.
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-11 06:31:27 +01:00
|
|
|
|
This roadmap is the best place for contributors to look for
|
|
|
|
|
substantial projects that will definitely be of value to the community
|
|
|
|
|
(if you're looking for a starter project, see the
|
|
|
|
|
[guide to getting involved with Zulip](https://github.com/zulip/zulip#how-to-get-involved-with-contributing-to-zulip)).
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-11 06:31:27 +01:00
|
|
|
|
We periodically update this roadmap by adding strikethrough to issues
|
|
|
|
|
that have been resolved, but the linked GitHub issues are the most
|
|
|
|
|
up-to-date source for that information.
|
2016-06-22 02:30:33 +02:00
|
|
|
|
|
2017-05-09 23:31:29 +02:00
|
|
|
|
Update: As of May 2017, we are approaching the point where we need to
|
|
|
|
|
update the roadmap due to much of it being completed.
|
|
|
|
|
|
2016-11-11 06:31:27 +01:00
|
|
|
|
Without further ado, below is the current Zulip roadmap.
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-11 06:31:27 +01:00
|
|
|
|
## Major projects
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-11 06:31:27 +01:00
|
|
|
|
There are 2 huge projects that Zulip is working on right now that are
|
|
|
|
|
too big to have a coherent GitHub issue:
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-11 06:31:27 +01:00
|
|
|
|
* We are working with a world-class designer on a major visual
|
2017-05-09 23:31:29 +02:00
|
|
|
|
redesign of the Zulip webapp. Already complete is completely
|
|
|
|
|
redesining the streams and settings UIs, logged-out pages, and various
|
|
|
|
|
other major components.
|
2016-11-11 06:31:27 +01:00
|
|
|
|
|
|
|
|
|
* We are writing a
|
|
|
|
|
[new React Native iOS app for Zulip](https://github.com/zulip/zulip-mobile)
|
|
|
|
|
to replace the old iOS app. The new app is progressing rapidly, but
|
2017-05-09 23:31:29 +02:00
|
|
|
|
is not yet feature complete. We expect it to be in the app store in
|
|
|
|
|
May 2017.
|
2016-07-20 19:28:35 +02:00
|
|
|
|
|
2016-04-09 23:16:39 +02:00
|
|
|
|
## Core User Experience
|
|
|
|
|
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Provide shorter UI/Keyboard sequence to edit the last
|
|
|
|
|
message](https://github.com/zulip/zulip/issues/1147)</strike>
|
|
|
|
|
* <strike>[Better drafts
|
|
|
|
|
management](https://github.com/zulip/zulip/issues/1717)</strike>
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Make clicking on desktop notifications renarrow
|
|
|
|
|
properly](https://github.com/zulip/zulip/issues/1996)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
* [Add pretty bubbles for recipients in the compose box](https://github.com/zulip/zulip/issues/595)
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Make right sidebar buddy list UI scale well to large
|
|
|
|
|
teams](https://github.com/zulip/zulip/issues/236)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
* [Display stream descriptions more prominently](https://github.com/zulip/zulip/issues/164)
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Add support for managing uploaded files](https://github.com/zulip/zulip/issues/454)</strike>
|
2016-11-02 20:27:56 +01:00
|
|
|
|
|
|
|
|
|
## Social features
|
|
|
|
|
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Add support for showing "user is typing" notifications, at least
|
|
|
|
|
for private messages](https://github.com/zulip/zulip/issues/150)</strike>
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Support lightweight emoji
|
|
|
|
|
"reactions"](https://github.com/zulip/zulip/issues/541)</strike>
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Open graph previews of generic
|
|
|
|
|
websites](https://github.com/zulip/zulip/issues/406)</strike>
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Add a "join Zulip chat" badge for projects that use Zulip to
|
|
|
|
|
document that nicely](https://github.com/zulip/zulip/issues/2270)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-02 20:30:47 +01:00
|
|
|
|
## Real-time sync
|
|
|
|
|
|
|
|
|
|
The overall goal is to eliminate the few known issues where Zulip does
|
|
|
|
|
not provide a seamless real-time sync experience.
|
|
|
|
|
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Notification bot advertisements for new streams don’t handle stream
|
|
|
|
|
renames](https://github.com/zulip/zulip/issues/426)</strike>
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Avatar/name changes don’t propagate to already-sent
|
|
|
|
|
messages](https://github.com/zulip/zulip/issues/1932)</strike>
|
2016-11-02 20:30:47 +01:00
|
|
|
|
* [Advance the pointer / where we load the user to based on unread
|
|
|
|
|
counts in home view](https://github.com/zulip/zulip/issues/1529)
|
|
|
|
|
* [Fix the known bug where messages could be incorrectly marked as read](https://github.com/zulip/zulip/issues/2091)
|
|
|
|
|
|
2016-11-02 20:29:16 +01:00
|
|
|
|
## Onboarding issues
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
This category focuses on issues users experience when installing a new
|
2016-11-02 20:29:16 +01:00
|
|
|
|
Zulip server, setting up a new Zulip realm, or starting to use Zulip.
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-02 20:29:16 +01:00
|
|
|
|
* [Move Zulip's prompt for permission to display notifications to be
|
|
|
|
|
manually triggered](https://github.com/zulip/zulip/issues/1189)
|
|
|
|
|
* [Add a mechanism for deleting early test messages (e.g.,
|
|
|
|
|
administrators can hard-delete
|
|
|
|
|
messages)](https://github.com/zulip/zulip/issues/135)
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Allow customizing emails when inviting new users](https://github.com/zulip/zulip/pull/1409)</strike>
|
2016-11-02 18:41:40 +01:00
|
|
|
|
|
|
|
|
|
## Production installation issues
|
|
|
|
|
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Document or better script solution to rabbitmq startup
|
|
|
|
|
issues](https://github.com/zulip/zulip/issues/465)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
* [Merge a supported way to use Zulip in Docker in production
|
|
|
|
|
implementation](https://github.com/zulip/zulip/pull/450).
|
|
|
|
|
|
|
|
|
|
## Administration and management
|
|
|
|
|
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Make list of allowed domains web-configurable](https://github.com/zulip/zulip/issues/651)</strike>
|
|
|
|
|
* <strike>[Statistics display for realm and server
|
|
|
|
|
administrators](https://github.com/zulip/zulip/issues/2052)</strike>
|
|
|
|
|
* <strike>[Keep track of which users added which realm
|
|
|
|
|
emoji](https://github.com/zulip/zulip/issues/984)</strike>
|
|
|
|
|
* <strike>[Add setting to enable any user to add new realm
|
|
|
|
|
emoji](https://github.com/zulip/zulip/issues/978)</strike>
|
2016-11-18 02:15:17 +01:00
|
|
|
|
* <strike>[Make realm filters web-configurable](https://github.com/zulip/zulip/pull/544)</strike>
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* [Improve administrative controls for managing streams](https://github.com/zulip/zulip/issues/3783)
|
2016-11-02 20:29:16 +01:00
|
|
|
|
* [Enhance the LDAP integration and make it web-configurable](https://github.com/zulip/zulip/issues/715)
|
|
|
|
|
* [Add a SAML integration for
|
|
|
|
|
Zulip](https://github.com/zulip/zulip/issues/716)
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-02 20:30:47 +01:00
|
|
|
|
## Scalability and performance
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-02 20:30:47 +01:00
|
|
|
|
Scalability and performance are not currently major problems for
|
|
|
|
|
Zulip; it already scales well to thousands of users and is
|
|
|
|
|
significantly faster than proprietary alternatives. So, this is not a
|
|
|
|
|
major focus area for the project.
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-02 20:30:47 +01:00
|
|
|
|
* [Make the Zulip Tornado service support horizontal
|
|
|
|
|
scaling](https://github.com/zulip/zulip/issues/445)
|
|
|
|
|
* [Make presence system scale well to 10000 users in a
|
|
|
|
|
realm.](https://github.com/zulip/zulip/issues/728)
|
2016-04-09 23:16:39 +02:00
|
|
|
|
* [Support running queue workers multithreaded in production to
|
2016-11-02 20:30:47 +01:00
|
|
|
|
decrease minimum memory
|
|
|
|
|
footprint](https://github.com/zulip/zulip/issues/34)
|
|
|
|
|
* [Improve @-mentioning syntax based on stronger unique
|
|
|
|
|
identifiers](https://github.com/zulip/zulip/issues/374)
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
## Technology improvements
|
|
|
|
|
|
2016-11-02 20:32:28 +01:00
|
|
|
|
* [Add support for Zulip running purely on Python
|
|
|
|
|
3](https://github.com/zulip/zulip/issues/256)
|
|
|
|
|
* [Automatic thumbnailing of uploaded images' previews to save
|
|
|
|
|
bandwidth](https://github.com/zulip/zulip/issues/432)
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Upgrade Zulip to use Django 1.10. The patches
|
2016-04-09 23:16:39 +02:00
|
|
|
|
needed to run Zulip were merged into mainline Django in Django 1.10,
|
2016-11-02 20:32:28 +01:00
|
|
|
|
so this will mean we don't need to use a fork of Django
|
2017-02-07 19:11:24 +01:00
|
|
|
|
anymore.](https://github.com/zulip/zulip/issues/3)</strike>
|
2016-11-02 20:32:28 +01:00
|
|
|
|
* [Upgrade and remove from codebase all unnecessarily vendored JS
|
|
|
|
|
libraries](https://github.com/zulip/zulip/issues/1709)
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Add support for changing users' email
|
|
|
|
|
addresses](https://github.com/zulip/zulip/issues/734)</strike>
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Migrate from jslint to eslint](https://github.com/zulip/zulip/issues/535)</strike>
|
2016-11-02 20:32:28 +01:00
|
|
|
|
* [Replace the slow closure-compiler based static asset toolchain](https://github.com/zulip/zulip/issues/693)
|
|
|
|
|
* [Use a modern JavaScript bundler like webpack](https://github.com/zulip/zulip/issues/695)
|
|
|
|
|
* [Add support for building frontend features in something like React](https://github.com/zulip/zulip/issues/694)
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
## Technical Debt
|
|
|
|
|
|
|
|
|
|
While the Zulip server has a great codebase compared to most projects
|
|
|
|
|
of its size, it takes work to keep it that way.
|
|
|
|
|
|
|
|
|
|
* [Migrate most web routes to REST API](https://github.com/zulip/zulip/issues/611)
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Split Tornado subsystem into a separate Django app](https://github.com/zulip/zulip/issues/729)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
* [Refactor zulip.css to be broken into components](https://github.com/zulip/zulip/issues/731)
|
|
|
|
|
|
|
|
|
|
## Security
|
|
|
|
|
|
2016-11-02 20:35:11 +01:00
|
|
|
|
* [Add support for 2-factor authentication on all
|
2016-11-19 00:50:52 +01:00
|
|
|
|
platforms](https://github.com/zulip/zulip/pull/1747)
|
2016-11-02 20:35:11 +01:00
|
|
|
|
* [Add support for stronger security controls for uploaded files (The
|
|
|
|
|
LOCAL_UPLOADS_DIR file uploads backend only supports world-readable
|
|
|
|
|
uploads)](https://github.com/zulip/zulip/issues/320)
|
|
|
|
|
* [Fix requirement to set a password when creating account via
|
|
|
|
|
Google](https://github.com/zulip/zulip/issues/1633)
|
|
|
|
|
* [Add a retention policy feature that automatically deletes old
|
|
|
|
|
messages](https://github.com/zulip/zulip/issues/106)
|
|
|
|
|
* [Add UI for viewing and cancelling open Zulip
|
|
|
|
|
invitations](https://github.com/zulip/zulip/issues/1180)
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
## Testing
|
|
|
|
|
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Extend Zulip's automated test coverage to include all API
|
|
|
|
|
endpoints](https://github.com/zulip/zulip/issues/1441)</strike>
|
|
|
|
|
* <strike>[Build automated tests for the client API bindings](https://github.com/zulip/zulip/issues/713)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
* [Add automated tests for the production upgrade process](https://github.com/zulip/zulip/issues/306)
|
|
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
|
2016-11-02 20:35:11 +01:00
|
|
|
|
* [Add an in-app mechanism for updating users about new Zulip
|
|
|
|
|
features](https://github.com/zulip/zulip/issues/2187)
|
2016-04-09 23:16:39 +02:00
|
|
|
|
* [Significantly expand documentation of the Zulip API and integrating
|
|
|
|
|
with Zulip.](https://github.com/zulip/zulip/issues/672)
|
2016-11-02 20:35:11 +01:00
|
|
|
|
* [Write a visual design / frontend style guide for
|
|
|
|
|
Zulip](https://github.com/zulip/zulip/issues/979)
|
|
|
|
|
* [Update all screenshots to show the current Zulip
|
|
|
|
|
UI](https://github.com/zulip/zulip/issues/599)
|
|
|
|
|
|
|
|
|
|
### Nice to have
|
|
|
|
|
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>[Expand library of documentation on Zulip's feature set. Currently
|
2016-11-02 20:35:11 +01:00
|
|
|
|
most documentation is for either developers or system
|
2017-02-07 19:11:24 +01:00
|
|
|
|
administrators.](https://github.com/zulip/zulip/issues/675)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
2016-11-02 20:35:51 +01:00
|
|
|
|
## Integrations and bots
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
Integrations are essential to Zulip. While we currently have a
|
|
|
|
|
reasonably good framework for writing new webhook integrations for
|
|
|
|
|
getting notifications into Zulip, it'd be great to streamline that
|
|
|
|
|
process and make bots that receive messages just as easy to build.
|
|
|
|
|
|
|
|
|
|
* [Add an outgoing webhook integration system](https://github.com/zulip/zulip/issues/735)
|
|
|
|
|
* [Make setting up a new integration a smooth flow](https://github.com/zulip/zulip/issues/692)
|
2017-01-06 00:06:34 +01:00
|
|
|
|
* [Default new incoming webhooks to permissions-limited incoming webhook
|
|
|
|
|
bots](https://github.com/zulip/zulip/issues/2186)
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Change how Zulip displays bot names to distinguish them from human
|
|
|
|
|
users](https://github.com/zulip/zulip/issues/1107)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
## Android app
|
|
|
|
|
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Add support for narrowing to
|
|
|
|
|
@-mentions](https://github.com/zulip/zulip-android/issues/39)</strike>
|
2016-11-02 20:26:20 +01:00
|
|
|
|
* [Support having multiple Zulip realms open
|
|
|
|
|
simultaneously](https://github.com/zulip/zulip-android/issues/47)
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
## iOS app
|
|
|
|
|
|
2016-11-02 20:26:20 +01:00
|
|
|
|
For the new
|
|
|
|
|
[React Native iOS app](https://github.com/zulip/zulip-mobile), the
|
|
|
|
|
major goal for it is to be released into the app store. Since it is
|
|
|
|
|
moving quickly, we're
|
|
|
|
|
[tracking its roadmap via GitHub milestones](https://github.com/zulip/zulip-mobile/milestones).
|
|
|
|
|
|
|
|
|
|
## Server/webapp support for mobile
|
|
|
|
|
|
|
|
|
|
To support a great mobile experiences, we need to make some
|
2016-11-02 20:30:47 +01:00
|
|
|
|
improvements in the Zulip server.
|
2016-11-02 20:26:20 +01:00
|
|
|
|
|
|
|
|
|
* [Push notifications bouncer service for GCM and
|
|
|
|
|
APNS](https://github.com/zulip/zulip/issues/1767)
|
|
|
|
|
* [A slick process for doing mobile login without typing your password
|
|
|
|
|
on your phone](https://github.com/zulip/zulip/issues/2185)
|
|
|
|
|
* [`@here` mention support (that doesn’t spam people not currently
|
|
|
|
|
online, i.e. no email/push
|
|
|
|
|
notifications)](https://github.com/zulip/zulip/issues/2183)
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>[Fix sending messages from mobile
|
|
|
|
|
web](https://github.com/zulip/zulip/issues/2184)</strike>
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
## Desktop apps
|
|
|
|
|
|
2016-11-02 20:35:51 +01:00
|
|
|
|
The new
|
|
|
|
|
[cross-platform desktop app](https://github.com/zulip/zulip-electron)
|
|
|
|
|
is implemented in [Electron](http://electron.atom.io/), and primarily
|
|
|
|
|
needs work on installer tooling to finish replacing the old app.
|
|
|
|
|
|
|
|
|
|
* Finish releasing the Electron app to replace the old desktop app
|
|
|
|
|
* [Support having multiple Zulip realms open
|
|
|
|
|
simultaneously](https://github.com/zulip/zulip-electron/issues/1)
|
2016-04-09 23:16:39 +02:00
|
|
|
|
|
|
|
|
|
## Community
|
|
|
|
|
|
|
|
|
|
These don't get GitHub issues since they're not technical projects,
|
|
|
|
|
but they are important goals for the project.
|
|
|
|
|
|
2017-05-09 23:31:29 +02:00
|
|
|
|
* <strike>Expand the number of core developers able to do code reviews</strike>
|
|
|
|
|
* <strike>Have a successful season with Zulip's Outreachy participants</strike>
|
2017-02-07 19:11:24 +01:00
|
|
|
|
* <strike>Have a successful season with Google Code In.</strike>
|