:tocdepth: 3

====================================
Cyrus IMAP 3.8.0-beta2 Release Notes
====================================

Download from GitHub:

    *   https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-3.8.0-beta2/cyrus-imapd-3.8.0-beta2.tar.gz
    *   https://github.com/cyrusimap/cyrus-imapd/releases/download/cyrus-imapd-3.8.0-beta2/cyrus-imapd-3.8.0-beta2.tar.gz.sig

.. _relnotes-3.8.0-beta2_changes:

Major changes since the 3.6 series
==================================

* Adds the ability for replication to stage message uploads to the
  archive partition rather than the spool partition.
* Adds long-options support to various command line tools.
* Adds a new BYTESIZE smart type for imapoptions that set sizes.
* Removes empty lines from :cyrusman:`cyr_expire(8)` verbose output.  If you
  parse this output with external tools, those may need updating to match.
* Adds a module to ptloader which speaks HTTP.  See the "pts_module" and
  "httppts_uri" options in :cyrusman:`imapd.conf(5)`.
* Adds support for IMAP Multimailbox Search (:rfc:`7377`).
* Adds support for IMAP Saved Search Results (:rfc:`5182`).
* Advertise support for IMAP URL-PARTIAL (:rfc:`5550`).
* Implements the JMAP calendars specification
  (:draft:`draft-ietf-jmap-calendars`).
* Adds support for a new read-only ``\Scheduled`` mailbox that contains
  emails created via JMAP EmailSubmission/set that are to be sent
  at a later date/time.  Also extends the JMAP EmailSubmission object
  with optional instructions for moving the message into another mailbox
  after it has been sent.
* Maps JMAP CalendarEvent privacy to the newly introduced iCalendar
  X-JMAP-PRIVACY property rather than CLASS.  See
  :ref:`upgrade_3.8.0_jmap_caldav_changes` in the upgrade instructions.
* Improves error handling and reporting from :cyrusman:`mbexamine(8)`.  If you
  have custom tooling that calls mbexamine, it may need updating.
* Sieve: Remove support for creating scripts with the deprecated
  ``imapflags`` capability and ``mark`` / ``unmark`` actions.  See
  :ref:`upgrade_3.8.0_sieve_changes` in the upgrade instructions.
* Lock ordering fixes should result in fewer "resource deadlock avoided"
  errors.

.. _relnotes_3.8.0-beta2_storage_changes:

Storage changes
===============

* None so far

Updates to default configuration
================================

The :cyrusman:`cyr_info(8)` `conf`, `conf-all` and `conf-default` subcommands
accept an `-s <version>` argument to highlight :cyrusman:`imapd.conf(5)`
options that are new or whose behaviour has changed since the specified
version.  We recommend using this when evaluating a new Cyrus version to
check which configuration options you will need to examine and maybe set or
change during the process.

* Adds a new BYTESIZE smart type for imapoptions that set sizes.  This allows
  sizes to be specified in "B", "KB", "MB", "GB" for better readability.

  These :cyrusman:`imapd.conf(5)` options are changed in some way:

  * archive_maxsize
  * autocreate_quota
  * autocreatequota
  * backup_compact_minsize
  * backup_compact_maxsize
  * event_content_size
  * icalendar_max_size
  * jmap_preview_length
  * jmap_max_size_upload
  * jmap_max_size_blob_set
  * jmap_max_size_request
  * jmap_mail_max_size_attachments_per_email
  * maxmessagesize
  * maxquoted
  * maxword
  * quotawarn -> quotawarnpercent
  * quotawarnkb -> quotawarnsize
  * search_maxsize
  * sieve_maxscriptsize
  * vcard_max_size
  * webdav_attachments_max_binary_attach_size

  This feature is transparent over upgrade and downgrade, provided the
  imapd.conf remains unchanged.

  Admins may update their imapd.conf to take advantage of the readability of
  the new smart type, but after doing so will no longer be able to downgrade
  to a version without this feature (unless they also revert their
  imapd.conf).

Security fixes
==============

* None so far

Significant bugfixes
====================

* Fixed :issue:`4380`: XFER to newer backends now assumes at least the current
  mailbox version, rather than the oldest supported mailbox version.
* Fixed :issue:`3771`: Special-Use annotations lost on XFER
* Fixed :issue:`4187`: :cyrusman:`ctl_mboxlist(8)` can now detect and report
  broken UUID mailboxes.  Thanks Matthias Hunstock.
* Fixed :issue:`4383`: rolling :cyrusman:`squatter(8)` only compacted its index
  databases at shutdown.
* Fixed :issue:`4439`: GETMETADATA wasn't proxied correctly to murder backends.
  Thanks Stéphane GAUBERT.
