Major releases, Release announcements

Zulip 2.0: Open-source team chat

Tim Abbott 7 min read

We’re excited to announce the release of Zulip Server 2.0, containing hundreds of new features and bug fixes.

Zulip is the world’s most productive team chat software, used by thousands of teams as an alternative to Slack, HipChat, Mattermost and IRC. Zulip’s unique topic-based threading combines the immediacy of chat with the asynchronous efficiency of email-style threading, and is 100% free and open source software.

Zulip 2.0 is a huge release, with 1900 new commits since November’s 1.9. A total of 87 people contributed commits to this release, bringing the Zulip server project to 488 distinct code contributors. With 41 people who’ve contributed 100+ commits to Zulip (and 64 people who’ve contributed 40+ commits), Zulip has the most active open-source development community of any team chat software, by a wide margin.

Huge thanks to everyone who’s contributed to Zulip over the last few months, whether by writing code and docs, reporting issues, testing changes, translating, posting feedback on chat.zulip.org, or just suggesting ideas! We could not do this without the hundreds of people giving back to the Zulip community.

Project highlights

Today marks a release of the Zulip server, but lots of exciting work has happened outside the server codebase, too. Key highlights:

  • Zulip is once again participating in Google Summer of Code. GSoC is a fantastic program for students to get involved in open source, and has introduced us to many of our most active long-term contributors.
  • Zulip now has a native IRC bridge, which we now recommend over using our matrix.org integration, as the direct bridge is more reliable.
  • Our page for Open Source projects now highlights several of the many open source projects that use Zulip.
  • Zulip continues to become more popular: the Zulip Cloud userbase doubled again over the last 6 months.

Release highlights

As usual, just listing all the features in this release would make for an overwhelming blog post, so here are just some highlights:

Server

  • Zulip now has built-in backup and restoration tools.
  • Our data import tools for Slack, HipChat, Stride, and Gitter have improved significantly. They now efficiently import organizations with 10,000s of users and millions of messages of history.
  • The LDAP integration was improved significantly, and now has configurable support for synchronizing user avatars, custom profile fields, Active Directory “disabled” status, and more.
  • This release officially deprecates supports for Ubuntu 14.04 “Trusty”, in preparation for Trusty’s end-of-life in April 2019. While future 2.0.x maintenance releases will include Trusty support, we expect Zulip 2.1.0 to drop support for Ubuntu Trusty.

New features

  • The new /poll slash command creates simple polls directly in Zulip.
  • Zulip now supports setting a user’s availability status and creating custom status messages.
  • You can now create reusable invitation links, in addition to the several other options for managing who can join an organization.
  • Our support for permissions-limited guest users is no longer experimental.
  • Message editing now supports the full set of compose features, including emoji picker, mentions, video call links, markdown preview, and typeahead.
  • Administrators can now delete in bulk all messages in a topic, which was a popular request from folks who want to clean up test messages sent when evaluating Zulip before inviting the whole team.
  • You can now reuse your avatar, display settings, etc. from an existing Zulip account when joining additional organizations hosted by Zulip Cloud.

Integrations

  • We added a new native ReviewBoard integration, and made significant improvements to many of our 100 existing native integrations.
  • We’ve added initial support for Zoom, which joins Google Hangouts and Jitsi in our growing list of video call providers.
  • We’ve added an Azure Active Directory authentication integration, and significantly streamlined our python-social-auth integration so we can add new authentication backends supported by python-social-auth with just a few dozen lines of code.

Internationalization

  • Zulip now has complete or nearly-complete translations for German, Spanish, French, Portuguese, Chinese, Russian, Ukrainian, Czech, Finnish, Korean, and Turkish. Partial translations for Italian, Dutch, Polish, Japanese, Hungarian, Bulgarian, and Indonesian cover the majority of the total strings in the project.
  • Most of Zulip’s email notifications are now tagged for translation, one of the last parts of the Zulip core experience that was not yet internationalized.

See the detailed changelog for dozens of other notable improvements, including new features, performance optimizations, and bug fixes. If you administer a Zulip server, we encourage you to read at least the list of added features at the top, since there are a number of useful new settings introduced in this release that you may want to take advantage of.

Upgrading

We highly recommend upgrading, since Zulip has made major improvements in the months since the last major release. You can upgrade as usual by following the upgrade instructions. For installations hoping to minimize downtime, see the “Upgrade notes” section of the changelog for some expensive migrations you can run before starting the upgrade.

Many installations have already upgraded to release candidates without issue, so we feel very confident in this release. But if you need help, best-effort support is available on chat.zulip.org. You can also purchase commercial support from the Zulip core team.

Community

I’d like to take this opportunity to advertise a few opportunities to contribute back to Zulip:

  • Join the chat.zulip.org developer community, where we deploy the latest experimental features and design improvements. We love feedback from the Zulip user community, and have a few streams especially for that purpose.
  • Translating! We’d love to get a few more languages to 100%, and contributors to edit existing translations are also very welcome. See our translating guide for information on how to get involved.
  • Follow us on Twitter or join our low-traffic announcement mailing list!
  • If you’d like to get involved with Zulip professionally, we’re hiring engineers! See our jobs page for details on what we’re looking for.

Thanks again to the amazing global Zulip development community for making this possible! What follows is a summary of the code contributors to this server release, sorted by number of commits.

-Tim Abbott, lead developer

$ git shortlog -s 1.9.0..2.0.0 | sort -nr
   439	Tim Abbott
   405	Steve Howell
   202	Rishi Gupta
   169	Vishnu Ks
   104	Rein Zustand
    86	Eeshan Garg
    77	Anders Kaseorg
    40	Harshit Bansal
    39	Cynthia Lin
    37	Rohitt Vashishtha
    35	Greg Price
    24	Shubham Dhama
    23	Vaibhav
    18	Yashashvi Dave
    15	Hemanth V. Alluri
    14	Aditya Bansal
     8	Nolan Darilek
     8	Marco Burstein
     8	Akash Nimare
     8	Abhinav Singh
     7	Mohit Gupta
     7	Puneeth Chaganti
     7	Shubham Padia
     7	varunvaruns9
     6	Sumanth V Rao
     5	Wyatt Hoodes
     5	ss62171
     5	Raymond Akornor
     5	Pragati Agrawal
     5	Joshua Pan
     5	Adarsh Patel
     4	Mateusz Mandera
     4	kunal-mohta
     4	Jeswin
     4	Jack Zhang
     4	Amadeo234
     3	savish
     3	Roger Souza
     3	Archit Kaushik
     2	YashRE42
     2	xiaomingplus
     2	Tom Daff
     2	Thomas Ip
     2	Shoumorup
     2	sameerchoubey
     2	sahil839
     2	Roman Godov
     2	Priyanshu Singh
     2	overide
     2	ishanrai05
     2	Fabian Tribrunner
     2	Challa Venkata Raghava Reddy
     2	butchyyyy
     2	AsociTon
     2	Abhigyan Khaund
     1	vinitS101
     1	TharunThomas8
     1	Shubham Jadon
     1	seresheim
     1	Scott Lee
     1	Samuel Searles-Bryant
     1	Realmagnum
     1	psg0796
     1	Priyanshu Singh
     1	Pranjal Vyas
     1	Paurakh Sharma Humagain
     1	onkar shedge
     1	Nikhil Kumar Mishra
     1	neiljp (Neil Pilgrim)
     1	Natsu Kagami
     1	Max Nussenbaum
     1	Matthew Wegner
     1	konraddeka
     1	Igor Posledov
     1	Hudda
     1	dipu989
     1	Daniel Bradburn
     1	Bruce
     1	Boris Yankov
     1	bartek
     1	Balaji2198
     1	anhhuynh
     1	alex
     1	Akshay Gupta
     1	Aditya Jain
     1	Abdelhadi Dyouri
     1	Aastha