Skip to content

Zulip Server 7.0

Compare
Choose a tag to compare
@timabbott timabbott released this 31 May 15:57
· 5934 commits to main since this release

7.0 -- 2023-05-31

Highlights

  • Many significant visual changes as part of Zulip's ongoing redesign project, including message feed headers, background color, mention colors, dates and times, compose box banners, icons, and tooltips. Many further improvements are planned for future releases.
  • Added support for unmuting a topic in a muted stream, previously the 4th most upvoted GitHub issue.
  • Redesigned the permissions settings for message editing, topic editing, and moving topics to have a cleaner model.
  • New compose box features: Scheduling a message to be sent later, a nicer stream picker, and the ability to switch between stream and
    private messages.
  • Numerous improvements to the Help Center, including documentation for how to complete many common tasks in the Zulip mobile apps.
  • Redesigned the interface and permissions model for moving topics to be independent from message content editing, providing a cleaner experience and better configurability.
  • Renamed "Private messages" to "Direct messages" across the user interface, including search operators. We expect further API changes to be integrated gradually over coming releases due to backwards compatibility considerations.
  • Added a new personal privacy setting for to what extent the user's email address should be shared with other users in the organization; previously this was solely controlled by organization administrators. This is presented to the user during account
    creation, including for users imported from other chat products.
  • Added support for the upcoming Debian 12 release.

Full feature changelog

  • Added full support for using JWT authentication to integrate Zulip with another application.
  • Added support for SAML Single-Logout initiated by the Zulip server (SP-initiated Single Logout).
  • Added new stream setting controlling which users can remove other subscribers from the stream.
  • Added new setting to control when messages are marked as read when scrolling.
  • Added notification bot messages when another user adds you to or removes you from a user group.
  • Added additional confirmation dialogs for actions deserving caution, including marking all messages as read, removing the last user from a private stream, and disabling all notifications for direct messages.
  • Added support for Postgres 15, and removed support for Postgres 11.
  • Added new z keyboard shortcut to view a message in context.
  • Added new = keyboard shortcut to upvote an existing emoji reaction.
  • Changed the s keyboard shortcut to be a toggle, replacing the previous model that required both s and S keyboard shortcuts.
  • Clarified automated notifications when moving and resolving topics.
  • New webhook integrations: Rundeck.
  • Reworked linkifiers to use URL templates for the URL patterns.
  • Improved left sidebar to show more topics within the current stream, and more private message converations, especially when many are unread.
  • Reworked the internals of the main message feed scrollbar, fixing several longstanding bugs.
  • Improved many interaction details in the settings subsystem, including how files are uploaded, hover behaviors, etc.
  • Improved the logged out experience to suggest logging in to see more streams in the left sidebar.
  • Improved many subtle details of compose box autocomplete, file uploads, and error handling. Browser undo now works more consistently in the compose box.
  • Improved subscriber management in stream settings to support sorting users and seeing their user cards after a click.
  • Improved previously unspecified behavior when multiple overlapping linkifiers applied to syntax within a message.
  • Improved subject lines for email notifications in topics that have been resolved so that email clients will thread them with the pre-resolution topic.
  • Improved how the Slack data import tool handles Slack threads.
  • Improved the Slack incoming integration's handling of fancier Slack syntax.
  • Improved notification format for most Git integrations.
  • Improved onboarding emails with better content and links to guides.
  • Improved how uploaded files are served with the S3 file uploads backend to better support browser caching.
  • Improved the instructions for data imports from third-party tools to be much more detailed.
  • Improved the web application's main loading indicator.
  • Improved the visuals of todo and poll widgets.
  • Improved the content of onboarding emails.
  • Improved default for whether to include the Zulip realm name in the subject line of email notifications.
  • Improved rendering format for emoji inside headings.
  • Improved performance of rendering message views.
  • Improved capabilities of compliance exports, including new CSV format.
  • Fixed missing localization for dates/times in the message feed.
  • Fixed a subtle issue causing files uploaded via the incoming email gateway to not be viewable.
  • Fixed a subtle compose box issue that could cause a message to be sent twice.
  • Fixed several subtle bugs involving messages that failed to send.
  • Fixed several subtle bugs in message feed loading and rendering.
  • Fixed several subtle live-update bugs involving moving messages.
  • Fixed several error handling bugs in the message edit UI.
  • Fixed an issue where newly created users could get email notifications for messages from Welcome Bot.
  • Fixed an issue the management command to garbage-collect uploaded files that are no longer used in a message was not running in cron.
  • Fixed noticeable lag when marking messages as unread in the web app.
  • Fixed a bug that could cause duplicate mobile push notifications.
  • Fixed several error handling issues with the data export process.
  • Fixed several subtle issues affecting certain container runtimes.
  • Added support for configurable hooks to be run when upgrading the Zulip server.
  • Added support for using TLS to secure the RabbitMQ connection.
  • The Zulip API now includes a ignored_parameters_unsupported field to help client developers debug when they are attempting to use a parameter that the Zulip server does not support.
  • Migrated web application error reporting to use Sentry.
  • Significant portions of the original Bootstrap CSS framework have been deleted. This is an ongoing project.
  • Converted many JavaScript modules to TypeScript.
  • Reorganized the codebase, with new web/, help/, and api_docs/ top-level directories.
  • Upgraded many third-party dependencies, including to Django 4.2 LTS.

Upgrade notes for 7.0

  • When the S3 storage backend is used for storing file uploads, those contents are now fetched by nginx, cached locally on the server, and served to clients; this lets clients cache the contents, and saves them a redirect. However, it may require administrators adjust the size of the server's cache if they have a large deploy; see the documentation.
  • Removed the application_server.no_serve_uploads setting in /etc/zulip/zulip.conf, as all uploads requests go through Zulip now.
  • Installations using the previously undocumented JWT authentication feature will need to make minor adjustments in the format of JWT requests; see the documentation for details on the new format.
  • High volume log files like server.log are now by default retained for 14 days, configured via the access_log_retention_days deployment option. This replaces a harder to understand size-based algorithm that was not easily configurable.
  • The URL patterns for linkifiers have been migrated from a custom format string to RFC 6570 URL templates. A database migration will automatically migrate existing linkifiers correctly in the vast majority of cases, but some fancier linkfiers may require manual adjustment to generate correct URLs following this upgrade.
  • PostgreSQL 11 is no longer supported; if you are currently using it, you will need to upgrade PostgreSQL before upgrading Zulip.
  • Installations that deploy Zulip behind a reverse proxy should make sure the proxy is configured to set the X-Forwarded-Proto HTTP header, and that loadbalancer.ips is accurate for the reverse proxy's IP; the documentation has updated its example configurations.
  • Zulip's Twitter preview integration has been disabled due to Twitter desupporting the API that it relied on.