Hi all,
On Tue, 27 Jun 2023, at 5:03 AM, Mikhail T. wrote:
Is the direct "in place" upgrade possible, or must I stand up (the latest?) Cyrus IMAPD separately, and then transfer the existing mailboxes via IMAP or some such?
Since 3.0, we provide upgrade documentation -- please read it. You can find the upgrade documentation for 3.0 here:
You can replace "3.0" in that link with "3.2", "3.4", "3.6", "3.8", etc to see the upgrade documentation for any specific release.
The upgrade documentation for the current stable release (currently: 3.8) is at:
The upgrade process that we recommend (because it's similar to what we do at Fastmail, where most Cyrus-IMAP development occurs, and therefore is very well tested), broadly, is to stand up a new server on the new version, and replicate your data in with Cyrus replication. If you don't already have a replicated environment, this is a good opportunity to invest in redundancy. If you don't already know how to use Cyrus replication, you should learn how to do so before using it for an upgrade. You could use IMAP to transfer your mailboxes in instead, but replication is designed for the purpose, will be easier (once you understand it), and will produce a better result faster.
An in-place upgrade should work in theory, but I don't consider it well tested, and as release manager I don't really recommend it.
The most recent patch release of 2.4 was 2.4.22 (March 2021). If you're running a 2.4 that's earlier than this, I'd suggest updating to 2.4.22 first before proceeding further. There are also 11 new commits on the cyrus-imapd-2.4 branch since 2.4.22 that will probably never get a "release", including a fix for CVE-2021-33582. If you intend to continue running 2.4 instead of upgrading to a later version, you should probably start building Cyrus from git sources, since we don't produce 2.4 releases anymore. I don't make any promise of future security fixes, but if they're going to happen, that's where they'll be.
Likewise, the most recent patch release of 2.5 was 2.5.17 (also March 2021). If you're running a 2.5 that's earlier than this, I'd suggest updating to 2.5.17 before proceeding further.
From either of those starting points, you should be able to upgrade to 3.0 (latest patch release: 3.0.18, Feb 2023).
Off the top of my head, I think you can safely go 3.0->3.4->3.6->3.8. It might even be safe to go 3.0->3.4->3.8 iff you're using the most recent patch release of each as you step through. But this is from memory -- please read and follow the upgrade documentation, not what I write here. If in any doubt, step through the latest patch version from each major release.
Also, please notice the pattern: update to the latest patch for the version you're currently running -- and run it for a while -- before upgrading to a newer version. If your version required fixes to make the forward upgrade path safe, that's where they'll be.
Please also read the release notes for at least each x.y.0 (including any that you're skipping over) so that you understand what the major changes are as you go. Release notes for all versions are available here:
(The "Supported Product Series", "Older Versions" etc headings and organisation on this page are currently out of date; I offer this link as the repository of all available release notes, not as a reference for support dates.)
You should always run each version for a while, and make sure to resolve any problems that result from the upgrade before proceeding further, to avoid producing cascading problems that you can't recover from.
Of course, you should also make sure you have a working full system backup that you know how to restore from before starting, so that in the worst case scenario you can roll back to a known good state. (I shouldn't need to say this, and yet...)
Hope this is helpful,
ellie