Major releases, Release announcements

Zulip 2.1: Open-source team chat

Tim Abbott 8 min read

We’re excited to announce the release of Zulip Server 2.1, 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.1 is a huge release, with 3190 new commits since February’s 2.0. A total of 123 people contributed commits to this release, bringing the Zulip server project to 543 distinct code contributors. With 48 people who’ve contributed 100+ commits, Zulip has by far the most active open-source development community of any team chat software.

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 over the last several months as well. Highlights include:

  • Zulip has a new HTML public archive tool for open source projects. Our page for Open Source projects has been rewritten to better focus on what’s important.
  • There’s now a Digital Ocean one-click installer for Zulip.
  • Zulip had an excellent Google Summer of Code this summer; all 17 students completed their projects successfully. Several of the features advertised here, and many more of the features in the full changelog were built by our amazing GSoC community.
  • We have new documentation on how to maintain a local fork of Zulip.
  • Many of the top issues with our mobile and desktop apps have been fixed.

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

  • New data import tool for Mattermost, joining Slack, HipChat, Stride, and Gitter. Slack import now supports all features of Slack’s corporate plan exports.
  • Zulip’s full-text search no longer requires a custom postgres extension, allowing Zulip to use Amazon RDS and similar DBaaS platforms for its database.
  • Zulip’s built-in data export tool is now accessible by organization administrators from the UI (previously it required shell access to run).
  • We’ve added support for Debian Buster and removed support for EOL Ubuntu 14.04 Trusty. CentOS/RHEL support didn’t quite make this release, but is coming soon.

Notifications

  • Zulip’s email notifications have been completely redesigned with a minimal, readable style inspired by GitHub’s email notifications.
  • New notification settings: Configure whether to receive email and push notifications for wildcard mentions (@all), which unread messages count for the desktop app (and webapp favicon) total unread counts, and more.
  • The incoming email gateway has been overhauled with the goals of providing a well documented system that supports subscribing a Zulip stream to an email list (in addition to being a way to integrate services that send email with Zulip).

Authentication

  • Zulip now has native support for SAML authentication.
  • We rewrote our Google authentication integration; now all of our OAuth/social authentication backends are implemented using python-social-auth. See the upgrade notes for minor changes in how Google authentication is configured.
  • We’ve fixed all known bugs with the popular LDAP synchronization features added in Zulip 2.0.

Features and user experience

  • Users can now search the complete public stream history of an organization with the new streams:public search operator.
  • Zulip’s markdown formatting now has a nice syntax for mentioning/linking to topics.
  • We added more expansive moderation settings, with more granular control over which users create streams or invite new users to join them.
  • Support for showing inline previews of linked webpages has moved from alpha to beta. See the upgrade notes for some changes in how it is configured.
  • Many subtle design improvements were integrated, including significant improvements to visual spacing around bulleted lists, quotes, and code blocks. Several more visible design improvements are planned for Zulip 2.2.
  • New integrations for BitBucket Server, Buildbot, Gitea, Harbor and Redmine, and significant formatting improvements for most of the 100 existing integrations.

Internationalization

  • Zulip now has complete or nearly-complete translations for German, Spanish, French, Portuguese, Chinese, Russian, Ukrainian, Czech, Finnish, Korean, Persian, Italian, and Turkish. Partial translations for Italian, Dutch, Polish, Japanese, Hungarian, Bulgarian, and Indonesian cover the majority of the total strings in the project.
  • Zulip’s onboarding messages 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 larger installations hoping to minimize downtime, see the “Upgrade notes” section of the changelog for how to do a 2-part upgrade with reduced downtime.

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 2.0.0..2.1.0 | sort -nr
   564	Tim Abbott
   432	Anders Kaseorg
   304	Vishnu Ks
   240	Mateusz Mandera
   205	Vaibhav
   148	Rishi Gupta
   129	Wyatt Hoodes
   109	Yashashvi Dave
    97	Hemanth V. Alluri
    95	Puneeth Chaganti
    88	Thomas Ip
    74	Pragati Agrawal
    63	Rohitt Vashishtha
    55	Eeshan Garg
    53	Steve Howell
    53	Alexandra Ciobica
    36	Yash Rathore
    33	Priyank Patel
    32	Aman Agrawal
    30	vinitS101
    22	sameerchoubey
    21	neiljp (Neil Pilgrim)
    21	Cynthia Lin
    18	David Rosa
    17	Greg Price
    13	Mohit Gupta
    13	Harshit Bansal
    13	Abhinav Singh
    12	David Wood
    11	Shubham Padia
    10	Vinit Singh
    10	Shubham Dhama
     7	Mayank Madan
     6	Matheus Melo
     5	rht
     5	Raymond Akornor
     5	Rafid Aslam
     4	Yago González
     4	ruchit2801
     4	overide
     4	Marco Burstein
     4	Kanishk Kakar
     3	vsvipul
     3	Ryan Rehman
     3	Ray Kraesig
     3	Lobster
     3	Jan Koscisz
     3	Boris Yankov
     3	Ben Muschol
     2	Vishwesh Jainkuniya
     2	Tyler B. Thrailkill
     2	Tlazypanda
     2	Sophie
     2	Samuel Searles-Bryant
     2	okmanl
     2	Nikhil-Vats
     2	Mohit Maroliya
     2	Kouhei Sutou
     2	Joao Mauricio Carvalho
     2	Ivan Mitev
     2	Hashir Sarwar
     2	Gloria Elston
     2	Dinesh
     2	Conner Bondurant
     2	clarammdantas
     2	Challa Venkata Raghava Reddy
     2	aswanthkoleri
     1	Zach Wener-Fligner
     1	Vit Rozkovec
     1	vipul chhabra
     1	varunvaruns9
     1	Tim Wissel
     1	Thomas Ashish Cherian
     1	theredcap
     1	Tej Pochiraju
     1	Sumanth V Rao
     1	sumanthvrao
     1	Soumya Himanish Mohapatra
     1	Siddharth Varshney
     1	Shikhar Varshney
     1	Seth Nickell
     1	Sebastian Morr
     1	SatyendraBanjare
     1	Sameer Choubey
     1	Sahil Batra
     1	sahil839
     1	Roman Godov
     1	Rhythm Sharma
     1	Rhythm
     1	Priyanshu Singh
     1	ppreethi
     1	okay zed
     1	Nat1405
     1	matkaczmarek
     1	Laurel Michaels
     1	Kleidi Eski
     1	K.Kanakhin
     1	Joshua Pan
     1	Jack Tiggleman
     1	Hariom Verma
     1	Gaurav Thapar
     1	Fabian Stanke
     1	dustinheestand
     1	Dominik Grybos
     1	Chris Bobbe
     1	chgl
     1	Casper
     1	Brutus5000
     1	Bennet Sunder
     1	Benjamin Melançon
     1	bartek
     1	AsociTon
     1	Archit Kaushik
     1	Andrew Szeto
     1	Aman
     1	Amal Rajan
     1	Alex Dehnert
     1	Akash Nimare
     1	Aditya Bansal
     1	Abhishek Kumar Singh
     1	ab1nash
     1	Aayush Agrawal
     1	Aaron Raimist