-----BEGIN PGP SIGNED MESSAGE-----
Dear RabbitMQ community,
RabbitMQ core team is going to adopt a new Erlang release support policy
by January 1st, 2019. If you run on Erlang 19.x (or even older versions),
please read this announcement; no action will be required for those on 20.x
but it's still worth a few minutes of your time.
Starting on January 1st, 2019 RabbitMQ releases will only support two most
Erlang release series. Initially it will be 20.3.x and 21.x. Please upgrade
to 20.3.x or 21.x
to make your deployment future proof.
## Current Policy
In recent years each new feature (major or minor) RabbitMQ release set a
version and supported it for the entire duration of that release's series.
for 3.6.0 it was Erlang/OTP R16B03. By the time 3.6.x went out of support
in May 2018,
it supported Erlang R16B03, 17.x, 18.x, 19.x and 20.x, with Erlang 21.0 GA
about a month away.
That's 5 Erlang release series total. Supporting that many versions takes
time and effort,
especially recently since breaking changes and various
deprecation/modernization efforts in Erlang
are picking up pace. There were standard library, syntax, compiler and byte
between R16B03 and 20.3.x. RabbitMQ codebase and release pipeline had to
all those changes, even though at the end of the series most users have
been running 19.x and 20.x.
So the policy effectively was "start with a version A and support B, C and
as many future versions as
possible". We believe this is unnecessary and counterproductive. For
example, supporting older
versions and producing releases on them bypasses all optimizations recent
have to offer. Our pipelines and upgrade test combinations also explode as
more and more
versions have to be supported concurrently.
On top of that our dependencies recently started dropping support for older
more aggressively. This directly affects what versions, bug fixes and
are available to our team.
We believe there's a more pragmatic approach.
## Keeping Up with Erlang Releases
In the last few months availability of recent Erlang releases has improved
significantly: our team has automated packaging and publishing of RPM and
packages that are available from PackageCloud , GitHub  and
RabbitMQ nodes also switched from checking for Erlang versions to doing a
feature testing, meaning that even mixed major Erlang versions can work
in a cluster (assuming that there really aren't breaking changes that
affect inter-node communication).
That happened in the middle of 3.6.x series, so well over a year ago.
We believe it's now relatively easy to stay up to date with most recent
Erlang patch releases.
## New Policy
Starting on January 1st, 2019 our team will support two most recent major
release series (e.g. currently 21.x and 20.x). This will involve as many
as practical. For example, the stream of 21.0.x releases will likely stop
soon and all
maintenance releases will be based on 21.1.
Given a new major Erlang release a year that means we'll support maintained
major and minor
versions of Erlang released in the last ~ 2 years. Note that when a new
release comes out it may take time for RabbitMQ and its dependencies to
with it and so temporarily the policy will expand to cover 3 major Erlang
The transition window will be 3 month long.
For example, when Erlang 22 comes out in June 2019, we will still support
till September 2019, then switch to supporting only 22.x and 21.x.
When an Erlang release series is about to be dropped, it will be
on this list and in the change log. Note that support for older versions
can be dropped
in a patch release, which will be clearly highlighted as a potentially
breaking change in release notes.
And of course, we will continue producing Erlang packages for new major,
minor and patch releases.
## What You Can Do Today
To be more forward compatible, simply migrate to Erlang 20.3.x or 21.x as
soon as possible.
Going with 20.3.x will have you covered till September 2019 and 21.x, even
Thank you for reading this far. If you have any questions, please ask them
in this thread.
-----BEGIN PGP SIGNATURE-----
Version: FlowCrypt 6.0.7 Gmail Encryption
Comment: Seamlessly send and receive encrypted email
-----END PGP SIGNATURE-----