summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2021-07-30 19:23:19 +0300
committerMichael Klishin <michael@clojurewerkz.org>2021-07-30 19:28:06 +0300
commit08ab2d8d503731bc287f5b1502fbb78f2183dd0b (patch)
tree358248e190797fc0f0877672d8800f8dd96abe57
parentef4ac43578304fc8fd0d54b28c6f50b57c424c4f (diff)
downloadrabbitmq-server-git-08ab2d8d503731bc287f5b1502fbb78f2183dd0b.tar.gz
Move release notes from rabbitmq/rabbitmq-website
Keeping them in this repo might encourage more people to update them as changes are merged, and simplify release automation a bit. So let's try it. Per suggestion from @gerhard. (cherry picked from commit eff69f5772498f6a6585b93c98401d8c248854ec)
-rw-r--r--release-notes/3.5.7.md169
-rw-r--r--release-notes/3.5.8.md30
-rw-r--r--release-notes/3.6.0.md462
-rw-r--r--release-notes/3.6.1.md280
-rw-r--r--release-notes/3.6.10.md183
-rw-r--r--release-notes/3.6.11.md236
-rw-r--r--release-notes/3.6.12.md67
-rw-r--r--release-notes/3.6.13.md119
-rw-r--r--release-notes/3.6.14.md48
-rw-r--r--release-notes/3.6.15.md142
-rw-r--r--release-notes/3.6.16.md143
-rw-r--r--release-notes/3.6.2.md375
-rw-r--r--release-notes/3.6.3.md218
-rw-r--r--release-notes/3.6.4.md77
-rw-r--r--release-notes/3.6.5.md24
-rw-r--r--release-notes/3.6.6.md234
-rw-r--r--release-notes/3.6.7.md413
-rw-r--r--release-notes/3.6.8.md59
-rw-r--r--release-notes/3.6.9.md63
-rw-r--r--release-notes/3.7.0.md475
-rw-r--r--release-notes/3.7.1.md121
-rw-r--r--release-notes/3.7.10.md248
-rw-r--r--release-notes/3.7.11.md139
-rw-r--r--release-notes/3.7.12.md209
-rw-r--r--release-notes/3.7.13.md177
-rw-r--r--release-notes/3.7.14.md100
-rw-r--r--release-notes/3.7.15.md255
-rw-r--r--release-notes/3.7.16.md174
-rw-r--r--release-notes/3.7.17.md122
-rw-r--r--release-notes/3.7.18.md163
-rw-r--r--release-notes/3.7.19.md114
-rw-r--r--release-notes/3.7.2.md30
-rw-r--r--release-notes/3.7.20.md163
-rw-r--r--release-notes/3.7.21.md98
-rw-r--r--release-notes/3.7.22.md100
-rw-r--r--release-notes/3.7.23.md78
-rw-r--r--release-notes/3.7.24.md114
-rw-r--r--release-notes/3.7.25.md115
-rw-r--r--release-notes/3.7.26.md79
-rw-r--r--release-notes/3.7.27.md83
-rw-r--r--release-notes/3.7.28.md64
-rw-r--r--release-notes/3.7.3.md110
-rw-r--r--release-notes/3.7.4.md117
-rw-r--r--release-notes/3.7.5.md201
-rw-r--r--release-notes/3.7.6.md122
-rw-r--r--release-notes/3.7.7.md86
-rw-r--r--release-notes/3.7.8.md339
-rw-r--r--release-notes/3.7.9.md251
-rw-r--r--release-notes/3.8.0.md288
-rw-r--r--release-notes/3.8.1.md219
-rw-r--r--release-notes/3.8.10.md351
-rw-r--r--release-notes/3.8.11.md72
-rw-r--r--release-notes/3.8.12.md214
-rw-r--r--release-notes/3.8.13.md155
-rw-r--r--release-notes/3.8.14.md77
-rw-r--r--release-notes/3.8.15.md175
-rw-r--r--release-notes/3.8.16.md87
-rw-r--r--release-notes/3.8.17.md145
-rw-r--r--release-notes/3.8.18.md179
-rw-r--r--release-notes/3.8.19.md79
-rw-r--r--release-notes/3.8.2.md204
-rw-r--r--release-notes/3.8.3.md305
-rw-r--r--release-notes/3.8.4.md413
-rw-r--r--release-notes/3.8.5.md315
-rw-r--r--release-notes/3.8.6.md306
-rw-r--r--release-notes/3.8.7.md113
-rw-r--r--release-notes/3.8.8.md153
-rw-r--r--release-notes/3.8.9.md135
-rw-r--r--release-notes/3.9.0.md240
-rw-r--r--release-notes/3.9.1.md58
-rw-r--r--release-notes/README-1.1.0-alpha.txt84
-rw-r--r--release-notes/README-1.1.1.txt61
-rw-r--r--release-notes/README-1.2.0.txt63
-rw-r--r--release-notes/README-1.3.0.txt96
-rw-r--r--release-notes/README-1.4.0.txt108
-rw-r--r--release-notes/README-1.5.0.txt143
-rw-r--r--release-notes/README-1.5.1.txt81
-rw-r--r--release-notes/README-1.5.2.txt79
-rw-r--r--release-notes/README-1.5.3.txt79
-rw-r--r--release-notes/README-1.5.4.txt81
-rw-r--r--release-notes/README-1.5.5.txt91
-rw-r--r--release-notes/README-1.6.0.txt86
-rw-r--r--release-notes/README-1.7.0.txt105
-rw-r--r--release-notes/README-1.7.1.txt123
-rw-r--r--release-notes/README-1.7.2.txt75
-rw-r--r--release-notes/README-1.8.0.txt208
-rw-r--r--release-notes/README-1.8.1.txt69
-rw-r--r--release-notes/README-2.0.0.txt98
-rw-r--r--release-notes/README-2.1.0.txt53
-rw-r--r--release-notes/README-2.1.1.txt60
-rw-r--r--release-notes/README-2.2.0.txt106
-rw-r--r--release-notes/README-2.3.0.txt163
-rw-r--r--release-notes/README-2.3.1.txt36
-rw-r--r--release-notes/README-2.4.0.txt143
-rw-r--r--release-notes/README-2.4.1.txt87
-rw-r--r--release-notes/README-2.5.0.txt135
-rw-r--r--release-notes/README-2.5.1.txt34
-rw-r--r--release-notes/README-2.6.0.txt181
-rw-r--r--release-notes/README-2.6.1.txt59
-rw-r--r--release-notes/README-2.7.0.txt142
-rw-r--r--release-notes/README-2.7.1.txt105
-rw-r--r--release-notes/README-2.8.0.txt202
-rw-r--r--release-notes/README-2.8.1.txt41
-rw-r--r--release-notes/README-2.8.2.txt106
-rw-r--r--release-notes/README-2.8.3.txt89
-rw-r--r--release-notes/README-2.8.4.txt30
-rw-r--r--release-notes/README-2.8.5.txt47
-rw-r--r--release-notes/README-2.8.6.txt64
-rw-r--r--release-notes/README-2.8.7.txt70
-rw-r--r--release-notes/README-3.0.0.txt244
-rw-r--r--release-notes/README-3.0.1.txt66
-rw-r--r--release-notes/README-3.0.2.txt88
-rw-r--r--release-notes/README-3.0.3.txt55
-rw-r--r--release-notes/README-3.0.4.txt25
-rw-r--r--release-notes/README-3.1.0.txt173
-rw-r--r--release-notes/README-3.1.1.txt64
-rw-r--r--release-notes/README-3.1.2.txt90
-rw-r--r--release-notes/README-3.1.3.txt12
-rw-r--r--release-notes/README-3.1.4.txt91
-rw-r--r--release-notes/README-3.1.5.txt39
-rw-r--r--release-notes/README-3.2.0.txt191
-rw-r--r--release-notes/README-3.2.1.txt55
-rw-r--r--release-notes/README-3.2.2.txt60
-rw-r--r--release-notes/README-3.2.3.txt64
-rw-r--r--release-notes/README-3.2.4.txt87
-rw-r--r--release-notes/README-3.3.0.txt244
-rw-r--r--release-notes/README-3.3.1.txt107
-rw-r--r--release-notes/README-3.3.2.txt118
-rw-r--r--release-notes/README-3.3.3.txt46
-rw-r--r--release-notes/README-3.3.4.txt46
-rw-r--r--release-notes/README-3.3.5.txt99
-rw-r--r--release-notes/README-3.4.0.txt269
-rw-r--r--release-notes/README-3.4.1.txt69
-rw-r--r--release-notes/README-3.4.2.txt66
-rw-r--r--release-notes/README-3.4.3.txt107
-rw-r--r--release-notes/README-3.4.4.txt104
-rw-r--r--release-notes/README-3.5.0.txt170
-rw-r--r--release-notes/README.md16
138 files changed, 18620 insertions, 0 deletions
diff --git a/release-notes/3.5.7.md b/release-notes/3.5.7.md
new file mode 100644
index 0000000000..a1a298e146
--- /dev/null
+++ b/release-notes/3.5.7.md
@@ -0,0 +1,169 @@
+## RabbitMQ 3.5.7
+
+RabbitMQ `3.5.7` is primarily a bug fix release.
+
+### Server
+
+#### Bug Fixes
+
+ * Fix a race condition that could prevent nodes from stopping.
+
+ GitHub issue: [rabbitmq-server#465](https://github.com/rabbitmq/rabbitmq-server/issues/465)
+
+ * `file_handle_cache:clear_read_cache/0` no longer silently fails.
+
+ The function is mean to be used with `rabbitmqctl eval` in environments where
+ in-process buffering of file data is enabled.
+
+ GitHub issue: [rabbitmq-server#436](https://github.com/rabbitmq/rabbitmq-server/issues/436)
+
+ * Default `RABBITMQ_PLUGINS_DIR` value on Windows should be calculated as relative to RabbitMQ
+ server installation directory, not `RABBITMQ_BASE`.
+
+ If you override `RABBITMQ_BASE`, you may need to copy plugins from `%RABBITMQ_BASE%\plugins`
+ to the `plugins` directory under RabbitMQ installation.
+
+ GitHub issue: [rabbitmq-server#433](https://github.com/rabbitmq/rabbitmq-server/issues/433)
+
+ * When rabbitmq-server failed to start due to an unreadable config file, exit code was 0
+
+ GitHub issue: [rabbitmq-server#464](https://github.com/rabbitmq/rabbitmq-server/issues/464)
+
+ * Overriding `RABBITMQ_LOGS` and `RABBITMQ_SASL_LOGS` on Windows prevented node from starting.
+
+ GitHub issue: [rabbitmq-server#375](https://github.com/rabbitmq/rabbitmq-server/issues/375)
+
+ * Some startup code bits assumed IPv4 is enabled in the environment
+
+ GitHub issue: [rabbitmq-server#117](https://github.com/rabbitmq/rabbitmq-server/issues/117)
+
+ * More robust disk monitor, fewer errors logged.
+
+ GitHub issue: [rabbitmq-server#91](https://github.com/rabbitmq/rabbitmq-server/issues/91)
+
+ * `rabbitmqctl forget_cluster_node` no longer attempts to impersonate live
+ (reachable) nodes.
+
+ GitHub issue: [rabbitmq-server#470](https://github.com/rabbitmq/rabbitmq-server/issues/470)
+
+ * `rabbitmq-plugins` was using an incorrect env variable.
+
+ GitHub issue: [rabbitmq-server#451](https://github.com/rabbitmq/rabbitmq-server/issues/451)
+
+#### Enhancements
+
+ * RAM watermark can be configured as an absolute value in bytes (just like with disk space monitoring):
+
+ ```
+ [{rabbit, [{vm_memory_high_watermark, {absolute, 1073741824}}]}].
+ ```
+
+ GitHub issue: [rabbitmq-server#207](https://github.com/rabbitmq/rabbitmq-server/issues/207)
+
+ * `rabbitmqctl authenticate_user` is a new command that can be used to test user authentication.
+
+ GitHub issue: [rabbitmq-server#119](https://github.com/rabbitmq/rabbitmq-server/issues/119)
+
+ * `rabbitmqctl` now supports `exclusive` as a queue info item.
+
+ Contributed by Alexey Lebedeff (@binarin).
+
+ GitHub issue: [rabbitmq-server#371](https://github.com/rabbitmq/rabbitmq-server/issues/371)
+
+
+### Java client
+
+#### Enhancements
+
+ * Heartbeats are now enabled by default.
+
+ GitHub issue: [rabbitmq-java-client#109](https://github.com/rabbitmq/rabbitmq-java-client/issues/109).
+
+#### Bug Fixes
+
+ * `AutorecoveringChannel#basicCancel` could throw a `NullPointerException`.
+
+ GitHub issue: [rabbitmq-java-client#105](https://github.com/rabbitmq/rabbitmq-java-client/issues/105)
+
+
+### .NET client
+
+#### Enhancements
+
+ * Heartbeats are now enabled by default.
+
+ GitHub issue: [rabbitmq-dotnet-client#142](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/142).
+
+
+#### Bug Fixes
+
+ * `IConnection.Dispose` could throw an exception.
+
+ GitHub issue: [rabbitmq-dotnet-client#133](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/133)
+
+
+### MQTT plugin
+
+#### Bug Fixes
+
+ * Auto-deletion of queues that back QoS 1 subscriptions is again controlled
+ by the clean session flag.
+
+ GitHub issues: [rabbitmq-mqtt#30](https://github.com/rabbitmq/rabbitmq-mqtt/issues/30) (original report which introduced the issue), [rabbitmq-mqtt#37](https://github.com/rabbitmq/rabbitmq-mqtt/issues/37) (clarification and fix)
+
+
+
+### STOMP plugin
+
+#### Enhancements
+
+ * Queue names now can be set explicitly using the `x-queue-name` header, for all
+ destination types.
+
+ GitHub issue: [rabbitmq-stomp#43](https://github.com/rabbitmq/rabbitmq-stomp/issues/43)
+
+
+
+### Management plugin
+
+#### Bug Fixes
+
+ * Management plugin could prevent a node from starting when it recovers after a network split.
+
+ GitHub issue: [rabbitmq-management#81](https://github.com/rabbitmq/rabbitmq-management/issues/81)
+
+ * Sorting arrow direction in the UI is now more conventional.
+
+ Contributed by Philippe Serhal.
+
+ GitHub issue: [rabbitmq-management#88](https://github.com/rabbitmq/rabbitmq-management/pull/88).
+
+ * 401 responses correctly set content type to `application/json`
+
+ GitHub issue: [rabbitmq-management#67](https://github.com/rabbitmq/rabbitmq-management/issues/67)
+
+ * Consumer utilisation is correctly reported as a number instead of `""` when it equals 0.
+
+ GitHub issue: [rabbitmq-management#26](https://github.com/rabbitmq/rabbitmq-management/issues/26)
+
+ * `rabbitmqadmin` misinterpreted boolean settings in config as strings
+
+ GitHub issue: [rabbitmq-management#20](https://github.com/rabbitmq/rabbitmq-management/issues/20)
+
+
+### AMQP 1.0 plugin
+
+#### Bug Fixes
+
+ * Fixed an edge case in serialisation of collections.
+
+ GitHub issue: [rabbitmq-amqp1.0#21](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/21)
+
+
+### Erlang client
+
+#### Enhancements
+
+ * Heartbeats are now enabled by default.
+
+ GitHub issue: [rabbitmq-erlang-client#25](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/25).
diff --git a/release-notes/3.5.8.md b/release-notes/3.5.8.md
new file mode 100644
index 0000000000..c93803a0c8
--- /dev/null
+++ b/release-notes/3.5.8.md
@@ -0,0 +1,30 @@
+## RabbitMQ 3.5.8
+
+RabbitMQ `3.5.8` fixes a security vulnerability ([CVE-2016-9877](https://pivotal.io/security/cve-2016-9877)) in the MQTT plugin.
+
+### Server
+
+#### Security
+
+ * `rabbit_diagnostics:maybe_stuck/0` no longer prints process' dictionary
+ because it may contain PRNG seed values and other sensitive information.
+
+### MQTT Plugin
+
+#### Security
+
+ * Authentication with correct username but omitted password succeeded when TLS/x509 certificate
+ wasn't provided by the client. CVE allocation for this vulnerability is pending.
+
+ GitHub issue: [rabbitmq-mqtt#96](https://github.com/rabbitmq/rabbitmq-mqtt/issues/96)
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-3.5.8.tar.gz`.
diff --git a/release-notes/3.6.0.md b/release-notes/3.6.0.md
new file mode 100644
index 0000000000..2783b3bee6
--- /dev/null
+++ b/release-notes/3.6.0.md
@@ -0,0 +1,462 @@
+## Release Highlights
+
+This is the release notes for RabbitMQ 3.6.0 RC3. This is a preview of
+a feature release.
+
+Key improvements in this release are:
+
+ * Lazy queues
+ * Much better queue synchronisation throughput
+ * Lower RAM use, tunable flow control
+ * Stronger password encryption with pluggable algorithms
+ * Development moved to GitHub; build system now uses erlang.mk
+ * Significant improvements to Web STOMP
+ * Experimental WinRT-compatible .NET client, SQL CLR compatibility in the "regular" one
+ * Pagination in management UI
+
+
+### Server
+
+#### Bug Fixes
+
+ * Cluster-wide alarm state is not updated when alarmed node goes down.
+
+ Contributed by Alexey Lebedeff (@binarin).
+
+ GitHub issue: [rabbitmq-server#362](https://github.com/rabbitmq/rabbitmq-server/issues/362)
+
+ * Blocked connections could be unblocked too early.
+
+ When multiple resource alarms were in effect, clearing just one of them would
+ unblock all publishers prematurely.
+
+ Contributed by Alexey Lebedeff (@binarin).
+
+ GitHub issue: [rabbitmq-server#379](https://github.com/rabbitmq/rabbitmq-server/issues/379)
+
+ * Blocked connections that are closed by clients are now expired
+ and cleaned up by the heartbeat mechanism.
+
+ Contributed by Alexey Lebedeff (@binarin).
+
+ GitHub issue: [rabbitmq-server#384](https://github.com/rabbitmq/rabbitmq-server/issues/384)
+
+ * If `RABBITMQ_MNESIA_DIR` was set to a value with a trailing slash, it could prevent
+ automatic clustering (and other operations that assume pristine node state) from starting.
+
+ GitHub issue: [rabbitmq-server#118](https://github.com/rabbitmq/rabbitmq-server/issues/118)
+
+ * Standard output and error redirection in package scripts not respects `RABBITMQ_LOG_BASE`.
+
+ GitHub issue: [rabbitmq-server#88](https://github.com/rabbitmq/rabbitmq-server/issues/88)
+
+ * Properly seed pseudo-random number generator when picking client port
+
+ Contributed by Alexey Lebedeff (@binarin).
+
+ GitHub issue: [rabbitmq-common#3](https://github.com/rabbitmq/rabbitmq-common/issues/3)
+
+ * `RABBITMQ_ALLOW_INPUT` was ignored on Windows
+
+ GitHub issue: [rabbitmq-server#490](https://github.com/rabbitmq/rabbitmq-server/issues/490)
+
+
+#### Enhancements
+
+ * Lazy queues.
+
+ Lazy queues is a new feature that can significantly reduce RAM use of queues
+ that can grow very long (e.g. don't have consumers online for hours or day).
+ Such queues page messages to disk as they enter the queue.
+
+ This feature is opt-in and has virtually no overhead for consumers in most cases,
+ making throughput for publishers much more even and reducing RAM use.
+
+ GitHub issue: [rabbitmq-server#351](https://github.com/rabbitmq/rabbitmq-server/issues/351)
+
+ * Queue synchronisation to mirrors now happens in batches of configurable size,
+ 4096 messages by default. This can improve sync throughput by an order of magnitude.
+
+ GitHub issue: [rabbitmq-server#336](https://github.com/rabbitmq/rabbitmq-server/issues/336)
+
+ * queue leader-to-node distribution is now more flexible: there are several
+ strategies to choose from.
+
+ GitHub issue: [rabbitmq-server#121](https://github.com/rabbitmq/rabbitmq-server/issues/121)
+
+ * Stronger password encryption algorithm.
+
+ SHA-256 is the hashing function used by default now, with SHA-512 being an option provided
+ out of the box. Support for more options (Scrypt, bcrypt, etc) can be added with plugins.
+
+ Existing user records will continue using MD5. To force re-hashing/encryption, change
+ user password using `rabbitmqctl` or management UI/HTTP API.
+
+ This should improve FIPS-180 compatibility.
+
+ GitHub issue: [rabbitmq-server#270](https://github.com/rabbitmq/rabbitmq-server/issues/270)
+
+ * Lower RAM use thanks to disabled in-process caching.
+
+ RabbitMQ's in-process read buffers are now disabled by default. This often significantly
+ reduces RAM usage at effectively no throughput or latency cost because the OS and file
+ system do the same job fairly well.
+
+ GitHub issue: [rabbitmq-server#228](https://github.com/rabbitmq/rabbitmq-server/issues/228)
+
+ * [Configurable flow control settings](https://blog.rabbitmq.com/posts/2015/10/new-credit-flow-settings-on-rabbitmq-3-5-5/)
+
+ Note that larger values will not necessarily lead to higher throughput or lower latency.
+ They can also result in larger RAM use and therefore can be dangerous.
+
+ GitHub issue: [rabbitmq-server#143](https://github.com/rabbitmq/rabbitmq-server/issues/143)
+
+ * Build system switched to erlang.mk.
+
+ [erlang.mk](https://github.com/ninenines/erlang.mk) is a modern build system for Erlang
+ projects. RabbitMQ and all of its sub-projects have been switched to it.
+
+ This yields several benefits for RabbitMQ maintainers and plugin developers,
+ for example, dependency management for plugins is much more straightforward, build
+ times are significantly improved, there is no need to depend on `rabbitmq-server` for most
+ plugins.
+
+ Various 3rd party plugins need to migrate to erlang.mk in order to be built against
+ RabbitMQ 3.6.0 (`rabbit_common`).
+
+ GitHub issue: [rabbitmq-server#388](https://github.com/rabbitmq/rabbitmq-server/issues/388)
+
+ * Streaming `rabbitmqctl`: `rabbitmqctl` list operations now stream results
+ instead of waiting for the entire result set to arrive. This both improves
+ responsiveness and makes it possible to list individual items, including those
+ which did not respond in time.
+
+ GitHub issue: [rabbitmq-server#62](https://github.com/rabbitmq/rabbitmq-server/issues/62)
+
+ * (More) standard exit codes for command line tools
+
+ `rabbitmqctl` and `rabbitmq-plugins` now use more standard, or at least distinctive,
+ error codes for various failures.
+
+ Contributed by Alexey Lebedeff (@binarin).
+
+ GitHub issue: [rabbitmq-server#396](https://github.com/rabbitmq/rabbitmq-server/issues/396)
+
+ * Improved log message for channel exceptions.
+
+ GitHub issues: [rabbitmq-server#416](https://github.com/rabbitmq/rabbitmq-server/issues/416)
+
+ * Improved log message when a client's TCP connection is closed unexpectedly.
+
+ GitHub issue: [rabbitmq-server#60](https://github.com/rabbitmq/rabbitmq-server/issues/60)
+
+ * Improved log message when a client connects to a non-existent vhost
+
+ GitHub issue: [rabbitmq-server#320](https://github.com/rabbitmq/rabbitmq-server/issues/320)
+
+ * Improved log message for `access_refused` connection errors.
+
+ GitHub issue: [rabbitmq-server#418](https://github.com/rabbitmq/rabbitmq-server/issues/418)
+
+ * Improved log message for `command_invalid` connection errors.
+
+ GitHub issue: [rabbitmq-server#419](https://github.com/rabbitmq/rabbitmq-server/issues/419)
+
+ * More sensible error code when a client connects to a non-existent vhost (or vhost it has
+ no permissions for). The code returned is now `530`.
+
+ GitHub issue: [rabbitmq-server#237](https://github.com/rabbitmq/rabbitmq-server/issues/237)
+
+ * Memory monitoring interval is now configurable.
+
+ GitHub issue: [rabbitmq-server#112](https://github.com/rabbitmq/rabbitmq-server/issues/112)
+
+ * Prevent background GC interval from becoming too large due to backoff.
+
+ Contributed by Dallas Marlow (@dallasmarlow).
+
+ GitHub issue: [rabbitmq-server#100](https://github.com/rabbitmq/rabbitmq-server/issues/100)
+
+ * Windows installer now supports "unattended" NSIS installs.
+
+ Contributed by Ryan Zink (@ryanzink).
+
+ GitHub issue: [rabbitmq-server#264](https://github.com/rabbitmq/rabbitmq-server/issues/264)
+
+ * Windows package name now includes RabbitMQ version it provides.
+
+ GitHub issue: [rabbitmq-server#80](https://github.com/rabbitmq/rabbitmq-server/issues/80)
+
+ * `kernel.net_ticktime` is now included into `rabbitmqctl status` output.
+
+ GitHub issue: [rabbitmq-server#63](https://github.com/rabbitmq/rabbitmq-server/issues/63)
+
+ * `rabbitmqctl` now has a command for setting up free disk space limit at runtime.
+
+ GitHub issue: [rabbitmq-server#461](https://github.com/rabbitmq/rabbitmq-server/issues/461)
+
+ * Backup directory location is now mentioned in failed upgrade messages.
+
+ GitHub issue: [rabbitmq-server#169](https://github.com/rabbitmq/rabbitmq-server/issues/169)
+
+ * `rabbit_diagnostics:maybe_stuck/0` now includes date and time in its output.
+
+ GitHub issue: [rabbitmq-server#506](https://github.com/rabbitmq/rabbitmq-server/issues/506)
+
+#### Other
+
+ * Erlang R16B03 is now required.
+
+ 17.5 or 18.x are recommended.
+
+ GitHub issue: [rabbitmq-server#250](https://github.com/rabbitmq/rabbitmq-server/issues/250)
+
+ * Use/support new Erlang/OTP 18 date and time API.
+
+ Only when it is available, of course.
+
+ GitHub issue: [rabbitmq-server#233](https://github.com/rabbitmq/rabbitmq-server/issues/233)
+
+ * RabbitMQ server now supports tracing of credit flow events (e.g. when a process is blocked
+ by credit flow). This is currently a compile-time flag aimed to be used in development
+ environments.
+
+ GitHub issue: [rabbitmq-server#137](https://github.com/rabbitmq/rabbitmq-server/issues/137)
+
+
+### Java Client
+
+#### Enhancements
+
+ * Shutdown threads can use an executor.
+
+ In environments with very constrainted per-process thread reasources, e.g. basic PaaS plans,
+ temporary threads created during connection shutdown may make the app run over the limit.
+
+ It is now possible to use a user-provided executor for shutdown operations instead.
+
+ GitHub issue: [rabbitmq-java-client#87](https://github.com/rabbitmq/rabbitmq-java-client/issues/87)
+
+ * ChannelManager now can use an executor.
+
+ Similar to the above but for `ChannelManager` operations.
+
+ GitHub issue: [rabbitmq-java-client#94](https://github.com/rabbitmq/rabbitmq-java-client/issues/94)
+
+ * `Channel#consumerCount(string)` is a new convenience method for retrieving number of consumers on a queue.
+
+ GitHub issue: [rabbitmq-java-client#49](https://github.com/rabbitmq/rabbitmq-java-client/issues/49)
+
+ * `Channel#messageCount(string)` is a new convenience method for retrieving number of messages in a queue.
+
+ GitHub issue: [rabbitmq-java-client#41](https://github.com/rabbitmq/rabbitmq-java-client/issues/41)
+
+ * `LongString#toString` is part of the API
+
+ GitHub issue: [rabbitmq-java-client#84](https://github.com/rabbitmq/rabbitmq-java-client/issues/84)
+
+
+### .NET Client
+
+#### Enhancements
+
+ * Host/address list support is back. Host selection strategy (when recovering a connection) is now pluggable.
+
+ GitHub issue: [rabbitmq-dotnet-client#81](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/81)
+
+ * Experimental .NET client with Windows RT support is now available.
+
+ GitHub issue: [rabbitmq-dotnet-client#16](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/16)
+
+ * SQL CLR compatibility.
+
+ GitHub issue: [rabbitmq-dotnet-client#57](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/57)
+
+ * `IModel#ConsumerCount(string)` is a new convenience method for retrieving number of consumers on a queue.
+
+ GitHub issue: [rabbitmq-dotnet-client#73](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/73)
+
+ * `IModel#MessageCount(string)` is a new convenience method for retrieving number of messages in a queue.
+
+ GitHub issue: [rabbitmq-dotnet-client#74](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/74)
+
+ * Continuation timeout is now configurable.
+
+ GitHub issue: [rabbitmq-dotnet-client#80](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/80)
+
+ * `RabbitMQ.Client.Headers` is a new class that contains constants for commonly used headers.
+
+ Contributed by Yury Pliner (@Pliner).
+
+ GitHub issue: [](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/52)
+
+#### Other
+
+ * .NET 4.5 is now required by the library.
+
+ GitHub issue: [rabbitmq-dotnet-client#134](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/134)
+
+ * Code examples are removed from the .NET client repository. All examples belong
+ to `rabbitmq-tutorials` now.
+
+ GitHub issue: [rabbitmq-dotnet-client#39](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/39)
+
+
+
+### Management plugin
+
+#### Enhancements
+
+ * Pagination for connections, channels, exchanges, and queues.
+
+ Management UI now supports pagination, making the UI much more responsive
+ in environments with many connections, queues, etc.
+
+ GitHub issue: [rabbitmq-management#50](https://github.com/rabbitmq/rabbitmq-management/issues/50)
+
+ * Queue information objects in responses now has a boolean property for queue
+ exclusivity instead of a confusing `owner_pid`.
+
+ GitHub issue: [rabbitmq-management#40](https://github.com/rabbitmq/rabbitmq-management/issues/40)
+
+#### Bug Fixes
+
+ * Connection and channel filtering should respect active vhost.
+
+ GitHub issue: [rabbitmq-management#34](https://github.com/rabbitmq/rabbitmq-management/issues/34)
+
+ * GET requests to `/api/queues/{vhost}/{name}/get` now accept/provide `application/json`
+
+ GitHub issue: [rabbitmq-management#46](https://github.com/rabbitmq/rabbitmq-management/issues/46)
+
+
+### MQTT plugin
+
+#### Enhancements
+
+ * Pluggable retained message stores. Since MQTT 3.1.1 spec doesn't dictate any consistency
+ or availability from the store in clustered environments, we only provide an in-memory implementation
+ suitable for development environments with a single node. For production environments, plugins that
+ provide stores with specific consistency guarantees are expected to be developed.
+
+ GitHub issue: [rabbitmq-mqtt#16](https://github.com/rabbitmq/rabbitmq-mqtt/issues/16)
+
+ * Default subscription (queue) TTL for non-clean sessions is now 24 hours
+
+ GitHub issue: [rabbitmq-mqtt#49](https://github.com/rabbitmq/rabbitmq-mqtt/issues/49)
+
+ * Socket-based authentication plugins now can work with plugins such as MQTT and STOMP
+ (those using direct Erlang client).
+
+ Contributed by Petr Gotthard (@gotthardp).
+
+ GitHub issue: [rabbitmq-server#111](https://github.com/rabbitmq/rabbitmq-server/issues/111)
+
+
+### STOMP plugin
+
+#### Enhancement
+
+ * Control over queue properties.
+
+ It is now possible to control queue properties (durable, auto-delete, exclusive plus several
+ supported x-arguments) for all STOMP destinations.
+
+ When using durable topics, it is now necessary to configure queue auto-deletion to `false`
+ explicitly via a header.
+
+ GitHub issue: [rabbitmq-stomp#24](https://github.com/rabbitmq/rabbitmq-stomp/issues/24)
+
+ * Socket-based authentication plugins now can work with plugins such as MQTT and STOMP
+ (those using direct Erlang client).
+
+ Contributed by Petr Gotthard (@gotthardp).
+
+ GitHub issue: [rabbitmq-server#111](https://github.com/rabbitmq/rabbitmq-server/issues/111)
+
+
+### Web STOMP plugin
+
+#### Enhancements
+
+ * Raw WebSocket endpoint.
+
+ The plugin now supports a new endpoint, `/ws`, which supports WebSocket connections directly
+ without the need to use SockJS.
+
+ GitHub issue: [rabbitmq-web-stomp#17](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/17).
+
+ * Support for binary data streams.
+
+ Thanks to the new direct WebSocket support, binary data now can be transferred over
+ Web STOMP connections.
+
+ GitHub issue: [rabbitmq-web-stomp#19](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/19)
+
+ * STOMP heartbeat support.
+
+ GitHub issue: [rabbitmq-web-stomp#15](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/15)
+
+ * Heartbeats are disabled for SockJS.
+
+ GitHub issue: [rabbitmq-web-stomp#28](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/28)
+
+ * CORS headers support
+
+ GitHub issue: [rabbitmq-web-stomp#12](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/12)
+
+ * Cowboy configuration.
+
+ Key settings of Cowboy, the HTTP/WebSocket server powering the plugin, now can be fine tuned
+ via this plugin.
+
+ GitHub issue: [rabbitmq-web-stomp#22](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/22)
+
+ * Cowboy is upgraded to `1.0.3`
+
+ GitHub issue: [rabbitmq-web-stomp#13](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/13)
+
+ * SockJS is upgraded to `1.0.3`.
+
+ GitHub issue: [rabbitmq-web-stomp#4](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/4)
+
+ * Queue parameters now can be configured via headers (just like in the regular STOMP plugin).
+
+ GitHub issue: [rabbitmq-web-stomp#7](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/7)
+
+ * Address Web STOMP listener binds to now can be configured.
+ Previously only port was configurable.
+
+ GitHub issue: [rabbitmq-web-stomp#2](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/2)
+
+
+### LDAP plugin
+
+#### Enhancements
+
+ * LDAP server connections are now pooled. This significantly reduces
+ the load on LDAP servers.
+
+ Contributed by [LShift](http://www.lshift.net).
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#1](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/1).
+
+
+
+### Sharding plugin
+
+#### Enhancements
+
+ * Routing key policy is now optional.
+
+ GitHub issue: [rabbitmq-sharding#6](https://github.com/rabbitmq/rabbitmq-sharding/issues/6)
+
+
+
+### Delayed Message Exchange
+
+#### Enhancement
+
+ * Initial public release.
+
+ GitHub issue: [rabbitmq-delayed-message-exchange#1](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/issues/1)
diff --git a/release-notes/3.6.1.md b/release-notes/3.6.1.md
new file mode 100644
index 0000000000..6316dd1a1a
--- /dev/null
+++ b/release-notes/3.6.1.md
@@ -0,0 +1,280 @@
+## RabbitMQ 3.6.1
+
+RabbitMQ `3.6.1` is a maintenance release that includes a fix for CVE-2015-8786,
+a vulnerability in RabbitMQ management plugin.
+
+### Server
+
+#### Bug Fixes
+
+ * Purging a lazy queue could result in an exception
+
+ GitHub issue: [rabbitmq-server#514](https://github.com/rabbitmq/rabbitmq-server/issues/514)
+
+ * Ensure `epmd` is running before starting RabbitMQ node on Windows
+
+ GitHub issue: [rabbitmq-server#625](https://github.com/rabbitmq/rabbitmq-server/issues/625)
+
+ * Channel error could make broker unreachable
+
+ Those errors were misleadingly logged as `channel_termination_timeout`, which
+ the issue really was with unhandled messages from concurrently closed TCP socket process.
+
+ GitHub issue: [rabbitmq-server#530](https://github.com/rabbitmq/rabbitmq-server/issues/530)
+
+ * (Automatic) deletion of an auto-delete queue could lead
+ to blocked channels
+
+ GitHub issue: [rabbitmq-server#581](https://github.com/rabbitmq/rabbitmq-server/issues/581)
+
+ * During (from scratch) queue sync, queue leader node didn't respect mirror alarm state.
+ With large data sets this could drive mirror node out of memory.
+
+ GitHub issue: [rabbitmq-server#616](https://github.com/rabbitmq/rabbitmq-server/issues/616)
+
+ * Changing password for users with non-standard (think broker configuration) password
+ hashing function, for example, those migrated from `3.5.x` releases, didn't update
+ effective hashing function.
+
+ GitHub issue: [rabbitmq-server#623](https://github.com/rabbitmq/rabbitmq-server/issues/623)
+
+ * Heavy and/or prolonged `rabbitmqctl` use could exhaust Erlang VM atom table
+
+ GitHub issue: [rabbitmq-server#549](https://github.com/rabbitmq/rabbitmq-server/issues/549)
+
+ * "Min masters" queue leader location strategy could result
+ in an error.
+
+ GitHub issue: [rabbitmq-server#521](https://github.com/rabbitmq/rabbitmq-server/issues/521)
+
+ * Fixed a race condition in `pause_minority` handling mode.
+
+ GitHub issue: [rabbitmq-server#307](https://github.com/rabbitmq/rabbitmq-server/issues/307)
+
+ * Significantly reduce possibility of a race condition when
+ an exchange is deleted and immediately re-declared, e.g. by a federation
+ link.
+
+ This could result in a link operation being blocked, preventing
+ nodes from stopping.
+
+ GitHub issue: [rabbitmq-federation#7](https://github.com/rabbitmq/rabbitmq-federation/issues/7)
+
+ * `amq.rabbitmq.log` messages now have information about originating
+ node in message headers
+
+ GitHub issue: [rabbitmq-server#595](https://github.com/rabbitmq/rabbitmq-server/issues/595)
+
+ * `scripts/rabbitmq-env` now works with GNU sed 4.2.2
+
+ GitHub issue: [rabbitmq-server#592](https://github.com/rabbitmq/rabbitmq-server/issues/592)
+
+ * Exceptions in VM memory use calculator no longer affect broker startup
+
+ GitHub issue: [rabbitmq-server#328](https://github.com/rabbitmq/rabbitmq-server/issues/328)
+
+ * [Direct Reply-to](https://www.rabbitmq.com/direct-reply-to.html) capability is now advertised to clients
+
+ GitHub issue: [rabbitmq-server#520](https://github.com/rabbitmq/rabbitmq-server/issues/520)
+
+#### Enhancements
+
+ * Paths with non-ASCII characters on Windows are now handled
+
+ RabbitMQ now can be installed into a location with non-ASCII characters,
+ e.g. when username contains them.
+
+ GitHub issues: [rabbitmq-server#493](https://github.com/rabbitmq/rabbitmq-server/issues/493)
+
+ * Configurable number of TCP connection acceptors
+
+ Plus a x10 increase of the default. This helps with workloads where connection
+ churn is very high (e.g. all clients are PHP Web apps that cannot maintain
+ long-lived connections).
+
+ GitHub issues: [rabbitmq-server#528](https://github.com/rabbitmq/rabbitmq-server/issues/528)
+
+ * `rabbitmqctl cluster_status` now includes cluster-wide resource alarm status
+
+ GitHub issue: [rabbitmq-server#392](https://github.com/rabbitmq/rabbitmq-server/issues/392)
+
+ * Windows installer no longer jumps over installation log
+
+ GitHub issue: [rabbitmq-server#634](https://github.com/rabbitmq/rabbitmq-server/issues/634)
+
+ * Improved `rabbitmqctl reset` error messages
+
+ GitHub issue: [rabbitmq-server#167](https://github.com/rabbitmq/rabbitmq-server/issues/167)
+
+ * More unsigned field data types are supported.
+
+ GitHub issue: [rabbitmq-server#20](https://github.com/rabbitmq/rabbitmq-server/issues/20)
+
+
+
+### Java client
+
+#### Enhancements
+
+ * Endpoints (hostnames) are now also accepted as a `java.util.List`
+
+ GitHub issue: [rabbitmq-java-client#125](https://github.com/rabbitmq/rabbitmq-java-client/issues/125)
+
+ * Autorecovering connections now shuffle hosts in a more
+ reliable way
+
+ GitHub issue: [rabbitmq-java-client#124](https://github.com/rabbitmq/rabbitmq-java-client/issues/124)
+
+#### Bug Fixes
+
+ * Binding recovery could fail
+
+ GitHub issue: [rabbitmq-java-client#129](https://github.com/rabbitmq/rabbitmq-java-client/issues/129)
+
+ * `Channel.queueDelete` could throw a `NullPointerException`
+
+ GitHub issue: [rabbitmq-java-client#120](https://github.com/rabbitmq/rabbitmq-java-client/issues/120)
+
+
+
+### .NET client
+
+#### Bug Fixes
+
+ * Autorecovering connections now use full list of provided hostnames
+ during recovery
+
+ GitHub issues: [rabbitmq-dotnet-client#153](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/153)
+
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Significantly reduce possibility of a race condition when
+ an exchange is deleted and immediately re-declared, e.g. by a federation
+ link
+
+ This rendered federation links dysfunctional.
+
+ GitHub issue: [rabbitmq-federation#7](https://github.com/rabbitmq/rabbitmq-federation/issues/7)
+
+
+
+### Management plugin
+
+#### Vulnerability Fixes
+
+ * CVE-2015-8786: user-provided query parameters `lengths_age` and `lengths_incr` had no validation
+ and could be used to exhaust server resources.
+
+ The attacker needs to have access to HTTP API (authenticate successfully and have sufficient
+ tags to pass authorisation) in order to carry out the attack.
+
+ There is no workaround for earlier releases.
+
+ Kudos to Vladimir Ivanov (Positive Technologies) for the responsible disclosure.
+
+ GitHub issue: [rabbitmq-management#97](https://github.com/rabbitmq/rabbitmq-management/issues/97)
+
+
+#### Enhancements
+
+ * Password hashing function is now included in exported definitions
+
+ Those upgrading from versions earlier than `3.6.0` via definitions export
+ won't have to temporarily set hashing function to MD5 to ensure export succeeds.
+
+ GitHub issue: [rabbitmq-management#117](https://github.com/rabbitmq/rabbitmq-management/issues/117)
+
+#### Bug Fixes
+
+ * Internet Explorer (9+) compatibility restored
+
+ GitHub issue: [rabbitmq-management#98](https://github.com/rabbitmq/rabbitmq-management/issues/98)
+
+ * Internet Explorer 11 compatibility fixes
+
+ GitHub issues: [rabbitmq-management#112](https://github.com/rabbitmq/rabbitmq-management/issues/112),
+ [rabbitmq-management#114](https://github.com/rabbitmq/rabbitmq-management/issues/114)
+
+ * When policy fails to be created with invalid paramaters a sensible
+ error message will be displayed.
+
+ GitHub issue: [rabbitmq-management#110](https://github.com/rabbitmq/rabbitmq-management/issues/110)
+
+
+### Federation Management plugin
+
+#### Enhancements
+
+ * Federation link form now includes more settings (that are exchange- and queue-federation specific)
+
+ GitHub issue: [rabbitmq-federation-management#5](https://github.com/rabbitmq/rabbitmq-federation-management/issues/5)
+
+
+### Erlang client
+
+#### Bug Fixes
+
+ * `password` and `depth` query parameters are now propagated to TLS options
+
+ GitHub issue: [rabbitmq-erlang-client#36](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/36)
+
+
+### STOMP plugin
+
+#### Bug Fixes
+
+ * `durable` and `persistent` headers weren't always used interchangeably,
+ leading to non-durable subscriptions
+
+ GitHub issue: [rabbitmq-stomp#58](https://github.com/rabbitmq/rabbitmq-stomp/issues/58)
+
+ * Client heartbeat timeouts resulted in confusing error messages
+ in broker log.
+
+ GitHub issues: [rabbitmq-stomp#63](https://github.com/rabbitmq/rabbitmq-stomp/issues/63)
+
+
+### Web STOMP plugin
+
+#### Bug Fixes
+
+ * Cowboy options are now supported for TLS listeners.
+
+ GitHub issue: [rabbitmq-web-stomp#36](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/36)
+
+
+### Web STOMP Examples plugin
+
+#### Bug Fixes
+
+ * Multi-byte UTF-8 characters are now handled
+ by the bundled version of stomp.js.
+
+ GitHub issue: [rabbitmq-web-stomp-examples#2](https://github.com/rabbitmq/rabbitmq-web-stomp-examples/issues/2)
+
+
+### Event Exchange plugin
+
+#### Bug Fixes
+
+ * Event timestamps are now in seconds, not milliseconds
+
+ Per AMQP 0-9-1 spec. This is not a particularly great choice for events,
+ so we will add an optional header with millisecond precision in a future release.
+
+ GitHub issue: [rabbitmq-event-exchange#8](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/8)
+
+
+### JSON RPC plugin
+
+Note: this plugin is deprecated and its use is highly discouraged.
+
+#### Enhancements
+
+ * RabbitmQ `3.6.x` support.
+
+ GitHub issue: [rabbitmq-jsonrpc#3](https://github.com/rabbitmq/rabbitmq-jsonrpc/issues/3)
diff --git a/release-notes/3.6.10.md b/release-notes/3.6.10.md
new file mode 100644
index 0000000000..67f8d0339d
--- /dev/null
+++ b/release-notes/3.6.10.md
@@ -0,0 +1,183 @@
+## RabbitMQ 3.6.10
+
+RabbitMQ `3.6.10` is a maintenance release.
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
+for general documentation on upgrades.
+
+:warning: This release introduces stricter validation for `rabbitmq_management_agent.sample_retention_policies` values.
+In case your installation overrides default sample retention policies, please make sure to read
+the discussion in [rabbitmq-management-agent#41](https://github.com/rabbitmq/rabbitmq-management-agent/issues/41) before
+upgrading to make sure your configuration passes validation.
+
+This release has no other known incompatibilities with versions 3.6.7 through 3.6.9. See [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7)
+upgrade and compatibility notes if upgrading from an earlier release.
+
+
+### Core Server
+
+#### Bug Fixes
+
+ * `rabbitmqctl wait` exited with the status code of 0 when node stopped because it could
+ not contact any cluster peers to [re-]join.
+
+ GitHub issue: [rabbitmq-server#1214](https://github.com/rabbitmq/rabbitmq-server/issues/1214)
+
+ * `rabbitmqctl forget_cluster_node` used in offline mode could result in promotion of a node that's no longer a cluster member.
+
+ GitHub issue: [rabbitmq-server#1213](https://github.com/rabbitmq/rabbitmq-server/issues/1213)
+
+ * Queue status (e.g. `running` vs. `idle`) was reported incorrectly in some cases.
+
+ GitHub issue: [rabbitmq-common#196](https://github.com/rabbitmq/rabbitmq-common/issues/196)
+
+ * queue leader locator could not be set using optional queue arguments (`x-arguments`).
+
+ GitHub issue: [rabbitmq-server#1172](https://github.com/rabbitmq/rabbitmq-server/issues/1172)
+
+ * CLI tool (e.g. `rabbitmqctl`) man pages were not rendered correctly.
+
+ GitHub issue: [rabbitmq-server#1180](https://github.com/rabbitmq/rabbitmq-server/issues/1180)
+
+#### Enhancements
+
+ * Disk space monitor will periodically retry (every 2 minutes by default, up to 10 times)
+ before going into disabled state as external tools used to monitor available disk space
+ can fail or produce unexpected output temporarily.
+
+ GitHub issue: [rabbitmq-server#1178](https://github.com/rabbitmq/rabbitmq-server/issues/1178)
+
+ * Memory relative free disk space limits now support integer values as well as floats.
+
+ GitHub issue: [rabbitmq-server#1194](https://github.com/rabbitmq/rabbitmq-server/issues/1194)
+
+
+### Management and Management Agent Plugins
+
+#### Bug Fixes
+
+ * TLS-related settings in HTTP API listeners could break JSON serialisation for the `GET /api/overview` endpoint.
+
+ GitHub issue: [rabbitmq-management#393](https://github.com/rabbitmq/rabbitmq-management/issues/393)
+
+ * Non-numerical values for numerical stats are now handled safety by stats aggregation. For example, if
+ free disk space monitor had to stop reporting data because it could not parse external tool output
+ that would break HTTP API `GET /api/overview` responses.
+
+ GitHub issue: [rabbitmq-management#375](https://github.com/rabbitmq/rabbitmq-management/issues/375).
+
+ * Stats are no longer emitted for connections that are not considered to be in the fully initialised
+ state.
+
+ GitHub issue: [rabbitmq-management-agent#42](https://github.com/rabbitmq/rabbitmq-management-agent/issues/42)
+
+ * `POST` requests now instruct clients to close TCP connections.
+
+ In some popular browsers (Chrome, Internet Explorer) a `POST` request followed by an immediate `GET` request
+ would result in a 400 response. Other browsers do no exhibit this behaviour.
+
+ GitHub issue: [rabbitmq-management#377](https://github.com/rabbitmq/rabbitmq-management/issues/377)
+
+ * I/O average time per operation graph didn't match the legend.
+
+ GitHub issue: [rabbitmq-management#384](https://github.com/rabbitmq/rabbitmq-management/issues/384)
+
+ * Definitions import and export forms are now separte to reduce the chance of user confusion.
+
+ GitHub issue: [rabbitmq-management#389](https://github.com/rabbitmq/rabbitmq-management/issues/389)
+
+ * Sample retention policies are now validated more strictly to avoid configurations that
+ are not supported and will lead to exceptions.
+
+ GitHub issue: [rabbitmq-management-agent#41](https://github.com/rabbitmq/rabbitmq-management-agent/issues/41)
+
+ * Certain stats for connections were not initialised as numerical values, which resulted in log noise.
+
+ GitHub issue: [rabbitmq-management-agent#45](https://github.com/rabbitmq/rabbitmq-management-agent/issues/45)
+
+ * UI operation for binding deletion did not respect optional (extra) binding arguments.
+
+ GitHub issue: [rabbitmq-management#243](https://github.com/rabbitmq/rabbitmq-management/issues/243)
+
+#### Enhancements
+
+ * Current virtual host is pre-selected on the "Add/update policy" form.
+
+ GitHub issue: [rabbitmq-management#382](https://github.com/rabbitmq/rabbitmq-management/issues/382)
+
+
+### MQTT Plugin
+
+#### Bug Fixes
+
+ * A non-initialized connection (e.g. one that failed early because client-provided
+ payload wasn't a valid MQTT payload) produced a crash report log entry during termination.
+
+ GitHub issue: [rabbitmq-mqtt#134](https://github.com/rabbitmq/rabbitmq-mqtt/issues/134)
+
+
+### LDAP Plugin
+
+#### Bug Fixes
+
+ * Stale connection purging in LDAP connection pool could fail
+ with a `badmatch`.
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#66](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/66)
+
+
+### Trust Store Plugin
+
+#### Enhancements
+
+ * Certificate change detection algorithm no longer uses `stat(2)` on certificate directory because
+ of its limitations that could lead to undetected changes in certain scenarios.
+
+ GitHub issue: [rabbitmq-trust-store#58](https://github.com/rabbitmq/rabbitmq-trust-store/issues/58)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+ * The plugin failed to start after being stopped and re-enabled.
+
+ GitHub issue: [rabbitmq-web-stomp#72](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/72)
+
+ * Server-initiated [consumer cancellation](https://www.rabbitmq.com/consumer-cancel.html) failed with
+ an exception.
+
+ GitHub issue: [rabbitmq-web-stomp#75](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/75)
+
+
+### Top Plugin
+
+#### Bug Fixes
+
+ * Node selection control used the wrong HTTP API path.
+
+ GitHub issue: [rabbitmq-top#15](https://github.com/rabbitmq/rabbitmq-top/issues/15)
+
+
+### Management Visualiser Plugin
+
+#### Bug Fixes
+
+ * The plugin wasn't compatible with recent `3.6.x` releases.
+
+ GitHub issue: [rabbitmq-management-visualiser#8](https://github.com/rabbitmq/rabbitmq-management-visualiser/issues/8)
+
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained. When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.10.tar.gz`.
diff --git a/release-notes/3.6.11.md b/release-notes/3.6.11.md
new file mode 100644
index 0000000000..27562355a1
--- /dev/null
+++ b/release-notes/3.6.11.md
@@ -0,0 +1,236 @@
+## RabbitMQ 3.6.11
+
+RabbitMQ `3.6.11` is a maintenance release.
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
+for general documentation on upgrades.
+
+âš ï¸ This release [changes how nodes compute the amount of RAM they use](https://groups.google.com/forum/#!topic/rabbitmq-users/TVZt45O3WzU) (and report). Previously the value was underreported.
+We recommend monitoring — or at least manually sampling — the [RSS of
+the Erlang VM](http://www.linfo.org/ps.html) running RabbitMQ, comparing it to the value reported in the management UI
+to compute the delta. Then adjust configured [VM high memory watermark](https://www.rabbitmq.com/alarms.html) an
+possibly provisioning more RAM as needed.
+
+This release has no other known incompatibilities with versions 3.6.7 through 3.6.10.
+See the upgrade and compatibility sections in the [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) if upgrading from an earlier release.
+
+âš ï¸ This is the first release that [supports Erlang/OTP 20](https://groups.google.com/forum/#!searchin/rabbitmq-users/OTP$2020%7Csort:relevance/rabbitmq-users/_imbAavBYjY/ninEKhMYAgAJ).
+
+
+### Core Server
+
+#### Bug Fixes
+
+ * Node RAM consumption calculation strategy [has changed](https://groups.google.com/forum/#!topic/rabbitmq-users/TVZt45O3WzU)
+ to a more precise one. Previously the value **was underreported**. It is possible to switch to the behavior in earlier versions
+ if desired. This will **affect monitoring charts** and possibly **require bumping VM memory high watermark**
+ or provisioning more RAM.
+
+ GitHub issue: [rabbitmq-server#1223](https://github.com/rabbitmq/rabbitmq-server/issues/1223), [rabbitmq-server#1270](https://github.com/rabbitmq/rabbitmq-server/pull/1270)
+
+
+ * Erlang/OTP 20 is [now supported](https://groups.google.com/forum/#!searchin/rabbitmq-users/OTP$2020%7Csort:relevance/rabbitmq-users/_imbAavBYjY/ninEKhMYAgAJ).
+
+ GitHub issues: [rabbitmq-server#1243](https://github.com/rabbitmq/rabbitmq-server/issues/1243), [rabbitmq-server#1246](https://github.com/rabbitmq/rabbitmq-server/pull/1246), [rabbitmq-federation#58](https://github.com/rabbitmq/rabbitmq-federation/pull/58), [rabbitmq-management-agent#47](https://github.com/rabbitmq/rabbitmq-management-agent/pull/47), [rabbitmq-management#415](https://github.com/rabbitmq/rabbitmq-management/pull/415), [rabbitmq-stomp#115](https://github.com/rabbitmq/rabbitmq-stomp/issues/115)
+
+ * `supervisor2`: supervisor could fail to restart failed child processes in some cases.
+ This could affect multiple plugins, e.g. federation.
+
+ Contributed by Aliaksey Artamonau (Couchbase).
+
+ GitHub issues: [rabbitmq-common#201](https://github.com/rabbitmq/rabbitmq-common/pull/201),
+ [rabbitmq-server#1238](https://github.com/rabbitmq/rabbitmq-server/pull/1238)
+
+ * Memory used by binary heap ("binaries") was reduced for some scenarios that involve mirrored queues.
+
+ GitHub issue: [rabbitmq-common#208](https://github.com/rabbitmq/rabbitmq-common/issues/208)
+
+ * Exclusive queues were not cleaned up when node failed or was considered unavailable by one of its
+ peers.
+
+ GitHub issue: [rabbitmq-server#1323](https://github.com/rabbitmq/rabbitmq-server/issues/1323)
+
+ * `rabbitmq-service.bat start` and `rabbitmq-service.bat stop` did not report access violation
+ errors.
+
+ GitHub issue: [rabbitmq-server#1324](https://github.com/rabbitmq/rabbitmq-server/issues/1324)
+
+ * When high VM memory watermarked is set to a value greater than 1.0,
+ `1.0` will be used as effective value now instead of the default (`0.4`).
+
+ GitHub issue: [rabbitmq-server#1285](https://github.com/rabbitmq/rabbitmq-server/issues/1285)
+
+#### Enhancements
+
+ * Total amount of RAM as seen by a node now can be overridden via config file.
+
+ GitHub issue: [rabbitmq-server#1224](https://github.com/rabbitmq/rabbitmq-server/issues/1224)
+
+ * Default value of `RABBITMQ_DISTRIBUTION_BUFFER_SIZE` is now `128000`. This makes inter-node communication
+ throughput more stable on 1 GBbit/s (or greater) network links.
+
+ GitHub issue: [rabbitmq-server#1306](https://github.com/rabbitmq/rabbitmq-server/issues/1306)
+
+ * Plugins that are already expanded (unarhived from `.ez` archives on node boot) won't be
+ expanded again.
+
+ Contributed by Alex Lebedeff (Mirantis).
+
+ GitHub issue: [rabbitmq-server#1226](https://github.com/rabbitmq/rabbitmq-server/pull/1226)
+
+
+### Management plugin
+
+#### Enhancements
+
+ * Listing queues, exchanges, vhosts via HTTP API is now more efficient for common cases
+ (e.g. when pagination is not used or only a subset of fields is requested).
+
+ GitHub issue: [rabbitmq-management#402](https://github.com/rabbitmq/rabbitmq-management/issues/402)
+
+ * Inter-node cluster link traffic information was missing.
+
+ GitHub issue: [rabbitmq-management#434](https://github.com/rabbitmq/rabbitmq-management/issues/434)
+
+ * Exclusive queues didn't have feature markers in the UI.
+
+ GitHub issue: [rabbitmq-management#459](https://github.com/rabbitmq/rabbitmq-management/issues/459)
+
+ * queue leader locator now has a feature marker in the UI.
+
+ GitHub issue: [rabbitmq-management#468](https://github.com/rabbitmq/rabbitmq-management/pull/468)
+
+ * It is now possible to pre-configure user permission at the time of its creation.
+
+ GitHub issue: [rabbitmq-management#441](https://github.com/rabbitmq/rabbitmq-management/issues/441)
+
+ * `rabbitmqadmin` now supports `--ssl-insecure` (`-k`), serving the same purpose as `-k` in curl
+
+ GitHub issue: [rabbitmq-management#452](https://github.com/rabbitmq/rabbitmq-management/issues/452)
+
+ * `rabbitmqadmin` now supports setting HTTP API endpoint hostname, port, username, and password
+ using a URI.
+
+ GitHub issue: [rabbitmq-management#437](https://github.com/rabbitmq/rabbitmq-management/issues/437)
+
+ * HTTP API requests now are less likely to produce log noise.
+
+ GitHub issue: [rabbitmq-web-dispatch#27](https://github.com/rabbitmq/rabbitmq-web-dispatch/issues/27)
+
+#### Bug Fixes
+
+ * queue leader migration no longer leaves statistics database records behind.
+
+ GitHub issue: [rabbitmq-management#427](https://github.com/rabbitmq/rabbitmq-management/issues/427)
+
+ * Consumer argument serialisation to JSON was fixed.
+
+ GitHub issue: [rabbitmq-management#424](https://github.com/rabbitmq/rabbitmq-management/issues/424)
+
+ * It is now again possible to create a user without a password (or password hash).
+ Such users won't be able to sign in with [internal authentication backend](https://www.rabbitmq.com/access-control.html)
+ but can be used with external authentication mechanisms (x509 certificates) and backends
+ (LDAP, HTTP, etc).
+
+ GitHib issue: [rabbitmq-management#383](https://github.com/rabbitmq/rabbitmq-management/issues/383)
+
+ * Pagination combined with a user-provided set of columns returned no results.
+
+ GitHub issue: [rabbitmq-management#404](https://github.com/rabbitmq/rabbitmq-management/issues/404)
+
+ * Regular expressions used for filtering were not correctly escaped.
+
+ GitHub issue: [rabbitmq-management#419](https://github.com/rabbitmq/rabbitmq-management/issues/419)
+
+ * `rabbitmqadmin` now handles float rates.
+
+ GitHub issue: [rabbitmq-management#457](https://github.com/rabbitmq/rabbitmq-management/issues/457)
+
+ * `rabbitmqadmin` now ignores `SIGPIPE` signals and much less likely to terminate when its output is piped to
+ another process.
+
+ GitHub issue: [rabbitmq-management#438](https://github.com/rabbitmq/rabbitmq-management/issues/438)
+
+ * HTTP requests with unintialised fields are less likely to crash log event handler.
+
+ GitHub issue: [rabbitmq-web-dispatch#27](https://github.com/rabbitmq/rabbitmq-web-dispatch/issues/27)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Federation links now recover better in certain scenarios, e.g. when one side of a link could be reset.
+
+ GitHub issue: [rabbitmq-federation#59](https://github.com/rabbitmq/rabbitmq-federation/issues/59)
+
+
+### STOMP Plugin
+
+#### Bug Fixes
+
+ * Erlang/OTP 20 is [now supported](https://groups.google.com/forum/#!searchin/rabbitmq-users/OTP$2020%7Csort:relevance/rabbitmq-users/_imbAavBYjY/ninEKhMYAgAJ).
+
+ GitHub issue: [rabbitmq-stomp#115](https://github.com/rabbitmq/rabbitmq-stomp/issues/115)
+
+
+### MQTT Plugin
+
+#### Enhancements
+
+ * No-op MQTT message retainer.
+
+ GitHub issue: [rabbitmq-mqtt#136](https://github.com/rabbitmq/rabbitmq-mqtt/issues/136)
+
+#### Bug Fixes
+
+ * MQTT connection processes now use connection log level.
+
+ GitHub issue: [rabbitmq-mqtt#142](https://github.com/rabbitmq/rabbitmq-mqtt/issues/142)
+
+
+### Consistent Hashing Exchange
+
+#### Bug Fixes
+
+ * Bucket distribution is now consistent (doesn't change) between plugin and node restarts
+ (assuming bindings haven't changed).
+
+ GitHub issue: [rabbitmq-consistent-hash-exchange#32](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/32)
+
+
+### Top Plugin
+
+#### Bug Fixes
+
+ * `rabbitmq-top` now gracefully covers scenarios when it is enabled only on a subset of cluster nodes.
+
+ GitHub issue: [rabbitmq-top#23](https://github.com/rabbitmq/rabbitmq-top/issues/23)
+
+ * Node drop down on ETS table tab redirected to the processes tab.
+
+ GitHub issue: [rabbitmq-top#24](https://github.com/rabbitmq/rabbitmq-top/issues/24)
+
+
+### Message Timestamp Plugin
+
+#### Enhancements
+
+ * Timestamp in milliseconds is also injected as a header (unless the header is present).
+
+ GitHub issue: [rabbitmq-message-timestamp#16](https://github.com/rabbitmq/rabbitmq-message-timestamp/issues/16)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
+When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.11.tar.gz`.
diff --git a/release-notes/3.6.12.md b/release-notes/3.6.12.md
new file mode 100644
index 0000000000..c49d0da19f
--- /dev/null
+++ b/release-notes/3.6.12.md
@@ -0,0 +1,67 @@
+## RabbitMQ 3.6.12
+
+RabbitMQ `3.6.12` is a maintenance release.
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
+for general documentation on upgrades.
+
+This release has no other known incompatibilities with versions 3.6.7 through 3.6.11.
+See the upgrade and compatibility sections in the [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) if upgrading from an earlier release.
+
+
+### Core Server
+
+#### Bug Fixes
+
+ * Process responsible for running the autoheal partition handling strategy
+ could run into a deadlock with its peers, preventing autoheal from completing.
+
+ GitHub issue: [rabbitmq-server#1346](https://github.com/rabbitmq/rabbitmq-server/issues/1346)
+
+ * Garbage collection of mirrored queue metrics on nodes that did not
+ host a leader or mirror for a queue affected delivery and acknowledgement rates.
+ This could result in rates being 0 or negative when they should not be.
+
+ GitHub issue: [rabbitmq-server#1340](https://github.com/rabbitmq/rabbitmq-server/issues/1340)
+
+ * Stats emission could prevent queue mirrors from performing garbage collection
+ and consume memory even when they were empty.
+
+ GitHub issue: [rabbitmq-common#220](https://github.com/rabbitmq/rabbitmq-common/pull/220) (continuation to [rabbitmq-common#196](https://github.com/rabbitmq/rabbitmq-common/issues/196))
+
+ * `RABBITMQ_SCHEDULER_BIND_TYPE` and `RABBITMQ_DISTRIBUTION_BUFFER_SIZE` now can be set via `rabbitmq-env.conf`.
+
+ GitHub issue: [rabbitmq-server#1338](https://github.com/rabbitmq/rabbitmq-server/issues/1338)
+
+
+### Shovel Management Plugin
+
+#### Bug Fixes
+
+ * Passwords in source and destination URIs are now redacted out.
+
+ GitHub issue: [rabbitmq-federation-management#15](https://github.com/rabbitmq/rabbitmq-federation-management/issues/15)
+
+
+### Federation Management Plugin
+
+#### Bug Fixes
+
+ * Passwords in upstream URIs are now redacted out.
+
+ GitHub issue: [rabbitmq-federation-management#15](https://github.com/rabbitmq/rabbitmq-federation-management/issues/15)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
+When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.12.tar.gz`.
diff --git a/release-notes/3.6.13.md b/release-notes/3.6.13.md
new file mode 100644
index 0000000000..14dcb66e3f
--- /dev/null
+++ b/release-notes/3.6.13.md
@@ -0,0 +1,119 @@
+## RabbitMQ 3.6.13
+
+RabbitMQ `3.6.13` is a maintenance release.
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
+for general documentation on upgrades.
+
+This release has no known incompatibilities with versions 3.6.7 through 3.6.12.
+See the upgrade and compatibility sections in the [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) if upgrading from an earlier release.
+
+### 3.6.x Series Support Timeline
+
+Please read this node on [RabbitMQ 3.6.x series support timeline](https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ).
+
+
+### Core Server
+
+#### Bug Fixes
+
+ * Memory usage monitor uses subprocesses a lot more sparingly. They are started
+ roughly once a second or not started at all, depending on the strategy (e.g. on Windows
+ Erlang VM allocator information is used instead).
+
+ GitHub issues: [rabbitmq-server#1343](https://github.com/rabbitmq/rabbitmq-server/issues/1343), [rabbitmq-common#224](https://github.com/rabbitmq/rabbitmq-common/issues/224)
+
+ * Very busy queues are now more efficient at prioritizing consumers, avoiding
+ consumer delivery blocking when relatively long running operations (e.g. bulk flushing
+ of transient messages to disk) happen.
+
+ GitHub issues: [rabbitmq-server#1388](https://github.com/rabbitmq/rabbitmq-server/pull/1388), [rabbitmq-server#1407](https://github.com/rabbitmq/rabbitmq-server/pull/1407)
+
+ * queue leader strategies now take additional queue HA arguments into account.
+
+ GitHub issue: [rabbitmq-server#1371](https://github.com/rabbitmq/rabbitmq-server/issues/1371)
+
+ * Logging to standard output using `RABBITMQ_LOGS=-` wasn't possible on Windows.
+
+ GitHub issue: [rabbitmq-server#1348](https://github.com/rabbitmq/rabbitmq-server/issues/1348)
+
+ * queue leader locator name now can be specified as Erlang strings.
+
+ GitHub issue: [rabbitmq-server#1411](https://github.com/rabbitmq/rabbitmq-server/issues/1411)
+
+ * Direct Erlang client connections could fail with obscure messages when
+ target node was still booting.
+
+ GitHub issue: [rabbitmq-server#1356](https://github.com/rabbitmq/rabbitmq-server/issues/1356)
+
+#### Enhancements
+
+ * `supervisor2` now can be used in environments that perform hot code upgrades.
+
+ GitHub issue: [rabbitmq-common#230](https://github.com/rabbitmq/rabbitmq-common/pull/230)
+
+ * systemd service file now white lists exit code 69.
+
+ GitHub issue: [rabbitmq-server-release#51](https://github.com/rabbitmq/rabbitmq-server-release/issues/51)
+
+ * Example systemd service file now includes service restart settings.
+
+ GitHub issue: [rabbitmq-server#1359](https://github.com/rabbitmq/rabbitmq-server/issues/1359)
+
+ * queue leader locator strategy now can be configured using strings.
+
+ GitHub issue: [rabbitmq-server#1411](https://github.com/rabbitmq/rabbitmq-server/issues/1411)
+
+ * Plugin activation avoids logs things that can be confusing.
+
+ GitHub issue: [rabbitmq-server#1364](https://github.com/rabbitmq/rabbitmq-server/issues/1364)
+
+
+### Management Plugin
+
+#### Enhancements
+
+ * Minor efficiency improvements around stats collection.
+
+ GitHub issues: [rabbitmq-common#235](https://github.com/rabbitmq/rabbitmq-common/pull/235)
+
+ * jQuery upgraded to 1.12.4.
+
+ GitHub issue: [rabbitmq-management#502](https://github.com/rabbitmq/rabbitmq-management/pull/502)
+
+ * UI improvements.
+
+ * More detailed memory use breakdown on the node page.
+
+ GitHub issue: [rabbitmq-management#500](https://github.com/rabbitmq/rabbitmq-management/pull/500)
+
+ * It is now possible to configure an HTTP API path prefix for the plugin.
+
+ GitHub issue: [rabbitmq-management#481](https://github.com/rabbitmq/rabbitmq-management/issues/481)
+
+ * Queue details page no longer truncates node name.
+
+ GitHub issue: [rabbitmq-management#473](https://github.com/rabbitmq/rabbitmq-management/issues/473)
+
+ * Policy name in queue and exchange info is now a link.
+
+ GitHub issue: [rabbitmq-management#493](https://github.com/rabbitmq/rabbitmq-management/issues/493)
+
+ * `DELETE /api/connections/{name}` is now more defensive.
+
+ GitHub issue: [rabbitmq-management#497](https://github.com/rabbitmq/rabbitmq-management/issues/497)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
+When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.13.tar.gz`.
diff --git a/release-notes/3.6.14.md b/release-notes/3.6.14.md
new file mode 100644
index 0000000000..594bf07094
--- /dev/null
+++ b/release-notes/3.6.14.md
@@ -0,0 +1,48 @@
+## RabbitMQ 3.6.14
+
+RabbitMQ `3.6.14` is a maintenance release that primarily fixes an issue in systemd
+unit files that affected some systems. It is virtually identical to [3.6.13](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_13)
+otherwise.
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
+for general documentation on upgrades.
+
+This release has no known incompatibilities with versions 3.6.7 through 3.6.13.
+See the upgrade and compatibility sections in the [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) if upgrading from an earlier release.
+
+### 3.6.x Series Support Timeline
+
+Please read this node on [RabbitMQ 3.6.x series support timeline](https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ).
+
+
+### Debian and RPM packages
+
+#### Bug Fixes
+
+ * systemd service unit no longer has trailing comments that could lead nodes
+ into restart loops on some systems.
+
+ GitHub issues: [rabbitmq-server#1422](https://github.com/rabbitmq/rabbitmq-server/issues/1422)
+
+### Management Plugin
+
+#### Bug Fix
+
+ * Expandable sections on node metrics page failed to expand.
+
+ GitHub issues: [rabbitmq-management#507](https://github.com/rabbitmq/rabbitmq-management/issues/507)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
+When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.13.tar.gz`.
diff --git a/release-notes/3.6.15.md b/release-notes/3.6.15.md
new file mode 100644
index 0000000000..e7ec97b016
--- /dev/null
+++ b/release-notes/3.6.15.md
@@ -0,0 +1,142 @@
+## RabbitMQ 3.6.15
+
+RabbitMQ 3.6.15 is a maintenance release.
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the
+documentation](https://www.rabbitmq.com/upgrade.html) for general
+documentation on upgrades.
+
+This release has no known incompatibilities with versions 3.6.7 through
+3.6.14. See the upgrade and compatibility sections in the [3.6.7 release
+notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7)
+if upgrading from an earlier release.
+
+### 3.6.x Series Support Timeline
+
+Please read this node on [RabbitMQ 3.6.x series support
+timeline](https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ).
+
+### Core Server
+
+#### Bug Fixes
+
+* Avoid infinite loop when dropping entries in the GM.
+
+ GitHub issue: [rabbitmq-server#1431](https://github.com/rabbitmq/rabbitmq-server/pull/1431)
+
+* Various changes to the OCF scripts.
+
+ GitHub issues: [rabbitmq-server-release#66](https://github.com/rabbitmq/rabbitmq-server-release/pull/66),
+ [rabbitmq-server-release#67](https://github.com/rabbitmq/rabbitmq-server-release/pull/67),
+ [rabbitmq-server-release#73](https://github.com/rabbitmq/rabbitmq-server-release/pull/73)
+
+#### Enhancements
+
+ * [Internal authN backend](https://www.rabbitmq.com/access-control.html) will now prohibit logins with a blank passwords. Such attempts
+ are usually made by mistake because a passwordless user that was meant to authenticate
+ using [x509 (TLS) certificates](https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl/) was not configured to use the correct [authentication
+ mechanism](https://www.rabbitmq.com/authentication.html).
+
+ Note that the same behavior can already be achieved using a [credential validator](https://www.rabbitmq.com/passwords.html),
+ so this is just an extra safety measure.
+
+ GitHub issue: [rabbitmq-server#1466](https://github.com/rabbitmq/rabbitmq-server/pull/1466)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+* Multi-input forms (such as message properties) again submit all fields.
+
+ GitHub issues: [rabbitmq-management#511](https://github.com/rabbitmq/rabbitmq-management/issues/511)
+
+ * User update form now successfully updates tags for passwordless users (or if the password is cleared at the same time).
+
+ GitHub issue: [rabbitmq-management#533](https://github.com/rabbitmq/rabbitmq-management/issues/533)
+
+* `Content-Type` header was returned twice in API responses.
+
+ GitHub issue: [rabbitmq-management#527](https://github.com/rabbitmq/rabbitmq-management/issues/527)
+
+* Avoid duplicated event handlers in the UI.
+
+ GitHub issue: [rabbitmq-management#516](https://github.com/rabbitmq/rabbitmq-management/pull/516)
+
+* Use `auto` width to make option values fully visible.
+
+ GitHub issue: [rabbitmq-management#519](https://github.com/rabbitmq/rabbitmq-management/issues/519)
+
+### MQTT Plugin
+
+#### Bug Fixes
+
+* Concurrently registering consumers could fail with a "Key exists" exception in the log.
+
+ GitHub issue: [rabbitmq-mqtt#132](https://github.com/rabbitmq/rabbitmq-mqtt/issues/132)
+
+### Federation Plugin
+
+#### Bug Fixes
+
+* Disabling policy (or plugin) now cleans up all internal exchanges and queues used by federation links.
+
+ GitHub issue: [rabbitmq-federation#63](https://github.com/rabbitmq/rabbitmq-federation/issues/63)
+
+### Standalone MacOS Package
+
+#### Bug Fixes
+
+* Standalone MacOS package now ships with Erlang/OTP 20.1 which is compatible with High Sierra.
+
+ GitHub issue: [rabbitmq-server-release#68](https://github.com/rabbitmq/rabbitmq-server-release/issues/68)
+
+### Debian Package
+
+#### Bug Fixes
+
+* Make adm the group owner for RabbitMQ log directories.
+
+ GitHub issue: [rabbitmq-server-release#70](https://github.com/rabbitmq/rabbitmq-server-release/pull/70)
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+* `https/web-mqtt` listener displayed incorrect port in management UI.
+
+ GitHub issue: [rabbitmq-web-mqtt#25](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/25)
+
+### Top Plugin
+
+#### Bug Fixes
+
+* Fix node and row selectors after jQuery upgrade to 1.12.
+
+ GitHub issue: [rabbitmq-top#29](https://github.com/rabbitmq/rabbitmq-top/pull/29)
+
+### Erlang Client
+
+#### Buf Fixes
+
+* Enable hostname verification for OTP 19.
+
+ GitHub issue: [rabbitmq-erlang-client#95](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/95)
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All
+configuration and persistent message data are retained. When upgrading
+using definitions export/import from versions earlier than 3.6.0, see
+http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ
+documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains
+the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.6.15.tar.xz`.
diff --git a/release-notes/3.6.16.md b/release-notes/3.6.16.md
new file mode 100644
index 0000000000..c3f8b3c583
--- /dev/null
+++ b/release-notes/3.6.16.md
@@ -0,0 +1,143 @@
+## RabbitMQ 3.6.16
+
+RabbitMQ 3.6.16 is a maintenance release that primarily includes selected backports from
+the [3.7.x series](https://www.rabbitmq.com/changelog.html). Users of earlier 3.6.x releases
+are recommended to [upgrade](https://www.rabbitmq.com/upgrade.html) to a 3.7.x release, e.g. [3.7.6](https://github.com/rabbitmq/rabbitmq-server/releases).
+
+### Upgrades and Compatibility
+
+See the [Upgrades documentation guide](https://www.rabbitmq.com/upgrade.html) for general
+documentation on upgrades.
+
+This release nearly exclusively contains backports of bug fixes, optimisations and small enhancements
+(e.g. safer defaults) from the 3.7.x series. Some of them are **potentially breaking** but
+should only affect a very small percentage of users. They are:
+
+ * The max 255 priority cap is now enforced at all levels
+ * Default `rabbit.channel_max` value is now about 2K, a much safer value than 65K used previously
+ * Default idle LDAP connection timeout is now 300 seconds instead of infinity
+
+This release has no other known incompatibilities with versions 3.6.7 through
+3.6.15. See the upgrade and compatibility sections in the [3.6.7 release
+notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7)
+if upgrading from an earlier release.
+
+### 3.6.x Series Support Timeline
+
+Please read this note on [RabbitMQ 3.6.x series support
+timeline](https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ).
+
+
+### Core Server
+
+#### Bug Fixes
+
+* queue leader locator `min-masters` incorrectly calculated the number of masters.
+
+ GitHub issue: [rabbitmq-server#1519](https://github.com/rabbitmq/rabbitmq-server/issues/1519)
+
+* Maximum supported number of queue priorities (255) is now enforced.
+
+ GitHub issue: [rabbitmq-server#1590](https://github.com/rabbitmq/rabbitmq-server/issues/1590)
+
+#### Enhancements
+
+ * On Erlang 20.2.3 or later, more optimal memory allocators will be used. On some workloads that leads
+ to [significant reduction in node's RAM consumption](https://groups.google.com/d/msg/rabbitmq-users/LSYaac9frYw/LNZDZUlrBAAJ). The change is workload-specific, however, on the workloads
+ tested that do introduce a negative effect (more RAM used) the difference was very small (about 1%).
+
+
+ It is possible to go back to the previous settings, `+MBas aoffcbf +MHas aoffcbf +MBlmbcs 5120 +MHlmbcs 5120 +MMmcs 10`,
+ by specifying them in the `RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS` [environment variable](https://www.rabbitmq.com/configure.html#customise-environment).
+
+ On Erlang/OTP releases older than 20.2.3 there will be no default changes.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1604](https://github.com/rabbitmq/rabbitmq-server/pull/1604), [rabbitmq/rabbitmq-server#1612](https://github.com/rabbitmq/rabbitmq-server/pull/1612)
+
+ * `queue.delete` operations will now force delete queues that don't have a [promotable
+ master](https://www.rabbitmq.com/ha.html#unsynchronised-mirrors).
+
+ GitHub issue: [rabbitmq-server#1501](https://github.com/rabbitmq/rabbitmq-server/issues/1501)
+
+ * `ha-promote-on-failure` is a new mirrored queue setting that's similar to [`ha-promote-on-shutdown`](https://www.rabbitmq.com/ha.html#unsynchronised-mirrors)
+ but for unexpected leader replica termination.
+
+ GitHub issue: [rabbitmq-server#1578](https://github.com/rabbitmq/rabbitmq-server/pull/1578)
+ * Lock contention in internal database is now much lower when a node with a lot of exclusive queues
+ shuts down or is otherwise considered to be unavailable by peers. This means fewer CPU cycles
+ spent cleaning up the exclusive queues.
+
+ GitHub issue: [rabbitmq-server#1570](https://github.com/rabbitmq/rabbitmq-server/pull/1570)
+
+ * Default [max number of channels allowed on a connection](https://www.rabbitmq.com/networking.html#tuning-for-large-number-of-connections-channel-max) (a.k.a. `channel_max`) has been lowered from `65535` to `2047`.
+ The new default is much safer and will reduce the effect application channel leaks have on node resource consumption. **This is a potentially breaking change**.
+
+ Systems where a lot (at least hundreds) of channels *per connection* are used should explicitly override `channel_max` in the [config file](https://www.rabbitmq.com/configure.html) to a higher suitable value, e.g.:
+
+``` erlang
+[
+ {rabbit, [
+ {channel_max, 4000}
+ ]}
+].
+```
+
+ GitHub issue: [rabbitmq-server#1593](https://github.com/rabbitmq/rabbitmq-server/issues/1593)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Eliminated unnecessary encoding conversions that could lead to increased memory consumption.
+
+ GitHub issue: [rabbitmq-management#550](https://github.com/rabbitmq/rabbitmq-management/pull/550)
+
+ * `rabbitmqadmin` could run into an exception with certain formatting settings on Python 2.x.
+
+ GitHub issue: [rabbitmq-management#568](https://github.com/rabbitmq/rabbitmq-management/issues/568)
+
+ * `rabbitmqadmin` incorrectly encoded spaces in connection name values
+
+ GitHub issue: [rabbitmq-management#579](https://github.com/rabbitmq/rabbitmq-management/pull/579)
+
+ * HTTP API stats documentation used incorrect field names.
+
+ GitHub issue: [rabbitmq-management#561](https://github.com/rabbitmq/rabbitmq-management/pull/561)
+
+#### Enhancements
+
+ * Reduced padding usage in tables in the management UI.
+
+ GitHub issue: [rabbitmq-management#541](https://github.com/rabbitmq/rabbitmq-management/pull/541)
+
+
+### LDAP Plugin
+
+#### Bug Fixes
+
+ * LDAP server-initiated connection closure was not handled gracefully by connection pool.
+ Kudos to Adam Gardner for [doing all the hard work](https://groups.google.com/forum/#!topic/rabbitmq-users/4Gva3h-yJzM) investigating this issue.
+
+ GitHub issues: [rabbitmq-auth-backend-ldap#82](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/82), [rabbitmq-auth-backend-ldap#90](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/90)
+
+ * `rabbit.idle_timeout` now defaults to 300 seconds instead of `infinity`.
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#81](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/81)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All
+configuration and persistent message data are retained. When upgrading
+using definitions export/import from versions earlier than 3.6.0, see
+http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ
+documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains
+the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.6.16.tar.xz`.
diff --git a/release-notes/3.6.2.md b/release-notes/3.6.2.md
new file mode 100644
index 0000000000..c5e1558465
--- /dev/null
+++ b/release-notes/3.6.2.md
@@ -0,0 +1,375 @@
+## RabbitMQ 3.6.2
+
+RabbitMQ `3.6.2` is a maintenance release that includes a [new statistics
+collector in the management plugin](https://github.com/rabbitmq/rabbitmq-management/issues/41).
+
+### Management Plugin Incompatibility with Earlier 3.6.x Releases
+
+Because this version includes significant changes to the management plugin,
+it should not be deployed into clusters with mixed `3.6.x` node versions
+unless **all nodes that have the management plugin enabled** run `3.6.2`.
+Otherwise HTTP API requests will fail with exceptions in some scenarios and parts of
+management UI may not be updated.
+
+There are no other known incompatibilities with earlier `3.6.x` releases.
+
+
+### OpenSSL Requirement for Standalone Mac Release
+
+Standalone Mac OS X package now requires OpenSSL 1.0.x to be provided by the system, for example,
+from Homebrew.
+
+### Optional `socat` Package Dependency for Distributions that Use `systemd`
+
+Starting with `3.6.2`, RabbitMQ Debian and RPM packages have an optional
+[dependency on socat](https://groups.google.com/forum/#!searchin/rabbitmq-users/socat/rabbitmq-users/ktzOsgNEBkY/cOlF_eP6AAAJ). When
+installing using `dpkg`, this dependency won't be automatically installed. To install it manually, use
+
+ sudo apt-get install socat
+
+
+### Server
+
+#### Bug Fixes
+
+ * Channel operations that time out no longer produce noisy crash reports in
+ RabbitMQ log files
+
+ GitHub issue: [rabbitmq-common#63](https://github.com/rabbitmq/rabbitmq-common/issues/63)
+
+ * Channel operation timeout default is bumped to 15 seconds
+
+ GitHub issue: [rabbitmq-server/issues/667](https://github.com/rabbitmq/rabbitmq-server/issues/667)
+
+ * Windows service will pick up RabbitMQ config file regardless of whether
+ it was present during service installation
+
+ GitHub issue: [rabbitmq-server#659](https://github.com/rabbitmq/rabbitmq-server/issues/659)
+
+ * Erlang distribution failures for `rabbitmqctl` and cross-node links will
+ provide more detail when running on Erlang 19 (scheduled for release in Q3 2016).
+
+ GitHub issue: [rabbitmq-server#401](https://github.com/rabbitmq/rabbitmq-server/issues/401)
+
+ * `rabbitmqctl list_consumers` now lists all consumers on a given queue
+
+ Previously it would only list one.
+
+ Contributed by Alexey Lebedeff (Mirantis).
+
+ GitHub issue: [rabbitmq-server#701](https://github.com/rabbitmq/rabbitmq-server/issues/701)
+
+ * `rabbitmqctl list_queues` now correctly outputs rows for unavailable queues
+
+ Contributed by Alexey Lebedeff (Mirantis).
+
+ GitHub issue: [rabbitmq-server#696](https://github.com/rabbitmq/rabbitmq-server/issues/696)
+
+ * `rabbitmqctl set_disk_free_limit mem_relative` erroneously rejected values greater than `1.0`
+
+ GitHub issue: [rabbitmq-server#717](https://github.com/rabbitmq/rabbitmq-server/issues/717)
+
+ * Messages with an invalid client-provided `x-death` header value caused queue process termination
+
+ GitHub issue: [rabbitmq-server#767](https://github.com/rabbitmq/rabbitmq-server/issues/767)
+
+ * Messages with priorities higher than queue max are now assigned max configured priority
+ and no longer cause an unhandled exception that results in queue process restart
+
+ GitHub issue: [rabbitmq-server#795](https://github.com/rabbitmq/rabbitmq-server/issues/795)
+
+ * Policy-related `rabbitmqctl` commands could return unformatted messages
+
+ GitHub issue: [rabbitmq-server#742](https://github.com/rabbitmq/rabbitmq-server/issues/742)
+
+ * `RABBITMQ_IO_THREAD_POOL_SIZE` is no longer ignored by `rabbitmq-server.bat`
+
+ GitHub issue: [rabbitmq-server#705](https://github.com/rabbitmq/rabbitmq-server/issues/705)
+
+ * Deleting a vhost in parallel with updating a policy in it resulted
+ in unhandled exceptions
+
+ GitHub issues: [rabbitmq-server#755](https://github.com/rabbitmq/rabbitmq-server/issues/755),
+ [rabbitmq-server#759](https://github.com/rabbitmq/rabbitmq-server/issues/759),
+ [rabbitmq-server#744](https://github.com/rabbitmq/rabbitmq-server/issues/744)
+
+#### Enhancements
+
+ * Connections now emit stats unconditionally when they are blocked and unblocked
+ by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date
+
+ GitHub issue: [rabbitmq-server#679](https://github.com/rabbitmq/rabbitmq-server/issues/679)
+
+ * New (node-local) health check command
+
+ `rabbitmqctl node_health_check` is a new command that performs basic health check of a node
+
+ GitHub issue: [rabbitmq-server#398](https://github.com/rabbitmq/rabbitmq-server/issues/398)
+
+ * Automatic restart policy enabled for Windows service
+
+ GitHub issue: [rabbitmq-server#645](https://github.com/rabbitmq/rabbitmq-server/issues/645)
+
+ * Default number of async I/O VM threads is now calculated based on the
+ number of available CPU cores
+
+ GitHub issue: [rabbitmq-server#151](https://github.com/rabbitmq/rabbitmq-server/issues/151)
+
+ * `rabbitmqctl list_queues` now supports new flags, `--offline` and `--online`, that limit
+ result to only unavailable or available queues (queue leaders, to be more precise)
+
+ Contributed by Alexey Lebedeff (Mirantis).
+
+ GitHub issue: [rabbitmq-server#688](https://github.com/rabbitmq/rabbitmq-server/issues/688)
+
+ * RabbitMQ will no longer log a warning about disabled kernel polling on Windows
+
+ The runtime does not support kernel polling (I/O completion ports) on Windows,
+ so there is nothing the user can do about it.
+
+ GitHub issue: [rabbitmq-server#695](https://github.com/rabbitmq/rabbitmq-server/issues/695)
+
+ * Queue index is now updated in batches when messages are requeued
+
+ GitHub issue: [rabbitmq-server#343](https://github.com/rabbitmq/rabbitmq-server/issues/343)
+
+
+### Management plugin
+
+#### Bug Fixes
+
+ * Samples (stats) for abnormally terminated connections and channels will now be cleaned up more aggressively
+
+ GitHub issue: [rabbitmq-management#198](https://github.com/rabbitmq/rabbitmq-management/issues/198)
+
+ * Cluster name could be returned by HTTP API as a non-string value
+
+ GitHub issue: [rabbitmq-management#143](https://github.com/rabbitmq/rabbitmq-management/issues/143)
+
+ * Improved IE 11 compatibility
+
+ GitHub issue: [rabbitmq-management#123](https://github.com/rabbitmq/rabbitmq-management/issues/123)
+
+#### Enhancements
+
+ * Management plugin has a new, better parallelised event collector which is less likely to
+ fall behind.
+
+ GitHub issues: [rabbitmq-management#41](https://github.com/rabbitmq/rabbitmq-management/issues/41),
+ [rabbitmq-management#166](https://github.com/rabbitmq/rabbitmq-management/issues/166),
+ [rabbitmq-management#173](https://github.com/rabbitmq/rabbitmq-management/issues/173),
+ [rabbitmq-management#185](https://github.com/rabbitmq/rabbitmq-management/issues/185),
+ [rabbitmq-management#174](https://github.com/rabbitmq/rabbitmq-management/issues/174)
+
+ * Clients now can provide a human-readable connection name that will be displayed
+ in the management UI. Currently Java, .NET and Erlang clients support this.
+ In order to use this feature, set the `connection_name` key in client properties.
+ Note that this name doesn't have to be unique and cannot be used as a connection identifier,
+ for example, in HTTP API requests.
+
+ GitHub issue: [rabbitmq-server#104](https://github.com/rabbitmq/rabbitmq-server/issues/104)
+
+ * `GET /api/nodes/{node}/memory` and `GET /api/nodes/{node}/memory/relative` are new HTTP API
+ endpoints that return memory usage breakdown in absolute (same as `rabbitmqctl status`) and
+ relative terms.
+
+ GitHub issue: [rabbitmq-management#161](https://github.com/rabbitmq/rabbitmq-management/issues/161)
+
+ * HTTPS related improvements in `rabbitmqadmin`.
+
+ GitHub issues: [rabbitmq-management#152](https://github.com/rabbitmq/rabbitmq-management/issues/152), [rabbitmq-management#151](https://github.com/rabbitmq/rabbitmq-management/issues/151), [rabbitmq-management#149](https://github.com/rabbitmq/rabbitmq-management/issues/149).
+
+ * Policies now can be listed (read) by the users tagged with `management` and `monitoring`
+
+ As well as those tagged with `policymaker` and `administrator`, of course.
+
+ GitHub issue: [rabbitmq-management#156](https://github.com/rabbitmq/rabbitmq-management/issues/156)
+
+ * Effective rates mode is now displayed for cluster nodes by default
+
+ GitHub issue: [rabbitmq-management#177](https://github.com/rabbitmq/rabbitmq-management/issues/177)
+
+
+### MQTT plugin
+
+#### Bug Fixes
+
+ * Resource alarms are handled correctly by MQTT connections
+
+ GitHub issues: [rabbitmq-mqtt#62](https://github.com/rabbitmq/rabbitmq-mqtt/issues/62)
+
+ * Session [pre-existing] presence is now correctly communicated to clients
+
+ GitHub issue: [rabbitmq-mqtt#61](https://github.com/rabbitmq/rabbitmq-mqtt/issues/61)
+
+#### Enhancements
+
+ * Connections now emit stats unconditionally when they are blocked and unblocked
+ by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date.
+
+ GitHub issue: [rabbitmq-mqtt#71](https://github.com/rabbitmq/rabbitmq-mqtt/issues/71)
+
+ * More connection details for MQTT connections reported to management UI
+
+ GitHub issue: [rabbitmq-mqtt#66](https://github.com/rabbitmq/rabbitmq-mqtt/pull/66)
+
+### STOMP plugin
+
+#### Bug Fixes
+
+ * Resource alarms are handled correctly by STOMP connections
+
+ GitHub issues: [rabbitmq-stomp#68](https://github.com/rabbitmq/rabbitmq-stomp/issues/68),
+ [rabbitmq-stomp#67](https://github.com/rabbitmq/rabbitmq-stomp/issues/67)
+
+#### Enhancements
+
+ * Connections now emit stats unconditionally when they are blocked and unblocked
+ by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date.
+
+ GitHub issue: [rabbitmq-stomp#70](https://github.com/rabbitmq/rabbitmq-stomp/issues/70)
+
+ * More connection details for STOMP connections reported to management UI
+
+ GitHub issue: [rabbitmq-stomp#55](https://github.com/rabbitmq/rabbitmq-stomp/issues/55)
+
+
+
+### Web STOMP plugin
+
+#### Enhancements
+
+ * More connection details for STOMP-over-WebSockets connections reported to management UI
+
+ GitHub issue: [rabbitmq-web-stomp#45](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/45)
+
+ * The plugin now sends a protocol header (`Sec-WebSocket-Protocol`) response when
+ client presents it.
+
+ GitHub issue: [rabbitmq-web-stomp#53](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/53)
+
+
+### Web MQTT plugin
+
+#### Bug Fixes
+
+ * More connection details for MQTT-over-WebSockets connections reported to management UI
+
+ GitHub issue: [rabbitmq-web-mqtt#3](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/3)
+
+ * Plugin deactivation now correctly stops TCP listener
+
+ GitHub issue: [rabbitmq-web-mqtt#7](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/7)
+
+
+### .NET client
+
+#### Bug Fixes
+
+ * Compatibility with SQL Server 2014 CLR restored
+
+ GitHub issue: [rabbitmq-dotnet-client#167](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/167)
+
+ * Autorecovering connections now respect all provided hostnames
+ when reconnecting.
+
+ GitHub issue: [rabbitmq-dotnet-client#157](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/157)
+
+ * `ConnectionFactory#CreateConnection` now respects all provided hostnames
+ when automatic connection recovery is disabled.
+
+ GitHub issue: [rabbitmq-dotnet-client#176](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/176)
+
+### Erlang client
+
+#### Bug Fixes
+
+ * Certain channel failures resulted in a race condition during process [tree] shutdown.
+
+ GitHub issue: [rabbitmq-erlang-client#42](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/42)
+
+
+### LDAP Authentication/Authorisation Backend
+
+#### Bug Fixes
+
+ * LDAP connection pool is now more resilient to TCP connection closure/loss on Erlang/OTP 18.3
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#41](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/41)
+
+ * Non-existent group in `tag_queries` shouldn't terminate authorisation
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#15](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/15)
+
+ * `attribute` query should not fail when multiple values are returned
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#16](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/16)
+
+#### Enhancements
+
+ * Virtual host is now available as a variable in `tag_queries`
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#13](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/13)
+
+ * Default LDAP connection pool size was increased from `10` to `64`
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#35](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/35)
+
+
+### HTTP Authentication/Authorisation Backend
+
+#### Enhancements
+
+ * The plugin now uses HTTP 1.1 and keep-alive connections for requests.
+
+ GitHub issue: [rabbitmq-auth-backend-http#20](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/20)
+
+ * It is now possible to configure the plugin to use `POST` requests instead of
+ `GET`, so that no sensitive information is logged.
+
+ GitHub issue: [rabbitmq-auth-backend-http#7](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/7)
+
+ * The plugin now supports HTTP client TLS options, so authenticating apps can use HTTPS
+
+ GitHub issue: [rabbitmq-auth-backend-http#29](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/29)
+
+ * Vhost access requests now include client IP address
+
+ GitHub issue: [rabbitmq-auth-backend-http#33](https://github.com/rabbitmq/rabbitmq-auth-backend-http/pull/33)
+
+ Contributed by Abdulrazak Alkl.
+
+### Event Exchange plugin
+
+#### Enhancements
+
+ * Policy events now include a vhost field
+
+ GitHub issue: [rabbitmq-event-exchange#17](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/17)
+
+ * Binding events now include a vhost field
+
+ GitHub issue: [rabbitmq-event-exchange#9](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/9)
+
+ * Millesecond resolution timestamp of events is now back as a message header
+
+ GitHub issue: [rabbitmq-event-exchange#12](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/12)
+
+ * `user.authentication.success` no longer has the `vhost` field
+ since vhost is only available at a later point. `connection.created`
+ events should be used to track successful connections if vhost
+ information is desired.
+
+ GitHub issue: [rabbitmq-event-exchange#13](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/13)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained. When upgrading using definitions export/import from versions earlier than 3.6.1, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading). All nodes that have RabbitMQ management plugin enabled
+must be upgraded in lock step.
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.2.tar.gz`.
diff --git a/release-notes/3.6.3.md b/release-notes/3.6.3.md
new file mode 100644
index 0000000000..dd3e6ed9ba
--- /dev/null
+++ b/release-notes/3.6.3.md
@@ -0,0 +1,218 @@
+## RabbitMQ 3.6.3
+
+RabbitMQ `3.6.3` is a maintenance release that includes
+bug fixes, packaging and build system enhancements.
+
+As of `3.6.3`, RabbitMQ also comes with several additional plugins in the distribution:
+
+ * [rabbitmq_top](http://github.com/rabbitmq/rabbitmq-top), which helps identify (Erlang) processes
+ that consume most RAM and CPU resources
+
+ * [rabbitmq_trust_store](https://github.com/rabbitmq/rabbitmq-trust-store) which manages
+ trusted client x509/TLS certificates
+
+ * [rabbitmq_jms_topic_exchange](https://github.com/rabbitmq/rabbitmq-jms-topic-exchange/) which, together with [RabbitMQ JMS Java client](https://github.com/rabbitmq/rabbitmq-jms-client), provides support for the JMS 1.1 API
+ atop RabbitMQ.
+
+### Breaking Changes
+
+ * Debian package now [supports systemd and also drops support for some older distributions](https://groups.google.com/forum/#!topic/rabbitmq-users/orFuEYExcxk).
+
+ * All artifacts in this release are signed with a [new 4096-bit OpenGPG key](https://groups.google.com/forum/#!msg/rabbitmq-users/BO5cmEsdEhc/Jupz1_Q4AwAJ).
+
+### Known Issues on Erlang 19.0
+
+An undocumented runtime metric change in Erlang 19.0 [breaks management plugin](https://github.com/rabbitmq/rabbitmq-management/issues/244).
+
+### Server
+
+#### Bug Fixes
+
+ * (Newly elected) queue leader process could terminate immediately after promotion
+
+ GitHub issue: [rabbitmq-server#812](https://github.com/rabbitmq/rabbitmq-server/issues/812)
+
+ * Priority queue mirror could fail to synchronize after restart
+
+ GitHub issues: [rabbitmq-server#687](https://github.com/rabbitmq/rabbitmq-server/issues/687), [rabbitmq-server#802](https://github.com/rabbitmq/rabbitmq-server/issues/802)
+
+ * Shutdown timeouts for worker processes are now much more reasonable.
+ Earlier the timeouts were virtually infinite which could lead to a deadlock during node shutdown.
+
+ GitHub issue: [rabbitmq-server#541](https://github.com/rabbitmq/rabbitmq-server/issues/541)
+
+ * Purging of a durable queue could result in undelivered publisher confirms.
+ Contributed by Andreas Ländle.
+
+ GitHub issue: [rabbitmq-server#854](https://github.com/rabbitmq/rabbitmq-server/issues/854)
+
+ * Old incarnations of queue mirrors are now ensured to be stopped before new ones are started
+
+ GitHub issue: [rabbitmq-server#863](https://github.com/rabbitmq/rabbitmq-server/issues/863)
+
+#### Enhancements
+
+ * `systemd` support in Debian and RPM packages
+
+ Contributed by Alexey Lebedeff (Mirantis).
+
+ GitHub issue: [rabbitmq-server#570](https://github.com/rabbitmq/rabbitmq-server/issues/570)
+
+ * Debian repository and release artifacts are now signed with a [new 4096-bit OpenGPG key](https://groups.google.com/forum/#!msg/rabbitmq-users/BO5cmEsdEhc/Jupz1_Q4AwAJ)
+
+ GitHub issue: [rabbitmq-server#718](https://github.com/rabbitmq/rabbitmq-server/issues/718)
+
+ * More resilient `worker_pool`, particularly important for LDAP plugin users
+
+ GitHub issue: [rabbitmq-server#834](https://github.com/rabbitmq/rabbitmq-server/issues/834)
+
+ * More efficient file handle management
+
+ GitHub issue: [rabbitmq-server#828](https://github.com/rabbitmq/rabbitmq-server/issues/828)
+
+ * Test suite ported to Common Test
+
+ Plugin developers will be encouraged to port their test suites to Common Test
+ in the future.
+
+ GitHub issue: [rabbitmq-server#725](https://github.com/rabbitmq/rabbitmq-server/issues/725)
+
+ * Compilation on [Erlang/OTP 19.0](http://erlang.org/download/otp_src_19.0.readme).
+
+ GitHub issue: [rabbitmq-server#860](https://github.com/rabbitmq/rabbitmq-server/issues/860)
+
+### Management Plugin
+
+#### Enhancements
+
+ * New API endpoint for reporting ETS tables memory consumption (absolute and relative)
+
+ GitHub issue: [rabbitmq-management#219](https://github.com/rabbitmq/rabbitmq-management/issues/219)
+
+ * Node information page now includes GC and context switching stats
+
+ GitHub issue: [rabbitmq-management#208](https://github.com/rabbitmq/rabbitmq-management/issues/208)
+
+ * Connection, channel, and queue information pages now include several runtime metrics
+
+ GitHub issues: [rabbitmq-management#209](https://github.com/rabbitmq/rabbitmq-management/issues/209), [rabbitmq-management#210](https://github.com/rabbitmq/rabbitmq-management/issues/210), [rabbitmq-management#211](https://github.com/rabbitmq/rabbitmq-management/issues/211)
+
+ * Node metrics now include information about how long it takes to obtain a file handle
+
+ GitHub issue: [rabbitmq-server#825](https://github.com/rabbitmq/rabbitmq-server/issues/825)
+
+ * Partial HTTPS support in `rabbitmqadmin` on Python versions older than `2.7.9`
+
+ GitHub issue: [rabbitmq-management#225](https://github.com/rabbitmq/rabbitmq-management/issues/225)
+
+#### Bug Fixes
+
+ * A channel statistics-related memory leak fixed.
+
+ GitHub issue: [rabbitmq-management#214](https://github.com/rabbitmq/rabbitmq-management/issues/214)
+
+ * Stats collectors event queue is now bounded (again)
+
+ GitHub issue: [rabbitmq-management#221](https://github.com/rabbitmq/rabbitmq-management/issues/221)
+
+ * Stats table name was logged as a tuple
+
+ GitHub issue: [rabbitmq-management#206](https://github.com/rabbitmq/rabbitmq-management/issues/206)
+
+
+### .NET Client
+
+#### Bug Fixes
+
+ * Setting user-provided connection name didn't have an effect.
+
+ GitHub issue: [rabbitmq-dotnet-client#187](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/187)
+
+ * `IConnection#CreateModel` could throw a `NullPointerException` due to a race
+ condition.
+
+ GitHub issue: [rabbitmq-dotnet-client#185](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/185)
+
+ * Connections with automatic recovery enabled ignored ports from the hostname
+ list.
+
+ GitHub issues: [rabbitmq-dotnet-client#157](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/157),
+ [rabbitmq-dotnet-client#190](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/190)
+
+ * Fixes an underflow in delivery tag handling after connection recovery
+
+ Contributed by @harishvadali and @Entroper.
+
+ GitHub issue: [rabbitmq-dotnet-client#200](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/200)
+
+#### Enhancements
+
+ * New [FAKE](https://fsharp.github.io/FAKE/) and [Paket](https://fsprojects.github.io/Paket/)-based build tooling: development on OS X and Linux with Mono is now
+ possible again.
+
+ GitHub issue: [rabbitmq-dotnet-client#169](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/169)
+
+
+### LDAP Plugin
+
+#### Enhancements
+
+ * Nested groups are now supported with a separate query type
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#3](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/3)
+
+#### Bug Fixes
+
+ * Query failures (e.g. `noSuchObject` responses) from LDAP servers are now correctly treated as `false` in
+ `or` and `and` queries instead of erroring.
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#48](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/48)
+
+### Trust Store Plugin
+
+#### Bug Fixes
+
+ * Invalid/unparseable certificates no longer prevent other certificates from (re)loading
+
+ GitHub issue: [rabbitmq-trust-store#27](https://github.com/rabbitmq/rabbitmq-trust-store/issues/27)
+
+#### Enhancements
+
+ * Certificate verification now can validate only leaf certificates.
+ This is more convenient in some cases. It will be one of the opt-in modes
+ in future versions.
+
+ GitHub issue: [rabbitmq-trust-store#34](https://github.com/rabbitmq/rabbitmq-trust-store/issues/34)
+
+ * The plugin now logs when a certificate is added (loaded) or removed (unloaded)
+
+ GitHub issue: [rabbitmq-trust-store#28](https://github.com/rabbitmq/rabbitmq-trust-store/issues/28)
+
+ * The plugin now provides a function for listing trust store certificates
+ via `rabbitmqctl eval`: `rabbitmqctl eval 'io:format(rabbit_trust_store:list()).'`
+
+ GitHub issue: [rabbitmq-trust-store#31](https://github.com/rabbitmq/rabbitmq-trust-store/issues/31)
+
+### Erlang Client
+
+#### Enhancements
+
+ * `amqp_connection:close/4` is now exported
+
+ GitHub issue: [rabbitmq-erlang-client#59](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/59)
+
+#### Bug Fixes
+
+ * The client now compiles on Erlang/OTP 19.0
+
+ GitHub issue: [rabbitmq-erlang-client#41](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/41)
+
+### Delayed Message Exchange Plugin
+
+#### Enhacements
+
+ * Efficiency improvements when publications and delayed delivery happen concurrently.
+
+ Contributed by Richard Larocque.
+
+ GitHub issues: [rabbitmq-delayed-message-exchange#51](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/pull/51), [rabbitmq-delayed-message-exchange#54](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/pull/54)
diff --git a/release-notes/3.6.4.md b/release-notes/3.6.4.md
new file mode 100644
index 0000000000..f2b3c86f78
--- /dev/null
+++ b/release-notes/3.6.4.md
@@ -0,0 +1,77 @@
+## RabbitMQ 3.6.4
+
+`3.6.4` is a maintanence release.
+
+
+### Server
+
+#### Bug Fixes
+
+ * Nodes on Windows will successfully start if Erlang is installed in a directory with spaces
+ in the path.
+
+ GitHub issue: [rabbitmq-server#859](https://github.com/rabbitmq/rabbitmq-server/issues/859)
+
+ * Node health check is now node-local, as it was meant to be.
+
+ GitHub issue: [rabbitmq-server#818](https://github.com/rabbitmq/rabbitmq-server/issues/818)
+
+ * Queue deletion and termination will no longer leave "tomb stone" messages in message store
+ files. This eliminates the confusing behavior when a node or cluster having no messages
+ enqueued could have many thousands of such "marker" messages in the message store.
+
+ GitHub issue: [rabbitmq-server#839](https://github.com/rabbitmq/rabbitmq-server/issues/839)
+
+ * `rabbitmqctl cluster_status` will now output an accurate error message
+ if invoked shortly after a node was removed from the cluster and the node cannot be
+ contacted.
+
+ GitHub issue: [rabbitmq-server#894](https://github.com/rabbitmq/rabbitmq-server/pull/894)
+
+ Contributed by Peter Lemenkov (Red Hat)
+
+#### Enhancements
+
+ * Erlang VM scheduler binding type default has changed to `db`. This means fewer
+ CPU context switches for some workloads.
+
+ GitHub issue: [rabbitmq-server#612](https://github.com/rabbitmq/rabbitmq-server/issues/612)
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * HTTP API is now compatible with Erlang 19.0.
+
+ GitHub issue: [rabbitmq-management#244](https://github.com/rabbitmq/rabbitmq-management/issues/244)
+
+ * Temporary tables are no longer named using atoms, preventing a potential
+ exhaustion of the runtime atom table.
+
+ GitHub issue: [rabbitmq-management#245](https://github.com/rabbitmq/rabbitmq-management/issues/245)
+
+ * Cluster links and traffic charts are correctly displayed again
+
+ GitHub issue: [rabbitmq-management#250](https://github.com/rabbitmq/rabbitmq-management/issues/250)
+
+ * Runtime metric charts now have a description pop-up associated with them.
+
+ GitHub issue: [rabbitmq-management#247](https://github.com/rabbitmq/rabbitmq-management/issues/247)
+
+### AMQP 1.0 plugin
+
+#### Bug fixes
+
+ * When an AMQP 1.0 specified its own list of source outcomes in a link
+ attachment, it caused a crash of its session on the server. Now a
+ protocol error is raised if the list contains invalid outcomes.
+
+ GitHub issue: [rabbitmq-amqp1.0#31](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/31)
+
+### Java Client
+
+#### Enhancements
+
+ * The client will now try to use TLS v1.2 and v1.1 before falling back to v1.0 by default.
+
+ GitHub issue: [rabbitmq-java-client#155](https://github.com/rabbitmq/rabbitmq-java-client/issues/155)
diff --git a/release-notes/3.6.5.md b/release-notes/3.6.5.md
new file mode 100644
index 0000000000..461146a8ab
--- /dev/null
+++ b/release-notes/3.6.5.md
@@ -0,0 +1,24 @@
+## RabbitMQ 3.6.5
+
+`3.6.5` is a maintenance release.
+
+### Server
+
+#### Bug Fixes
+
+ * Loading JSON definitions that included queue leader locator policies could prevent node
+ from starting.
+
+ GitHub issue: [rabbitmq-server#904](https://github.com/rabbitmq/rabbitmq-server/issues/904)
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Rate stats returned by `GET /api/overview` were always `0.0`.
+
+ GitHub issue: [rabbitmq-management#266](https://github.com/rabbitmq/rabbitmq-management/issues/266)
+
+ * Some message rates chart colors were ambiguous.
+
+ GitHub issue: [rabbitmq-management#224](https://github.com/rabbitmq/rabbitmq-management/issues/224)
diff --git a/release-notes/3.6.6.md b/release-notes/3.6.6.md
new file mode 100644
index 0000000000..2ee6203046
--- /dev/null
+++ b/release-notes/3.6.6.md
@@ -0,0 +1,234 @@
+## RabbitMQ 3.6.6
+
+`3.6.6` is a maintenance release that includes a fix for an **important security vulnerability** ([CVE-2016-9877](https://pivotal.io/security/cve-2016-9877)) in the MQTT plugin.
+
+### Upgrades and Compatibility
+
+> :warning:
+> **Upgrading from versions between 3.6.0 and 3.6.5 to this release requires a cluster shutdown.**
+This is also true for versions prior to 3.6.0.
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+### Server
+
+#### Bug Fixes
+
+ * Changing queue mode to `lazy` could block queue process in certain circumstances.
+
+ GitHub issue: [rabbitmq-server#850](https://github.com/rabbitmq/rabbitmq-server/issues/850)
+
+ * Mirroring implementation didn't handle certain internal protocol messages arriving
+ out of order.
+
+ GitHub issue: [rabbitmq-server#922](https://github.com/rabbitmq/rabbitmq-server/issues/922)
+
+ * Mirror set changes weren't handled gracefully in certain circumstances (e.g. in the middle of a mirror promotion).
+
+ GitHub issue: [rabbitmq-server#914](https://github.com/rabbitmq/rabbitmq-server/issues/914)
+
+ * Mirrored queue could terminate after promotion if HA policy was reapplied during sync.
+
+ GitHub issue: [rabbitmq-server#803](https://github.com/rabbitmq/rabbitmq-server/issues/803)
+
+ * Autoheal partition handling mode could run into a multi-node deadlock.
+
+ GitHub issue: [rabbitmq-server#928](https://github.com/rabbitmq/rabbitmq-server/issues/928)
+
+ * Queue mirror group membership now correctly handles certain partial partition cases.
+
+ GitHub issues: [rabbitmq-server#950](https://github.com/rabbitmq/rabbitmq-server/issues/950),
+ [rabbitmq-server#953](https://github.com/rabbitmq/rabbitmq-server/issues/953)
+
+ * Eager queue sync will now stop as soon as a mirror shutdown/unavailability is detected.
+
+ GitHub issue: [rabbitmq-server#975](https://github.com/rabbitmq/rabbitmq-server/issues/975)
+
+ * Lazy queues now trigger runtime GC significantly less frequently, making moving data
+ to the message store more efficient.
+
+ GitHub issue: [rabbitmq-server#973](https://github.com/rabbitmq/rabbitmq-server/issues/973)
+
+ * Mirroring policies now respect the `nodes` parameter when re-electing a master.
+
+ GitHub issue: [](https://github.com/rabbitmq/rabbitmq-server/issues/990)
+
+ * After a partial network partitions, nodes with newly elected masters will now be more defensive
+ about the (no longer relevant) policy change notifications.
+
+ GitHub issue: [rabbitmq-server#1007](https://github.com/rabbitmq/rabbitmq-server/issues/1007)
+
+ * Late responses from peers in certain partial network partition scenarios are now
+ ignored by channels.
+
+ GitHub issue: [rabbitmq-server#1005](https://github.com/rabbitmq/rabbitmq-server/issues/1005)
+
+ * After a partial network partitions, nodes with newly elected masters will now be more defensive
+ about the (no longer relevant) synchronization start requests.
+
+ GitHub issue: [rabbitmq-server#1006](https://github.com/rabbitmq/rabbitmq-server/issues/1006)
+
+ * Network partition triggered late and duplicate acknowledgements are now ignored/filterd out
+ by queue leader processes.
+
+ GitHub issue: [rabbitmq-server#960](https://github.com/rabbitmq/rabbitmq-server/issues/960)
+
+ * Queue mirrors now try detect leader replica changes during partial partitions and do a clean stop
+ instead of failing because their state is in sync with the old leader and not the newly promoted one.
+
+ GitHub issue: [rabbitmq-server#944](https://github.com/rabbitmq/rabbitmq-server/issues/944)
+
+ * `rabbitmqctl` and server startup could be affected by some DNS configurations.
+
+ GitHub issue: [rabbitmq-server#890](https://github.com/rabbitmq/rabbitmq-server/issues/890)
+
+ * RPM package was split into two: for CentOS 6 and 7. The latter includes systemd support.
+
+ GitHub issue: [rabbitmq-server#932](https://github.com/rabbitmq/rabbitmq-server/issues/932)
+
+ * Workaround for Erlang/OTP bug OTP-13425 where crash dump generation failed on UNIX
+ platforms.
+
+ GitHub issue: [rabbitmq-server#956](https://github.com/rabbitmq/rabbitmq-server/issues/956)
+
+#### Enhancements
+
+ * Inter-node traffic buffer increased to 32 MB by default, configurable with `RABBITMQ_DISTRIBUTION_BUFFER_SIZE` (in kilobytes).
+
+ This improves network bandwidth utilization for inter-node traffic and reduces the probability
+ of spurious network partitions due to latency spikes caused by the buffer being full.
+
+ GitHub issue: [rabbitmq-server#908](https://github.com/rabbitmq/rabbitmq-server/issues/908)
+
+ * Default flow control settings were increased to `{200, 100}`. This helps with consumer throughput
+ in some cases. The value still can be configured using the `rabbit.credit_flow_default_credit` setting.
+
+ GitHub issue: [rabbitmq-server#949](https://github.com/rabbitmq/rabbitmq-server/issues/949)
+
+ * `rabbitmqctl list_queues` now has more filtering options.
+
+ GitHub issue: [rabbitmq-server#851](https://github.com/rabbitmq/rabbitmq-server/issues/851)
+
+ * `RABBITMQ_IGNORE_SIGINT` is a new environment variable that lets the user disable the
+ `+B` VM flag that is known to have issues in Erlang 18.x series (prevents crash dumps from being produced).
+
+ GitHub issue: [rabbitmq-server#956](https://github.com/rabbitmq/rabbitmq-server/issues/956)
+
+ * The `pg2_fixed` module is now replaced by the standard `pg2` from a newer Erlang/OTP release.
+
+ GitHub issue: [rabbitmq-server#980](https://github.com/rabbitmq/rabbitmq-server/issues/980)
+
+### MQTT Plugin
+
+#### Bug Fixes
+
+ * Authentication with correct username but omitted password succeeded when TLS/x509
+ certificate wasn't provided by the client. CVE allocation for this vulnerability is pending.
+
+ GitHub issue: [rabbitmq-mqtt#96](https://github.com/rabbitmq/rabbitmq-mqtt/issues/96)
+
+
+### JMS Topic Exchange Plugin
+
+#### Bug Fixes
+
+ * The plugin no longer tries to check if JMS client's version is identical/compatible.
+ This caused certain legitimate use cases, such as exchange declaration over HTTP API, to fail.
+
+ GitHub issue: [rabbitmq-jms-topic-exchange#9](https://github.com/rabbitmq/rabbitmq-jms-topic-exchange/issues/9)
+
+
+### Java Client
+
+#### Bug Fixes
+
+ * Fixed a NPE that can occur when a thread attempts to create a new channel after a connection
+ has been recovered but before channel recovery has completed.
+
+ GitHub issue: [rabbitmq-java-client#197](https://github.com/rabbitmq/rabbitmq-java-client/pull/197)
+
+ Contributed by Michael Dent.
+
+ * Binding cache entries of auto-delete queues should be cleaned up when the last consumer is cancelled.
+
+ GitHub issue: [rabbitmq-java-client#199](https://github.com/rabbitmq/rabbitmq-java-client/pull/199)
+
+ Contributed by Michael Dent.
+
+ * When a channel is closed, consumers will be correctly cleaned up from AutorecoveringConnection cache.
+
+ GitHub issue: [rabbitmq-java-client#208](https://github.com/rabbitmq/rabbitmq-java-client/issues/208)
+
+ * `junit` is no longer listed as a dependency in the OSGi manifest
+
+ GitHub issue: [rabbitmq-java-client#211](https://github.com/rabbitmq/rabbitmq-java-client/issues/211)
+
+#### Enhancements
+
+ * `com.rabbitmq.client.AddressResolver` is a new interface that can be used to "expand"
+ endpoints into groups of IP addresses, e.g. to a list of IP addresses resolved from a DNS
+ record.
+
+ GitHub issue: [rabbitmq-java-client#153](https://github.com/rabbitmq/rabbitmq-java-client/issues/153)
+
+ * Building on the new `AddressResolver` interface, the client now includes a resolver
+ that uses DNS SVR records to discover endpoints.
+
+ GitHub issue: [rabbitmq-java-client#104](https://github.com/rabbitmq/rabbitmq-java-client/issues/104)
+
+ * `com.rabbitmq.client.BuiltinExchangeType` is an enum that contains built-in exchange types.
+
+ GitHub issue: [rabbitmq-java-client#150](https://github.com/rabbitmq/rabbitmq-java-client/issues/150)
+
+
+### .NET Client
+
+#### Bug Fixes
+
+ * Fixed a possible `NullReferenceException` in `HeartbeatReadTimerCallback` during
+ connection closure.
+
+ GitHub issue: [rabbitmq-dotnet-client#257](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/257)
+
+ * Fixed a potential race condition in `EventingBasicConsumer`
+
+ GitHub issue: [rabbitmq-dotnet-client#242](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/242)
+
+### Federation Plugin
+
+#### Enhancements
+
+ * Federation links now specify a name which makes them easier to tell from other connections
+ in the management UI (requires RabbitMQ 3.6.3+).
+
+ GitHub issue: [rabbitmq-federation#39](https://github.com/rabbitmq/rabbitmq-federation/issues/39)
+
+
+### Shovel Plugin
+
+#### Enhancements
+
+ * Shovel connections now specify a name which makes them easier to tell from other connections
+ in the management UI (requires RabbitMQ 3.6.3+).
+
+ GitHub issue: [rabbitmq-shovel#19](https://github.com/rabbitmq/rabbitmq-shovel/issues/19)
+
+## Release Artifacts
+
+Available from:
+
+ * GitHub (see below)
+ * [Bintray](https://bintray.com/rabbitmq/)
+ * [Package Cloud](https://packagecloud.io/rabbitmq/)
+ * [rabbitmq.com](https://www.rabbitmq.com/download.html)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained. When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.6.tar.gz`.
diff --git a/release-notes/3.6.7.md b/release-notes/3.6.7.md
new file mode 100644
index 0000000000..4229651116
--- /dev/null
+++ b/release-notes/3.6.7.md
@@ -0,0 +1,413 @@
+## RabbitMQ 3.6.7
+
+RabbitMQ `3.6.7` is a maintenance release that includes a [new reworked management plugin](https://github.com/rabbitmq/rabbitmq-management/issues/236) that stores collected stats on all cluster nodes (as opposed to one dedicated node).
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading) and a note at the end of this release notes document for general documentation on upgrades.
+
+#### âš ï¸ Erlang/OTP R16B03 and 17.x Compatibility
+
+Erlang/OTP R16B03 users on Debian and Ubuntu may run into [runtime code compilation errors](https://groups.google.com/forum/#!topic/rabbitmq-users/XfQgta5v6Z0).
+While this [was addressed in 3.6.8](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_8), we recommend upgrading to at least Erlang 18.0 if possible
+(see [Debian installation guide](https://www.rabbitmq.com/install-debian.html) and [RPM installation guide](https://www.rabbitmq.com/install-rpm.html)).
+
+#### âš ï¸ New Management Plugin
+
+In clusters that have rabbitmq_management or rabbitmq_management_agent plugins enabled all nodes must be upgraded at the same time.
+
+There is a couple of public-facing changes in the HTTP API.
+
+##### Test Suites that use HTTP API
+
+Integration test suites that rely on HTTP API for listing
+or closing connections, channels, etc need to be adjusted with this plugin:
+
+ * We recommend reducing stats retention periods (see [Hop](https://github.com/rabbitmq/hop/blob/master/bin/before_build.sh#L11), [rabbit-hole](https://github.com/michaelklishin/rabbit-hole/blob/master/bin/ci/before_build.sh))
+ * Because stats emission is now two-step and asynchronous, test suites may need
+ to wait for events to propagate before asserting on them (see [Hop](https://github.com/rabbitmq/hop/blob/master/src/test/groovy/com/rabbitmq/http/client/ClientSpec.groovy#L168), [rabbit-hole](https://github.com/michaelklishin/rabbit-hole/blob/master/rabbithole_test.go#L130)).
+
+##### POST and PUT Responses Use `201 Created`
+
+POST and PUT responses now use `201 Created` instead of `204 No Content`.
+
+
+#### âš ï¸ Single Atom TCP Listener Options
+
+Single atom TCP listener options such as `binary` in this example:
+
+``` erlang
+[
+ {rabbit, [
+ {tcp_listen_options, [
+ binary,
+ {backlog, 4096},
+ {sndbuf, 32768},
+ {recbuf, 32768}
+ ]}
+ %% …
+ }].
+```
+
+won't serialise to JSON correctly in this release. This is [addressed for 3.6.8](https://github.com/rabbitmq/rabbitmq-management-agent/issues/34).
+Note that `binary` is one of the default options and there is no need to override it.
+
+There are no other known incompatibilities with 3.6.2 or later releases.
+
+### Server
+
+#### Bug Fixes
+
+ * queue leader process could terminate with a `{bad_match, {error, not_found}}` error.
+
+ GitHub issue: [rabbitmq-server#1035](https://github.com/rabbitmq/rabbitmq-server/issues/1035)
+
+ * `rabbitmq-service.bat` should exit with a non-0 code when installation fails.
+
+ GitHub issue: [rabbitmq-server#1052](https://github.com/rabbitmq/rabbitmq-server/issues/1052)
+
+ * `rabbitmqctl stop_app` now produces a more technically correct output about
+ what the operation does.
+
+ GitHub issue: [rabbitmq-server#1043](https://github.com/rabbitmq/rabbitmq-server/issues/1043)
+
+#### Enhancements
+
+ * Nodes in a cluster now can be restared in arbitrary order. They will attempt to contact
+ one of the previously seen peers periodically (10 times with 30 second intervals by default).
+
+ GitHub issue: [rabbitmq-server#1033](https://github.com/rabbitmq/rabbitmq-server/issues/1033)
+
+ * Increased credit flow default settings, background GC is disabled by default
+ for more predictable latency.
+
+ GitHub issue: [rabbitmq-server#1098](https://github.com/rabbitmq/rabbitmq-server/pull/1098)
+
+ * TLS listeners now support SNI (via [Ranch 1.3.0](https://ninenines.eu/articles/ranch-1.3/)).
+
+ GitHub issue: [rabbitmq-server#789](https://github.com/rabbitmq/rabbitmq-server/issues/789)
+
+ * Successful connection authentication now leaves additional log entries, just like authentication
+ failures. It is now easier to see from the log what user connected to what vhost.
+
+ GitHub issue: [rabbitmq-server#1140](https://github.com/rabbitmq/rabbitmq-server/issues/1140)
+
+ * Internal authentication backend now supports credential validators.
+
+ GitHub issue: [rabbitmq-server#1054](https://github.com/rabbitmq/rabbitmq-server/issues/1054)
+
+ * Worker process shutdown timeout now can be configured.
+
+ GitHub issue: [rabbitmq-server#847](https://github.com/rabbitmq/rabbitmq-server/issues/847)
+
+ * Default Erlang VM ETS limit was increased from 1400 to 50000. This is necessary to support
+ a larger number of virtual hosts with the new management plugin.
+
+ GitHub issue: [rabbitmq-server#1059](https://github.com/rabbitmq/rabbitmq-server/issues/1059)
+
+ * `RABBITMQ_PLUGINS_DIR` now supports multiple directories (colon-separated on Linux and other UNIX-like
+ platforms, semicolon-separated on Windows).
+
+ Contributed by Alexey Lebedeff.
+
+ GitHub issue: [rabbitmq-server#1001](https://github.com/rabbitmq/rabbitmq-server/issues/1001)
+
+ * Background GC now can be disabled and configured to use a different target interval value.
+ Original patch by Tim Stewart.
+
+ GitHub issue: [rabbitmq-server#1026](https://github.com/rabbitmq/rabbitmq-server/issues/1026)
+
+ * `L`-prefixed (`long-long-int`) attribute table (header) keys are now accepted by the parser.
+
+ GitHub issue: [rabbitmq-server#1093](https://github.com/rabbitmq/rabbitmq-server/issues/1093)
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Node health check responded with status 500 if health check failed due to a timeout.
+
+ GitHub issue: [rabbitmq-management#307](https://github.com/rabbitmq/rabbitmq-management/issues/307)
+
+ * `GET /api/nodes` response entries contained a duplicate JSON document property (key).
+
+ GitHub issue: [rabbitmq-management#305](https://github.com/rabbitmq/rabbitmq-management/issues/305)
+
+ * `rabbitmqadmin` listing commands failed to output values that contained non-ASCII characters
+ (such as queue names in Asian languages).
+
+ GitHub issue: [rabbitmq-management#343](https://github.com/rabbitmq/rabbitmq-management/issues/343)
+
+ * Queue details page now correctly displays the number of paged out transient messages.
+
+ GitHub issue: [rabbitmq-management#345](https://github.com/rabbitmq/rabbitmq-management/issues/345)
+
+ * When user filter returned no results, the message incorrectly said "no vhosts."
+
+ GitHub issue: [rabbitmq-management#357](https://github.com/rabbitmq/rabbitmq-management/issues/357)
+
+#### Enhancements
+
+ * New management plugin implementation that stores stats on all cluster nodes.
+
+ GitHub issue: [rabbitmq-management#236](https://github.com/rabbitmq/rabbitmq-management/issues/236)
+
+ * Purging a queue via UI now requires a confirmation.
+
+ GitHub issue: [rabbitmq-management#195](https://github.com/rabbitmq/rabbitmq-management/issues/195)
+
+ * Queue deletion and purging buttons now use separate UI panes.
+
+ GitHub issue: [rabbitmq-management#158](https://github.com/rabbitmq/rabbitmq-management/issues/158)
+
+ * Plugins that use HTTP (management, Web STOMP, Web MQTT) now register their ports
+ as TCP listeners.
+
+ GitHub issue: [rabbitmq-web-dispatch#14](https://github.com/rabbitmq/rabbitmq-web-dispatch/issues/14)
+
+ * Overview chart legend labels are now clearer and grouped in a more useful way.
+
+ GitHub issue: [rabbitmq-management#339](https://github.com/rabbitmq/rabbitmq-management/issues/339)
+
+ * Creating a queue in a vhost the user has no access to now provides
+ reasonable feedback.
+
+ GitHub issue: [rabbitmq-management#241](https://github.com/rabbitmq/rabbitmq-management/issues/241)
+
+ * Listing queues in a vhost the user has no access to now provides
+ reasonable feedback.
+
+ GitHub issue: [rabbitmq-management#237](https://github.com/rabbitmq/rabbitmq-management/issues/237)
+
+ * Deletion UI dialog has clearer wording.
+
+ GitHub issue: [rabbitmq-management#159](https://github.com/rabbitmq/rabbitmq-management/issues/159)
+
+ * When creating exchanges/queues, virtual host is now pre-selected to match the "current" one.
+
+ GitHub issue: [rabbitmq-management#235](https://github.com/rabbitmq/rabbitmq-management/issues/235)
+
+ * User creation form now features the "impersonator" tag.
+
+ GitHub issue: [rabbitmq-management#284](https://github.com/rabbitmq/rabbitmq-management/issues/284)
+
+ * Queue declaration form now includes a shortcut button for switching queue
+ mode to "lazy."
+
+ GitHub issue: [rabbitmq-management#205](https://github.com/rabbitmq/rabbitmq-management/issues/205)
+
+
+### MQTT Plugin
+
+#### Bug Fixes
+
+ * Fixed a memory leak in statistics tables in case of certain
+ abnormal connection termination scenarios.
+
+ GitHub issue: [rabbitmq-mqtt#117](https://github.com/rabbitmq/rabbitmq-mqtt/issues/117)
+
+ * Last Will messages that had the `retained` flag set were not retained.
+
+ GitHub issue: [rabbitmq-mqtt#74](https://github.com/rabbitmq/rabbitmq-mqtt/issues/74)
+
+ * More metrics are reported for MQTT connections.
+
+ GitHub issue: [rabbitmq-mqtt#121](https://github.com/rabbitmq/rabbitmq-mqtt/issues/121)
+
+ * Certain virtual host names could cause MQTT retainer to not start.
+
+ GitHub issue: [rabbitmq-mqtt#123](https://github.com/rabbitmq/rabbitmq-mqtt/issues/123)
+
+#### Enhancements
+
+ * Improved logging around connection termination due to unparseable traffic,
+ e.g. HTTP requests sent to MQTT plugin port.
+
+ GitHub issue: [rabbitmq-mqtt#119](https://github.com/rabbitmq/rabbitmq-mqtt/issues/119)
+
+ * There is now a way to map MQTT listener ports (target client connection ports)
+ to vhosts.
+
+ GitHub issue: [rabbitmq-mqtt#111](https://github.com/rabbitmq/rabbitmq-mqtt/issues/111)
+
+ * There is now a way to map client certificate CN values to vhosts and thus make
+ specific clients connect to designated vhosts.
+
+ GitHub issue: [rabbitmq-mqtt#73](https://github.com/rabbitmq/rabbitmq-mqtt/issues/73)
+
+ * Connections to non-existent hosts are now gracefully closed with a reasonable
+ error code (invalid credentials).
+
+ GitHub issue: [rabbitmq-mqtt#100](https://github.com/rabbitmq/rabbitmq-mqtt/issues/100)
+
+ * More configuration values are accepted as strings (as well as binaries).
+
+ GitHub issue: [rabbitmq-mqtt#86](https://github.com/rabbitmq/rabbitmq-mqtt/issues/86)
+
+
+### STOMP Plugin
+
+#### Bug Fixes
+
+ * Fixed a memory leak in statistics tables in case of certain
+ abnormal connection termination scenarios.
+
+ GitHub issue: [rabbitmq-stomp#103](https://github.com/rabbitmq/rabbitmq-stomp/pull/103)
+
+ * More metrics are reported for STOMP connections.
+
+ GitHub issue: [rabbitmq-stomp#102](https://github.com/rabbitmq/rabbitmq-stomp/issues/102)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * The plugin now tolerates a higher rate of link [re-]connection failures.
+ The rate sustained depends on the `reconnect-delay` parameter configured for the upstream
+ (see the issue below for details).
+
+ GitHub issue: [rabbitmq-federation#46](https://github.com/rabbitmq/rabbitmq-federation/issues/46)
+
+#### Enhancements
+
+ * Improved logging for federation links that voluntarily stop, e.g. because
+ something in their controlling policy has changed.
+
+ GitHub issue: [rabbitmq-federation#43](https://github.com/rabbitmq/rabbitmq-federation/issues/43)
+
+ * Improved logging around network partitions that can affect federation links.
+
+ GitHub issue: [rabbitmq-federation#53](https://github.com/rabbitmq/rabbitmq-federation/issues/53)
+
+
+### Federation Management Plugin
+
+#### Enhancements
+
+ * New HTTP API endpoint that lists only down links.
+
+ GitHub issue: [rabbitmq-federation-management#18](https://github.com/rabbitmq/rabbitmq-federation-management/issues/18)
+
+ * New HTTP API endpoint that restarts a link.
+
+ GitHub issue: [rabbitmq-federation-management#17](https://github.com/rabbitmq/rabbitmq-federation-management/issues/17)
+
+### LDAP Plugin
+
+#### Bug Fixes
+
+ * Match query was matching too eagerly ("bi-directionally").
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#56](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/56)
+
+ * Default LDAP server port was unintentionally set to `3890` (instead of `389`).
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#64](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/64)
+
+#### Enhancements
+
+ * LDAP server connection pool now supports time-based expiration (and closure) of inactive
+ LDAP connections.
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#7](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/7)
+
+
+### Top Plugin
+
+#### Enhancements
+
+ * Internal buffer length of processes that implement the `gen_server2` behaviour
+ (most notably queues) are now collected and visible in `rabbitmq_top`. Combined
+ with Erlang mailbox length this provides a more or less complete picture of Erlang
+ message backlog a process has.
+
+ GitHub issue: [rabbitmq-top#20](https://github.com/rabbitmq/rabbitmq-top/issues/20)
+
+
+### Event Exchange Plugin
+
+#### Enhacements
+
+ * Resource alarm events are now accessible via the event exchange.
+
+ GitHub issue: [rabbitmq-server#1120](https://github.com/rabbitmq/rabbitmq-server/issues/1120)
+
+
+
+### Web MQTT Plugin
+
+#### Enhancements
+
+ * Web MQTT port is now registered as a TCP listener and shows up in the management UI
+ listeners section.
+
+ GitHub issue: [rabbitmq-web-mqtt#17](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/17)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+ * When HTTP basic authentication is used but credentials are not provided, the plugin should
+ fall back to default configured STOMP plugin credentials.
+
+ GitHub issue: [rabbitmq-web-stomp#60](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/60)
+
+#### Enhancements
+
+ * Web STOMP port is now registered as a TCP listener and shows up in the management UI
+ listeners section.
+
+ GitHub issue: [rabbitmq-web-stomp#65](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/65)
+
+
+### Trust Store Plugin
+
+#### Enhancements
+
+ * Pluggable certificate providers (sources).
+
+ GitHub issue: [rabbitmq-trust-store#1](https://github.com/rabbitmq/rabbitmq-trust-store/issues/1)
+
+ * HTTP(S) certificate provider (source).
+
+ GitHub issue: [rabbitmq-trust-store#54](https://github.com/rabbitmq/rabbitmq-trust-store/issues/54)
+
+
+### .NET Client
+
+#### Bug Fixes
+
+ * `AutorecoveringConnection` had unsynchronised concurrent access to several of its mutable field.
+
+ GitHub issues: [rabbitmq-dotnet-client#288](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/288),
+ [rabbitmq-dotnet-client#291](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/291)
+
+
+### Erlang Client
+
+#### Bug Fixes
+
+ * The client OTP app now correctly defines dependencies on
+ `compiler` and `syntax_tools`.
+
+ GitHub issue: [rabbitmq-erlang-client#72](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/72)
+
+#### Enhancements
+
+ * URI parser now accepts binaries as well as strings.
+
+ GitHub issue: [rabbitmq-erlang-client#76](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/76)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained. When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.7.tar.gz`.
diff --git a/release-notes/3.6.8.md b/release-notes/3.6.8.md
new file mode 100644
index 0000000000..47929271ac
--- /dev/null
+++ b/release-notes/3.6.8.md
@@ -0,0 +1,59 @@
+## RabbitMQ 3.6.8
+
+RabbitMQ `3.6.8` is a maintenance release that restores Erlang/OTP R16B03 and 17.x compatibility
+that was unintentionally affected in [3.6.7](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) by producing that release on a significantly newer Erlang/OTP version.
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading) for general documentation on upgrades.
+
+This release has no incompatibilities with 3.6.7. See [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) upgrade and compatibility nodes if upgrading from an earlier release.
+
+### Server
+
+#### Bug Fixes
+
+ * Erlang/OTP R16B03 and 17.x are supported again by producing this release on R16B03.
+ Note that [some configurations or community plugins](https://www.rabbitmq.com/which-erlang.html) may require a later version.
+ We recommend all users to upgrade to a 19.x series release if possible. See [Debian](https://www.rabbitmq.com/install-debian.html) and [RPM installation](https://www.rabbitmq.com/install-rpm.html) guides for some Erlang/OTP installation options.
+
+ GitHub issues: [rabbitmq-server#1148](https://github.com/rabbitmq/rabbitmq-server/issues/1148), [rabbitmq-server#1149](https://github.com/rabbitmq/rabbitmq-server/issues/1149)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Certain user permission violations were resulting in a 500 response and scary log entries.
+
+ GitHub issue: [rabbitmq-management#360](https://github.com/rabbitmq/rabbitmq-management/issues/360)
+
+
+### Management Agent Plugin
+
+#### Bug Fixes
+
+ * Single atom proplist values no longer break JSON serialisation for endpoints such as `GET /api/overview`.
+
+ GitHub issue: [rabbitmq-management-agent#34](https://github.com/rabbitmq/rabbitmq-management-agent/issues/34)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+ * Web STOMP now accepts the same TCP listener options as core RabbitMQ and other plugins.
+
+ GitHub issue: [rabbitmq-web-stomp#69](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/69)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained. When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.8.tar.gz`.
diff --git a/release-notes/3.6.9.md b/release-notes/3.6.9.md
new file mode 100644
index 0000000000..a685ff2db8
--- /dev/null
+++ b/release-notes/3.6.9.md
@@ -0,0 +1,63 @@
+## RabbitMQ 3.6.9
+
+RabbitMQ `3.6.9` is a security and maintenance release.
+
+### Upgrades and Compatibility
+
+See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
+for general documentation on upgrades.
+
+This release has no incompatibilities with 3.6.7. See [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7)
+upgrade and compatibility notes if upgrading from an earlier release.
+
+
+### Management and Management Agent Plugins
+
+#### Security Vulnerability Patches
+
+Details for the CVEs below are pending publication.
+
+ * `CVE-2017-4965`: XSS vulnerabilities in management UI
+ * `CVE-2017-4966`: authentication details are stored in browser-local storage without expiration
+ * `CVE-2017-4967`: XSS vulnerabilities in management UI
+
+As part of the patch addressing `CVE-2017-4966` management UI sessions were limited to 8 hours.
+
+#### Bug Fixes
+
+ * Certain TCP and TLS listener configuration settings could break JSON serialisation of
+ `GET /api/overview` responses.
+
+ GitHub issues: [rabbitmq-management-agent#39](https://github.com/rabbitmq/rabbitmq-management-agent/issues/39),
+ [rabbitmq-management#364](https://github.com/rabbitmq/rabbitmq-management/issues/364),
+ [rabbitmq-management-agent#36](https://github.com/rabbitmq/rabbitmq-management-agent/issues/36)
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * More numerical types are now handled for the "hops" property.
+
+ GitHub issue: [rabbitmq-federation#56](https://github.com/rabbitmq/rabbitmq-federation/issues/56)
+
+
+### .NET Client
+
+#### Bug Fixes
+
+ * Calling ExchangeBind more than once with the same arguments threw an exception.
+
+ GitHub issues: [rabbitmq-dotnet-client#314](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/314),
+ [rabbitmq-dotnet-client#317](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/317)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained. When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.6.9.tar.gz`.
diff --git a/release-notes/3.7.0.md b/release-notes/3.7.0.md
new file mode 100644
index 0000000000..846fcceae8
--- /dev/null
+++ b/release-notes/3.7.0.md
@@ -0,0 +1,475 @@
+This release introduces new features, changes to RabbitMQ distribution (e.g. what plugins ship
+with it), and bug fixes. It also includes all the changes from the [3.6.x release series](https://www.rabbitmq.com/changelog.html) unless stated otherwise.
+
+Documentation for this release is available at [the RabbitMQ website](https://www.rabbitmq.com).
+
+
+## Breaking Changes
+
+ * Minimum required Erlang/OTP version is now 19.3. Recent Erlang versions can be obtained from [Erlang Solutions](https://www.erlang-solutions.com/resources/download.html), [RabbitMQ zero dependency Erlang RPM](https://github.com/rabbitmq/erlang-rpm), as well as main and backports repositories of recent Ubuntu and Debian releases.
+
+ GitHub issues: [rabbitmq-server#1305](https://github.com/rabbitmq/rabbitmq-server/issues/1305), [rabbitmq-server#1307](https://github.com/rabbitmq/rabbitmq-server/issues/1307), [rabbitmq-common#234](https://github.com/rabbitmq/rabbitmq-common/pull/234).
+
+ * HTTP API has minor breaking changes in several endpoints (see below).
+
+ * .NET client is now [.NET Core-compatible](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/148).
+ Starting with `3.7.0`, [.NET client releases](https://github.com/rabbitmq/rabbitmq-dotnet-client/releases) are decoupled from RabbitMQ server releases and exclusively distributed via the [RabbitMQ.Client NuGet package](https://www.nuget.org/packages/RabbitMQ.Client/).
+
+ * Starting with `3.7.0`, [Java client releases](https://github.com/rabbitmq/rabbitmq-java-client/releases) are decoupled from RabbitMQ server releases and exclusively distributed via Maven: [RabbitMQ Milestones Maven repository](https://bintray.com/rabbitmq/maven-milestones), [RabbitMQ Maven repository](https://bintray.com/rabbitmq/maven), as well as Maven Central.
+
+ * Users tagged with `administrator` now implicitly have access to most operations in all vhosts,
+ including those they don't have explicit permissions for.
+
+ GitHub issue: [rabbitmq-management#461](https://github.com/rabbitmq/rabbitmq-management/issues/461)
+
+ * Plugins now must depend on the `rabbit` application [in order to be recognised as such by `rabbitmq-plugins list`](https://github.com/rabbitmq/rabbitmq-server/issues/1124).
+ Plugins that do not have the dependency will still function, can be enabled or disabled but won't appear
+ in `rabbitmq-plugins list` output.
+
+ * `rabbitmq_management_visualiser` plugin [no longer ships with RabbitMQ](https://groups.google.com/forum/#!searchin/rabbitmq-users/ANN$20rabbitmq_management_visualiser%7Csort:relevance/rabbitmq-users/WiHmPcmzNtI/YJ356EW4BAAJ) and is considered to be deprecated. Installations that have this plugin enabled **must disable it before upgrading**. This can
+ be done using `rabbitmq-plugins disable` (which supports offline modifications)
+ or by updating the list of plugins in `RABBITMQ_ENABLED_PLUGINS_FILE`.
+
+
+### Erlang/OTP 20 Support
+
+Erlang/OTP 20 has [breaking changes](https://groups.google.com/d/msg/rabbitmq-users/_imbAavBYjY/xHzMiGgMAgAJ) that affected RabbitMQ.
+
+3.7.0 supports OTP 20, including upgrades of existing installations to OTP 20. This required changes to the core and multiple plugins that ship with RabbitMQ.
+
+GitHub issues: [rabbitmq-server#1243](https://github.com/rabbitmq/rabbitmq-server/issues/1243), [rabbitmq-server#1250](https://github.com/rabbitmq/rabbitmq-server/pull/1250), [rabbitmq-server#1268](https://github.com/rabbitmq/rabbitmq-server/pull/1268),
+ [rabbitmq-server#1272](https://github.com/rabbitmq/rabbitmq-server/issues/1272), [rabbitmq-federation#58](https://github.com/rabbitmq/rabbitmq-federation/pull/58), [rabbitmq-management-agent#47](https://github.com/rabbitmq/rabbitmq-management-agent/pull/47),
+ [rabbitmq-management#415](https://github.com/rabbitmq/rabbitmq-management/pull/415), [rabbitmq-stomp#115](https://github.com/rabbitmq/rabbitmq-stomp/issues/115)
+
+
+### Core Server
+
+#### Enhancements
+
+ * New configuration file format
+
+ RabbitMQ now supports a [new configuration file format](http://next.rabbitmq.com/configure.html#config-file).
+ The format is [based on sysctl](https://github.com/basho/cuttlefish/wiki/Cuttlefish-for-Application-Users)
+ and is similar to `.ini` files. Erlang term configuration files are still supported, it is also
+ possible to combine the two formats (use both `rabbitmq.conf` and `advanced.config`).
+
+ Most documentation examples were updated to use both new and classic config formats. See the docs
+ at [next.rabbitmq.com](http://next.rabbitmq.com), in particular [the configuration guide](http://next.rabbitmq.com/configure.html),
+ for more information.
+
+ GitHub issues: [rabbitmq-server#550](https://github.com/rabbitmq/rabbitmq-server/issues/550),
+ [rabbitmq-server#1103](https://github.com/rabbitmq/rabbitmq-server/pull/1103),
+ [rabbitmq-auth-backend-ldap#59](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/59)
+
+ * Pluggable cluster peer discovery
+
+ Automatic clustering for blank (without an existing database) nodes now can discover
+ peers using pluggable backends. This is a set of features adopted from the [rabbitmq-autocluster](https://github.com/rabbitmq/rabbitmq-autocluster/) plugin by Gavin Roy.
+ Two implementations are available out of the box: one uses a config file- and another DNS A records.
+ Several more are available via plugins:
+
+ * [AWS](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws)
+ * [Consul](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul)
+ * [etcd](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd)
+ * [Kubernetes](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s)
+
+ GitHub issues: [rabbitmq-server#486](https://github.com/rabbitmq/rabbitmq-server/issues/486), [rabbitmq-server#988](https://github.com/rabbitmq/rabbitmq-server/issues/988), [rabbitmq-server#1143](https://github.com/rabbitmq/rabbitmq-server/issues/1143)
+ [rabbitmq-server#1202](https://github.com/rabbitmq/rabbitmq-server/issues/1202), [rabbitmq-server#1171](https://github.com/rabbitmq/rabbitmq-server/issues/1171), [rabbitmq-server#1257](https://github.com/rabbitmq/rabbitmq-server/issues/1257), [rabbitmq-server#1247](https://github.com/rabbitmq/rabbitmq-server/issues/1247)
+
+ * Nodes in a cluster now can be restared in arbitrary order. They will attempt to contact
+ one of the previously seen peers periodically (10 times with 30 second intervals by default).
+
+ GitHub issue: [rabbitmq-server#1022](https://github.com/rabbitmq/rabbitmq-server/issues/1022),
+ [rabbitmq-server#487](https://github.com/rabbitmq/rabbitmq-server/issues/487)
+
+ * Every virtual host now has separate message stores.
+ This improves resiliency and reduces contention in multitenant environments,
+ plus makes development of tools that perform backups and recovery of resting data easier
+ in the future.
+
+ During the upgrade nodes will migrate data to this new layout. This can take some time.
+ To reduce the amount of time, drain as many queues as possible before upgrading, e.g.
+ by stopping publishers without stopping consumers for a period of time.
+
+ GitHub issues: [rabbitmq-server#567](https://github.com/rabbitmq/rabbitmq-server/issues/567), [rabbitmq-server#1146](https://github.com/rabbitmq/rabbitmq-server/issues/1146), [rabbitmq-server#1280](https://github.com/rabbitmq/rabbitmq-server/issues/1280),
+ [rabbitmq-management#446](https://github.com/rabbitmq/rabbitmq-management/issues/446), [rabbitmq-server#1303](https://github.com/rabbitmq/rabbitmq-server/issues/1303), [rabbitmq-management#460](https://github.com/rabbitmq/rabbitmq-management/issues/460), [rabbitmq-server#1321](https://github.com/rabbitmq/rabbitmq-server/issues/1321)
+
+ * New [LevelDB-based message store index plugin](https://github.com/rabbitmq/rabbitmq-msg-store-index-eleveldb).
+
+ GitHub issue: [rabbitmq-server#838](https://github.com/rabbitmq/rabbitmq-server/issues/838)
+
+ * Support config file path values with and without file extensions
+
+ RabbitMQ no longer *requires* `RABBITMQ_CONFIG_FILE` values to not have a `.config` or `.conf` suffix. It will try appending both suffixes as needed when searching for suitable config file(s) to load.
+
+ GitHub Issue: [rabbitmq-server#691](https://github.com/rabbitmq/rabbitmq-server/issues/691)
+
+ * Operators now can configure how many concurrent connections are allowed in a vhost.
+
+ GitHub issue: [rabbitmq-server#500](https://github.com/rabbitmq/rabbitmq-server/issues/500)
+
+ * Operators now can configure how many queues can exist in a vhost.
+
+ GitHub issue: [rabbitmq-server#501](https://github.com/rabbitmq/rabbitmq-server/issues/501)
+
+ * Operator policies: their definitions are merged with the standard (user) policies and allow operators put global
+ limits in place, e.g. max queue length or message TTL.
+
+ GitHub issue: [rabbitmq-server#930](https://github.com/rabbitmq/rabbitmq-server/issues/930)
+
+ * It is now possible to configure a limited [prefetch value](https://www.rabbitmq.com/confirms.html) for all newly opened channels by default.
+ This helps prevent consumers that never acknowledge deliveries from exhausting server resources.
+ It is important to make sure that consumers that use [manual acknowledgements](https://www.rabbitmq.com/confirms.html) can cope with this
+ change before enabling it.
+
+ GitHub issue: [rabbitmq-server#1367](https://github.com/rabbitmq/rabbitmq-server/issues/1367)
+
+ * Plugin version constraints
+
+ RabbitMQ now has a mechanism for plugin authors to indicate what versions a plugin is compatible with.
+ Incompatible plugins are logged and ignored.
+
+ GitHub issues: [rabbitmq-server#591](https://github.com/rabbitmq/rabbitmq-server/issues/591), [rabbitmq-server#735](https://github.com/rabbitmq/rabbitmq-server/issues/735), [rabbitmq-server#1090](https://github.com/rabbitmq/rabbitmq-server/issues/1090)
+
+ * Lager-based logging: less [not prone to overload](https://s3.us-east-2.amazonaws.com/ferd.erlang-in-anger/text.v1.1.0.pdf), pluggable backends, debug log level, more flexibility in configuration.
+
+ RabbitMQ now uses [Lager](https://github.com/basho/lager) for its logging subsystem.
+ This brings a group of benefits: (quite verbose) debug log level, pluggable logging
+ backends (will require Lager plugins), and much
+ more flexibility in logging configuration.
+
+ See [RabbitMQ 3.7.0 logging guide](http://next.rabbitmq.com/logging.html), [rabbitmq.conf.example](https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example) (new style config)
+ and [rabbitmq.config.example](https://github.com/rabbitmq/rabbitmq-server/blob/v3.7.x/docs/rabbitmq.config.example) (classic/advanced config format) to learn more.
+
+ GitHub issues: [rabbitmq-server#94](https://github.com/rabbitmq/rabbitmq-server/issues/94), [rabbitmq-website#418](https://github.com/rabbitmq/rabbitmq-website/issues/418)
+
+ * Topic authorisation built around topic exchanges. This includes support for certain variables,
+ such as virtual host and username.
+
+ GitHub issues: [rabbitmq-server#505](https://github.com/rabbitmq/rabbitmq-server/issues/505), [rabbitmq-server#1085](https://github.com/rabbitmq/rabbitmq-server/issues/1085), [rabbitmq-server#1099](https://github.com/rabbitmq/rabbitmq-server/issues/1099), [rabbitmq-server#1229](https://github.com/rabbitmq/rabbitmq-server/issues/1229)
+
+ * When queue length limit is exceeded, publishers of messages that did not fit
+ now can opt-in to receive a nack by opting in (configuring an overflow behavior).
+ When the behavior is configured to reject, messages are also discarded more efficiently.
+
+ GitHub issue: [rabbitmq-server#995](https://github.com/rabbitmq/rabbitmq-server/issues/995)
+
+ * [Proxy Protocol](http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) support.
+
+ GitHub issue: [rabbitmq-server#589](https://github.com/rabbitmq/rabbitmq-server/issues/589)
+
+ * Deleting a vhost now will force close all connections in it.
+
+ GitHub issue: [rabbitmq-server#627](https://github.com/rabbitmq/rabbitmq-server/issues/627)
+
+ * Deleting a user account now will force close all of its connections.
+
+ GitHub issue: [rabbitmq-server#628](https://github.com/rabbitmq/rabbitmq-server/issues/628)
+
+ * OpenSUSE RPM package now supports systemd and requires Leap 42.2.
+
+ GitHub issue: [rabbitmq-server-release#31](https://github.com/rabbitmq/rabbitmq-server-release/pull/31)
+
+ * Standalone MacOS release now bundles Erlang 19.x.
+
+ GitHub issue: [rabbitmq-server-release#10](https://github.com/rabbitmq/rabbitmq-server-release/issues/10)
+
+ * First dead-lettering event now injects a separate set of top-level headers — `x-first-death-queue`, `x-first-death-reason`,
+ and `x-first-death-exchange` — in addition to the `x-deaths` entries.
+
+ GitHub issue: [rabbitmq-server#1332](https://github.com/rabbitmq/rabbitmq-server/issues/1332)
+
+ * LF and CR are now stripped off of names of queues and exchanges
+
+ Although line feeds in names are permitted under the AMQP 0-9-1 spec,
+ in practice they can make it very difficult to work with queues and exchanges.
+ Stripping them out makes life much easier for developers.
+
+ GitHub issue: [rabbitmq-server#710](https://github.com/rabbitmq/rabbitmq-server/issues/710)
+
+ * Deletion of auto-delete and exclusive queues now leaves (debug) log entries
+
+ GitHub issue: [rabbitmq-server#590](https://github.com/rabbitmq/rabbitmq-server/issues/590)
+
+ * `rabbitmqctl set_vm_high_watermark` now produces more useful error messages when
+ relative values provided are outside of the `0..1.0` range.
+
+ GitHub issue: [rabbitmq-cli#157](https://github.com/rabbitmq/rabbitmq-cli/issues/157)
+
+#### Bug Fixes
+
+ * Mirrored queue could terminate if a policy is re-applied concurrently after promotion
+
+ GitHub issue: [rabbitmq-server#803](https://github.com/rabbitmq/rabbitmq-server/issues/803)
+
+ * Old incarnations of queue mirrors are stopped before new ones start
+
+ GitHub issue: [rabbitmq-server#863](https://github.com/rabbitmq/rabbitmq-server/issues/863)
+
+ * Channel interceptors are enabled/disabled together with plugins
+
+ GitHub issue: [rabbitmq-server#559](https://github.com/rabbitmq/rabbitmq-server/issues/559)
+
+
+### CLI Tools
+
+CLI tools were [significatnly redesigned](https://groups.google.com/forum/#!searchin/rabbitmq-users/ANN$20New$20CLI$20tools%7Csort:relevance/rabbitmq-users/x0XugmBt-IE/t2wdjIdSBgAJ),
+now can be extended from plugins and support command
+aliases (à la Git). There's also a new tool, `rabbitmq-diagnostics`, and several new commands available.
+
+GitHub issues: [rabbitmq-server#577](https://github.com/rabbitmq/rabbitmq-server/issues/577), [rabbitmq-cli#38](https://github.com/rabbitmq/rabbitmq-cli/issues/38), [rabbitmq-server#1085](https://github.com/rabbitmq/rabbitmq-server/issues/1085),
+ [rabbitmq-cli#10](https://github.com/rabbitmq/rabbitmq-cli/issues/10), [rabbitmq-cli#178](https://github.com/rabbitmq/rabbitmq-cli/issues/178), [rabbitmq-cli#180](https://github.com/rabbitmq/rabbitmq-cli/issues/180).
+
+#### Enhancements
+
+ * New CLI command for closing connections in bulk (e.g. a specific vhost).
+
+ GitHub issue: [rabbitmq-server#849](https://github.com/rabbitmq/rabbitmq-server/issues/849)
+
+ * New CLI command for detecting potentially stuck
+ processes (previously invoked as `rabbit_diagnostics:maybe_stuck/0` via `rabbitmqctl eval`).
+
+ GitHub issue: [rabbitmq-cli#144](https://github.com/rabbitmq/rabbitmq-cli/issues/144)
+
+ * New CLI command that lists non-AMQP connections (e.g. MQTT).
+
+ GitHub issue: [rabbitmq-cli#121](https://github.com/rabbitmq/rabbitmq-cli/issues/121)
+
+ * New CLI command that outputs effective Erlang cookie hash.
+
+ GitHub issue: [rabbitmq-cli#151](https://github.com/rabbitmq/rabbitmq-cli/issues/151)
+
+ * `rabbitmq-plugins list` will now only recognise Erlang applications that depend on
+ `rabbit` as plugins. Plugins that lacks the dependency will still function and
+ can be enabled or disabled but won't be listed.
+
+ GitHub issue: [rabbitmq-server#1124](https://github.com/rabbitmq/rabbitmq-server/issues/1124)
+
+
+
+### Management plugin
+
+#### Enhancements
+
+ * Statistics database is now distributed across the cluster: each nodes stores its own stats.
+
+ GitHub issue: [rabbitmq-management#236](https://github.com/rabbitmq/rabbitmq-management/issues/236)
+
+* Migration to Cowboy REST
+
+ RabbitMQ management plugin as well as its extensions (e.g. those of
+ Federation and Shovel, `rabbitmq-top`) now uses [Cowboy REST](http://ninenines.eu/docs/en/cowboy/HEAD/guide/rest_handlers/)
+ instead of Webmachine. Cowboy is a state-of-the-art open source Erlang HTTP 1.1 server and REST micro framework
+ that is also used in the plugins that provide WebSocket support.
+
+ The change is largely invisible to management UI and HTTP API
+ clients but there are minor changes that can affect test suites: for example,
+ `POST` and `PUT` responses now use `201 Created` instead of `204 No Content`.
+
+ Plugins that extend management UI need to be ported to Cowboy REST and Cowboy 2.
+
+ GitHub issue: [rabbitmq-management#63](https://github.com/rabbitmq/rabbitmq-management/issues/63)
+
+ * Users tagged with `administrator` now implicitly have access to most operations in all vhosts,
+ including those they don't have explicit permissions for.
+
+ GitHub issue: [rabbitmq-management#461](https://github.com/rabbitmq/rabbitmq-management/issues/461)
+
+ * User that creates a vhost is automatically granted full permissions in it. This is a usability
+ improvement to the management UI. Note that this assumes that a user that has the permissions to create
+ vhosts also has the permission to grant themselves permissions to any vhost, so this changes nothing in
+ terms of security.
+
+ GitHub issue: [rabbitmq-management#445](https://github.com/rabbitmq/rabbitmq-management/issues/445)
+
+ * New HTTP API endpoint allows for bulk deletion of users.
+
+ GitHub issue: [rabbitmq-management#448](https://github.com/rabbitmq/rabbitmq-management/issues/448)
+
+ * Node endpoint now returns more information about [memory use breakdown](http://next.rabbitmq.com/memory-use.html).
+ This is **breaking change**.
+
+ GitHub issue: [rabbitmq-management#499](https://github.com/rabbitmq/rabbitmq-management/issues/499)
+
+ * Report more TLS-related values via HTTP API
+
+ The HTTP API now reports all SSL/TLS options available for the RabbitMQ server as well as for the management plugin.
+
+ GitHub issue: [rabbitmq-management#163](https://github.com/rabbitmq/rabbitmq-management/issues/163)
+
+ * Topic authorisation permission management.
+
+ GitHub issue: [rabbitmq-management#405](https://github.com/rabbitmq/rabbitmq-management/issues/405)
+
+ * Dual IP Stack Support
+
+ Management plugin now can be configured to use IPv6 or both IPv6 and IPv4.
+
+ GitHub issue: [rabbitmq-management#64](https://github.com/rabbitmq/rabbitmq-management/issues/64)
+
+ * "Get messages" in the UI now offers more requeueing options. This is a **breaking change** for HTTP API
+ clients as the list of accepted `ackmode` field values has [changed](https://rawcdn.githack.com/rabbitmq/rabbitmq-management/v3.7.0/priv/www/api/index.html).
+
+ GitHub issue: [rabbitmq-management#68](https://github.com/rabbitmq/rabbitmq-management/issues/68)
+
+
+### Java client
+
+These release notes are for the 4.0 release. Please see [Java client release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases)
+for information about later releases.
+
+#### Enhancements
+
+ * Bump default TLS version to v1.2 with a fallback for older JDKs
+
+ The Java client now attempts to use TLS v1.2 by default (which many RabbitMQ servers prefer due to vulnerabilities in TLS v1)
+ but falls back to TLS v1 for older JDKs such as JDK 6.
+
+ GitHub issue: [rabbitmq-java-client#139](https://github.com/rabbitmq/rabbitmq-java-client/issues/139)
+
+ * Begin recovery after all shutdown listeners have been given a chance to run
+
+ GitHub issue: [rabbitmq-java-client#135](https://github.com/rabbitmq/rabbitmq-java-client/issues/135)
+
+ * `com.rabbitmq.client.Connection` and `com.rabbitmq.client.Channel` now implement `java.io.Closeable`
+
+ GitHub issue: [rabbitmq-java-client#131](https://github.com/rabbitmq/rabbitmq-java-client/issues/131)
+
+
+### .NET Client
+
+These release notes are for the 4.0 release. Please see [.NET client release notes](https://github.com/rabbitmq/rabbitmq-dotnet-client/releases)
+for information about later releases.
+
+#### Enhancements
+
+ * .NET Core support (as of .NET client `4.0.0`).
+
+ GitHub issues: [rabbitmq-dotnet-client#148](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/148), [rabbitmq-dotnet-client#213](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/213), [rabbitmq-dotnet-client#206](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/206)
+
+ * AppVeyor CI and NuGet feed of Nightly Builds
+
+ GitHub issue: [rabbitmq-dotnet-client#206](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/206)
+
+
+### MQTT plugin
+
+#### Enhancements
+
+ * Topic authorisation.
+
+ GitHub issues: [rabbitmq-mqtt#95](https://github.com/rabbitmq/rabbitmq-mqtt/issues/95), [rabbitmq-server#505](https://github.com/rabbitmq/rabbitmq-server/issues/505), [rabbitmq-mqtt#114](https://github.com/rabbitmq/rabbitmq-mqtt/issues/114).
+
+ * Client ID is propagated to [authentication backends](http://rabbitmq.com/access-control.html).
+
+ GitHub issue: [rabbitmq-mqtt#139](https://github.com/rabbitmq/rabbitmq-mqtt/issues/139)
+
+ * QoS 2 subscriptions are downgraded to QoS 1
+
+ GitHub issue: [rabbitmq-mqtt#21](https://github.com/rabbitmq/rabbitmq-mqtt/issues/21)
+
+
+### Shovel Plugin
+
+#### Enhancements
+
+ * Support for AMQP 1.0 and a foundation for more protocols supported in the future.
+ This means cross-protocol shoveling (AMQP 0-9-1 to AMQP 1.0 or the other way around) is now
+ supported. [Erlang client for AMQP 1.0](https://github.com/rabbitmq/rabbitmq-amqp1.0-client) is now also available
+ as a standalone project.
+
+ GitHub issue: [rabbitmq-shovel#26](https://github.com/rabbitmq/rabbitmq-shovel/issues/26)
+
+ * Message timestamping.
+
+ Shovel now adds an extra header that contains the timestamp
+ indicating when message was shovelled.
+
+ GitHub issue: [rabbitmq-shovel#2](https://github.com/rabbitmq/rabbitmq-shovel/issues/2)
+
+
+### Federation Plugin
+
+#### Enhancements
+
+ * New CLI command that restarts a link.
+
+ GitHub issue: [rabbitmq-federation#45](https://github.com/rabbitmq/rabbitmq-federation/issues/45)
+
+#### Bug Fixes
+
+ * Internal exchanges and queues are now cleaned up if the policy goes out of effect or the plugin is disabled.
+
+ GitHub issue: [rabbitmq-federation#63](https://github.com/rabbitmq/rabbitmq-federation/issues/63)
+
+### Event Exchange Plugin
+
+#### Enhancements
+
+ * Acting user information is now included into the emitted events where possible.
+
+ GitHub issue: [rabbitmq-event-exchange#10](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/10)
+
+
+### AMQP 1.0 Plugin
+
+This release introduces a new sub-project, an [Erlang client for AMQP 1.0](https://github.com/rabbitmq/rabbitmq-amqp1.0-client), and AMQP 1.0 support
+in the Shovel plugin.
+
+#### Bug Fixes
+
+ * Transfer frames are no longer sent before credit has been granted.
+
+ GitHub issue: [rabbitmq-amqp1.0#43](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/43)
+
+ * Ensure messages with `uint` TTL can round trip.
+
+ GitHub issue: [rabbitmq-amqp1.0#13](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/13)
+
+
+### LDAP Authn/Authz Backend
+
+#### Enhancements
+
+ * Topic authorisation support with variable expansion.
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#71](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/71)
+
+
+### Delayed Message Exchange Plugin
+
+#### Enhancements
+
+ * It is now possible to see how many messages are delayed in management UI
+
+ GitHub issue: [rabbitmq-delayed-message-exchange#3](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/issues/3)
+
+
+### Erlang Client
+
+#### Bug Fixes
+
+ * Connection operations now use a reasonable timeout.
+
+ GitHub issue: [rabbitmq-erlang-client#85](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/85)
+
+
+### AMQP 0-9-1 Authn/Authz Backend
+
+ * Topic authorisation support with variable expansion.
+
+ GitHub issue: [rabbitmq-auth-backend-amqp#16](https://github.com/rabbitmq/rabbitmq-auth-backend-amqp/issues/16)
+
+
+## Upgrading
+
+To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
+When upgrading using definitions export/import from versions earlier than 3.6.0, see http://rabbitmq.com/passwords.html.
+
+To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins, CLI tools or other sub-projects. Please download the archive named `rabbitmq-server-<version>.tar.xz` from this release
+page.
diff --git a/release-notes/3.7.1.md b/release-notes/3.7.1.md
new file mode 100644
index 0000000000..6fa0765a16
--- /dev/null
+++ b/release-notes/3.7.1.md
@@ -0,0 +1,121 @@
+## RabbitMQ 3.7.1
+
+RabbitMQ `3.7.1` is a bug fix release.
+
+### Upgrades and Compatibility
+
+This release has no known incompatibilities with 3.7.0. See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0)
+upgrade and compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html)
+for general documentation on upgrades.
+
+See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Standalone Mac build now bundles a version of Erlang/OTP that is compatible with High Sierra (20.1, to be specific).
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#68](https://github.com/rabbitmq/rabbitmq-server-release/issues/68)
+
+ * RabbitMQ distribution now again can be built in an offline environment (one without access to the Internet).
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#61](https://github.com/rabbitmq/rabbitmq-server-release/issues/61)
+
+ * `total_memory_available_override_value` was not available via the [new config format](https://www.rabbitmq.com/configure.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1445](https://github.com/rabbitmq/rabbitmq-server/issues/1445)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl set_parameter` ignored the virtual host argument and default to the default (`/`) vhost.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#232](https://github.com/rabbitmq/rabbitmq-cli/issues/232)
+
+
+### AWS Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * HTTP client proxy settings were applied to late and thus didn't have any effect.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-common#5](https://github.com/rabbitmq/rabbitmq-peer-discovery-common/issues/5)
+
+
+### Consul Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * HTTP client proxy settings were applied to late and thus didn't have any effect.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-common#5](https://github.com/rabbitmq/rabbitmq-peer-discovery-common/issues/5)
+
+
+### etcd Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * HTTP client proxy settings were applied to late and thus didn't have any effect.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-common#5](https://github.com/rabbitmq/rabbitmq-peer-discovery-common/issues/5)
+
+
+### Kubernetes Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * HTTP client proxy settings were applied to late and thus didn't have any effect.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-common#5](https://github.com/rabbitmq/rabbitmq-peer-discovery-common/issues/5)
+
+
+### Management and Management Agent Plugins
+
+#### Bug Fixes
+
+ * Certain node metrics in multi-cluster environment were not merged correctly
+ when aggregated.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#525](https://github.com/rabbitmq/rabbitmq-management/issues/525)
+
+
+### Auth Backend HTTP Plugin
+
+#### Bug Fixes
+
+ * It was not possible to configure request HTTP method using the [new style config file](https://www.rabbitmq.com/configure.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-http#61](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/61)
+
+
+### Shovel Management Plugin
+
+#### Bug Fixes
+
+ * Move Messages form on individual queue page didn't provide all the Shovel parameters required as
+ of 3.7.0 and thus did not transfer any messages.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel-management#24](https://github.com/rabbitmq/rabbitmq-shovel-management/issues/24)
+
+
+### Erlang AMQP 1.0 Client
+
+#### Bug Fixes
+
+ * Continuation frames without `delivery_id` were not handled correctly.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#11](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/11)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.1.tar.gz`.
diff --git a/release-notes/3.7.10.md b/release-notes/3.7.10.md
new file mode 100644
index 0000000000..7b38f3833e
--- /dev/null
+++ b/release-notes/3.7.10.md
@@ -0,0 +1,248 @@
+## RabbitMQ 3.7.10
+
+RabbitMQ `3.7.10` is a maintenance release. It focuses on bug fixes and minor usability improvements.
+
+### Compatibility Notes
+
+`rabbitmq-plugins` in this release will produce an extra leading line of output, as they did in `3.6.x` releases,
+when `-q` is not provided. Tools that parse `rabbitmq-plugins` output should use `-q --no-table-headers` to suppress
+all output meant for interactive use.
+
+### Erlang/OTP Compatibility Notes
+
+This is the [**last release to support Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ). Users are highly encouraged to
+upgrade to a more recent [supported Erlang version](https://www.rabbitmq.com/which-erlang.html).
+
+#### Upgrading to Erlang 21.x
+
+When upgrading to this release **and upgrading Erlang to 21.x** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21, RabbitMQ **must be upgraded before Erlang**.
+
+#### Documentation Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
+compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Channel stats emission performed some operations without a timeout, so listing channels or running
+ a node health check could block and potentially cause temporary process accumulation on the node.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1783](https://github.com/rabbitmq/rabbitmq-server/issues/1783)
+
+ * Virtual host process memory usage was higher than necessary.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1770](https://github.com/rabbitmq/rabbitmq-server/pull/1770)
+
+ * Node could run into a failed assertion after a partial partition.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1682](https://github.com/rabbitmq/rabbitmq-server/issues/1682)
+
+ * Topic authorisation could fail with an exception if connection terminated (cleanly or abruptly) concurrently.
+
+ GitHub issues: [rabbitmq/rabbitmq-common#290](https://github.com/rabbitmq/rabbitmq-common/pull/290), [rabbitmq/rabbitmq-server#1538](https://github.com/rabbitmq/rabbitmq-server/issues/1538)
+
+ * Pointing `RABBITMQ_SERVER_CODE_PATH` at a HiPE-precompiled code directory didn't result in HiPE-compiled
+ modules being loaded.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1777](https://github.com/rabbitmq/rabbitmq-server/issues/1777)
+
+#### Enhancements
+
+ * `kernel.inet_dist_listen_min` and `kernel.inet_dist_listen_max` could not be configured via new style config.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1784](https://github.com/rabbitmq/rabbitmq-server/issues/1784)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl list_consumers` only listed consumers on queues that had leader replica hosted on
+ the target node. Instead consumers of all queues in the virtual host should have been listed.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#284](https://github.com/rabbitmq/rabbitmq-cli/issues/284)
+
+ * A combination of `RABBITMQ_NODENAME` and `RABBITMQ_USE_LONGNAME` now works the same way for CLI
+ tools as prior to 3.7.0.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#278](https://github.com/rabbitmq/rabbitmq-cli/issues/278)
+
+ * New command: `rabbitmq-diagnostics tls_versions`, that lists TLS versions available in the runtime
+ on the target nodes.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#289](https://github.com/rabbitmq/rabbitmq-cli/pull/289)
+
+ * `rabbitmqadmin declare user` now supports providing a password hash and algorithm instead of a password.
+
+ Contributed by John W. Higgings.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#641](https://github.com/rabbitmq/rabbitmq-management/pull/641)
+
+ * `-q` was hardcoded for `rabbitmq-plugins`
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1781](https://github.com/rabbitmq/rabbitmq-server/issues/1781)
+
+#### Enhancements
+
+ * `rabbitmqctl set_log_level` is a new command that changes effective log level of a node at runtime.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#276](https://github.com/rabbitmq/rabbitmq-cli/issues/276)
+
+ * `rabbitmq-diagnostics runtime_thread_stats` is a new command that outputs runtime thread state stats.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#282](https://github.com/rabbitmq/rabbitmq-cli/pull/282)
+
+ * `rabbitmq-plugins directories` is a new command that outputs effective [plugin directories](https://www.rabbitmq.com/plugins.html#plugin-directories).
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#261](https://github.com/rabbitmq/rabbitmq-cli/issues/261)
+
+ * `--silent` is a new flag that combines `--quiet` and `--no-table-headers` (where applicable).
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#274](https://github.com/rabbitmq/rabbitmq-cli/issues/274)
+
+ * Improved error messages for several common issues that can make `rabbitmq-plugins` commands fail.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#283](https://github.com/rabbitmq/rabbitmq-cli/pull/283)
+
+
+### Management and Management Agent Plugins
+
+#### Bug Fixes
+
+ * Exported definitions for an individual virtual host were missing [runtime parameters](https://www.rabbitmq.com/parameters.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-management#628](https://github.com/rabbitmq/rabbitmq-management/issues/628)
+
+ * Filter inputs now escape incomplete HTML tags from their values. Previously they only stripped complete and valid tags.
+ Note that the inputs are not populated from request parameters and have to be manually populated by the user.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#646](https://github.com/rabbitmq/rabbitmq-management/issues/646)
+
+ * Exclusive queue owner connection now again can be navigated to using a link on the queue page.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#467](https://github.com/rabbitmq/rabbitmq-management/issues/467)
+
+#### Enhancements
+
+ * More TLS options, including cipher suites, now can be configured using new style config format.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#643](https://github.com/rabbitmq/rabbitmq-management/issues/643)
+
+ * Metric chart ranges now only list options for which enough data is [retained](https://www.rabbitmq.com/management.html#sample-retention).
+
+ GitHub issue: [rabbitmq/rabbitmq-management#635](https://github.com/rabbitmq/rabbitmq-management/issues/635)
+
+
+### STOMP Plugin
+
+#### Enhancements
+
+ * TCP listener options now can be configured using new style configuration format.
+
+ GitHub issue: [rabbitmq/rabbitmq-stomp#129](https://github.com/rabbitmq/rabbitmq-stomp/issues/129)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * Backported several stability improvements for interaction with AMQP 1.0 endpoints from the 3.8 development
+ branch (master).
+
+ Changes: [one](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/commit/8f0f7df34904abdee67e9764406837a5a7ecc091), [two](https://github.com/rabbitmq/rabbitmq-amqp1.0-common/commit/43bf4486fe6b993e5bc000056e78767889a23bbe)
+
+ * Shovels now can be created with blank publish properties.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#46](https://github.com/rabbitmq/rabbitmq-shovel/issues/46)
+
+
+### Consistent Hash Exchange Plugin
+
+#### Bug Fixes
+
+ * The plugin relied on a non-deterministic ordering behavior when bindings were removed (e.g. because a queue was
+ deleted). This could lead to inconsistent hash ring state and affect routing behavior.
+
+ GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#40](http://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/40)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+ * When `web_mqtt.ssl.listener` is set, TLS certificate, key and other TLS settings were ignored.
+
+ GitHub: [rabbitmq/rabbitmq-web-stomp#104](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/104)
+
+#### Enhancements
+
+ * [Proxy protocol](https://www.rabbitmq.com/networking.html#proxy-protocol) support.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#84](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/84)
+
+ * TCP (as in, non-TLS) listener now can be disabled.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#100](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/100)
+
+ * More TLS options, including cipher suites, now can be configured using new style config format.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#101](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/101)
+
+ * Proxy protocol now can be enabled via new style config format.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#99](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/99)
+
+ * Resource-driven flow control support.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#40](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/40)
+
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+ * When `web_mqtt.ssl.listener` is set, TLS certificate, key and other TLS settings were ignored.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#48](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/48)
+
+ * Last Will message was not sent when connection that had it configured was closed cleanly.
+
+ Contributed by Karen Mae Bajador.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#52](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/52)
+
+#### Enhancements
+
+ * [Proxy protocol](https://www.rabbitmq.com/networking.html#proxy-protocol) support.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#29](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/29)
+
+ * TCP (as in, non-TLS) listener now can be disabled.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#31](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/31)
+
+ * More TLS options, including cipher suites, now can be configured using new style config format.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#45](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/45)
+
+ * Proxy protocol now can be enabled via new style config format.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#46](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/46)
+
+ * Resource-driven flow control support.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#40](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/40)
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.10.tar.gz`.
diff --git a/release-notes/3.7.11.md b/release-notes/3.7.11.md
new file mode 100644
index 0000000000..c93941c337
--- /dev/null
+++ b/release-notes/3.7.11.md
@@ -0,0 +1,139 @@
+## RabbitMQ 3.7.11
+
+RabbitMQ `3.7.11` is a maintenance release. It focuses on bug fixes and
+minor usability improvements. This is the first release to **require Erlang/OTP 20.3+**.
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**drops support for Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ). Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains what package repositories and tools can be used to provision latest patch versions of Erlang `20.3.x` and `21.x`.
+
+### Compatibility Notes
+
+ * This release requires Erlang/OTP 20.3 or later.
+ * Default CLI command exit code has changed from 70 (`EX_UNAVAILABLE`) to 69 (`EX_SOFTWARE`).
+ This does not affect all commands and all error conditions, e.g. argument validation still uses code 64 (`EX_USAGE`)
+
+#### Upgrading to Erlang 21.x
+
+When upgrading to this release **and upgrading Erlang to 21.x** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21, RabbitMQ **must be upgraded before Erlang**.
+
+#### Documentation Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
+compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Erlang Version Requirement
+
+ * This release **requires Erlang/OTP `20.3.x`** or `21.x`.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1820](https://github.com/rabbitmq/rabbitmq-server/issues/1820)
+
+#### Bug Fixes
+
+ * Number of socket file descriptors used is now correctly incremented.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#652](https://github.com/rabbitmq/rabbitmq-management/issues/652)
+
+ * Configuration schema file was not copied during upgrades.
+
+ GitHub issues: [rabbitmq/rabbitmq-server#1843](https://github.com/rabbitmq/rabbitmq-server/issues/1843)
+
+ * First heartbeat frame on a successfully negotiated connection is now sent after a half of the negotiated heartbeat
+ timeout. Previously it was sent after a complete timeout. Since most connections have other activity after
+ connection handshake is complete, this didn't have any visible effects on most systems.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#293](https://github.com/rabbitmq/rabbitmq-common/pull/293)
+
+ * If Syslog was configured to use TCP, the node could fail to start.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1850](https://github.com/rabbitmq/rabbitmq-server/issues/1850)
+
+### CLI Tools
+
+#### Enhancements
+
+ * Several new `rabbitmq-diagnostics` commands useful for diagnostics and health checks.
+
+ GitHub issues: [rabbitmq/rabbitmq-cli/issues/292](https://github.com/rabbitmq/rabbitmq-cli/issues/292), [rabbitmq/rabbitmq-cli#303](https://github.com/rabbitmq/rabbitmq-cli/pull/303), [rabbitmq/rabbitmq-cli#303](https://github.com/rabbitmq/rabbitmq-cli/pull/303)
+
+ * All CLI tools now can display command-specific help with `[command name] --help`, e.g. `rabbitmqctl set_policy --help`
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#306](https://github.com/rabbitmq/rabbitmq-cli/pull/306)
+
+
+### Management Plugin
+
+#### Enhancements
+
+ * `rabbitmqadmin` now defines an exception not available in Python 2, making TCP connection
+ error reporting more similar with that on Python 3.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#647](https://github.com/rabbitmq/rabbitmq-management/issues/647)
+
+
+### AWS Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * When an EC2 API endpoint could not be reached, the plugin terminated in a way that
+ brought down the entire node with it.
+
+ GitHib issue: [rabbitmq/rabbitmq-peer-discovery-aws#25](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/25)
+
+
+### STOMP Plugin
+
+#### Enhancements
+
+ * Avoid using a private socket API function that's likely going away in Erlang 22.
+
+ GitHub issue: [rabbitmq/rabbitmq-stomp#128](https://github.com/rabbitmq/rabbitmq-stomp/pull/128)
+
+ * Default topic exchange used by the plugin is now configurable.
+
+ GitHub issue: [rabbitmq/rabbitmq-stomp#94](https://github.com/rabbitmq/rabbitmq-stomp/issues/94)
+
+
+### MQTT Plugin
+
+#### Enhancements
+
+ * Avoid using a private socket API function that's likely going away in Erlang 22.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#171](https://github.com/rabbitmq/rabbitmq-mqtt/pull/171)
+
+
+### AuthN/AuthZ Backend Cache Plugin
+
+#### Bug Fixes
+
+ * The new style config format did not support `auth_cache.cache_refusals`
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-cache#17](https://github.com/rabbitmq/rabbitmq-auth-backend-cache/issues/17)
+
+### Erlang Client
+
+#### Enhancements
+
+ * Avoid using a private socket API function that's likely going away in Erlang 22.
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#114](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/114)
+
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.11.tar.gz`.
diff --git a/release-notes/3.7.12.md b/release-notes/3.7.12.md
new file mode 100644
index 0000000000..efd142b174
--- /dev/null
+++ b/release-notes/3.7.12.md
@@ -0,0 +1,209 @@
+## RabbitMQ 3.7.12
+
+RabbitMQ `3.7.12` is a maintenance release. It focuses on bug fixes and
+minor usability improvements. This release [**requires Erlang/OTP 20.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories)
+explains what package repositories and tools can be used to provision latest patch versions of
+Erlang `20.3.x` and `21.x`.
+
+### Compatibility Notes
+
+#### Minimum Required Erlang Version
+
+This release requires Erlang/OTP 20.3 or later.
+
+#### `rabbitmqctl shutdown` Behavior with Remote Nodes
+
+In earlier releases, when `rabbitmqctl shutdown` was used against a remote node, it would successfully
+shut down the node but won't actually wait for its termination because the pid file path
+reported by the remote node is not available locally. This is because `rabbitmqctl shutdown` was
+meant to be used as a `rabbitmqctl stop` alternative that doesn't require the caller to know the
+pid file path.
+
+Starting with this version, `rabbitmqctl shutdown` will refuse to run against a remote node
+by default. If the earlier behavior is desired and expected, it can be restored by passing `--no-wait`:
+
+``` shell
+# will refuse to run against a remote node in --wait mode as of 3.7.12
+# and --wait is on by default
+rabbitmqctl shutdown -n rabbit@hostname.different.from.local --longnames
+
+# behaves the same way as in 3.7.0 through 3.7.11
+rabbitmqctl shutdown -n rabbit@hostname.different.from.local --longnames --no-wait
+```
+
+#### `inet_dist_listen_min` and `inet_dist_listen_max` in New Style Configuration
+
+`inet_dist_listen_min` and `inet_dist_listen_max` were **removed from new style configuration**.
+They wouldn't have any effect due to how configuration translation is performed.
+Use `advanced.config` or the `RABBITMQ_DIST_PORT` env variable to configure these settings:
+
+``` erlang
+[
+ {kernel, [
+ {inet_dist_listen_min, 33672},
+ {inet_dist_listen_max, 33672}
+ ]},
+ {rabbit, [
+ %% ...
+ ]}
+].
+```
+
+Note that some runtime parameters, e.g. `net_ticktime`, can be set via new style configuration.
+This change is specific to the distirbution port settings.
+
+#### Upgrading to Erlang 21.x
+
+When upgrading to this release **and upgrading Erlang to 21.x** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
+compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * When a node was configured to allow for unlimited frame size, an empty message published
+ via HTTP API resulted in an infinite recursion loop in the parser.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#299](https://github.com/rabbitmq/rabbitmq-common/issues/299)
+
+ * `inet_dist_listen_min` and `inet_dist_listen_max` were **removed from new style configuration**.
+ They wouldn't have any effect due to how configuration translation is performed.
+ Use `advanced.config` or the `RABBITMQ_DIST_PORT` env variable to configure these settings:
+
+ ``` erlang
+ [
+ {kernel, [
+ {inet_dist_listen_min, 33672},
+ {inet_dist_listen_max, 33672}
+ ]},
+ {rabbit, [
+ %% ...
+ ]}
+ ].
+ ```
+
+ Note that some runtime parameters, e.g. `net_ticktime`, can be set via new style configuration.
+ This change is specific to the distirbution port settings.
+
+ Contributed by [Gabriele Santomaggio](https://github.com/Gsantomaggio).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1881](https://github.com/rabbitmq/rabbitmq-server/pull/1881)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl` and other CLI tools could fail when used with nodes using long node names.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#311](https://github.com/rabbitmq/rabbitmq-cli/issues/311)
+
+ * `rabbitmqctl --help` now exits with exit code of 0. `rabbitmqctl` (no arguments) uses code
+ 64 (`EX_USAGE`).
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#307](https://github.com/rabbitmq/rabbitmq-cli/issues/307)
+
+#### Enhancements
+
+ * `rabbitmqctl shutdown` now requires the user to opt in and provide `--no-wait`
+ to be used with remote nodes. There are no behavior changes when the command is invoked
+ against a locally running node. See also the compatibility note to this release.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#309](https://github.com/rabbitmq/rabbitmq-cli/pull/309)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Large HTTP API request bodies (e.g. importing a large [definition file](https://www.rabbitmq.com/backup.html#rabbitmq-definitions))
+ were not guaranteed to be fully consumed before parsing.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#657](https://github.com/rabbitmq/rabbitmq-management/issues/657)
+
+ * `management_db_cache_multiplier` configuration setting was ignored due to a typo.
+
+ Contributed by [Josh Soref](https://github.com/jsoref).
+
+ GitHub issue: [rabbitmq/rabbitmq-management#659](https://github.com/rabbitmq/rabbitmq-management/pull/659)
+
+
+### MQTT Plugin
+
+#### Enhancements
+
+ * When a retained message is published, its topic is now correctly translated
+ to use MQTT topic separators (a slash) regardless of the internal representation.
+
+ Contributed by [Ryan Sandbach](https://github.com/rsandbach).
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#175](https://github.com/rabbitmq/rabbitmq-mqtt/issues/175)
+
+ * When a client sent a duplicate `CONNECT` frame (tried to "reauthenticate"), connection failed
+ [with a scary looking exception](https://groups.google.com/d/msg/rabbitmq-users/1MBdymMAZzw/HQLDwI_8GAAJ).
+
+ Now the frame is ignored (reauthentication is therefore still impossible) and a warning is logged
+ but the connection is kept open.
+
+ Kudos to Grigory Starinkin for confirming our original hypothesis and providing the steps
+ to reproduce.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#179](https://github.com/rabbitmq/rabbitmq-mqtt/issues/179).
+
+#### Bug Fixes
+
+ * Clearer and shorter log messages when a socket write fails.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#178](https://github.com/rabbitmq/rabbitmq-mqtt/pull/178)
+
+
+### LDAP Plugin
+
+#### Enhancements
+
+ * The plugin now uses its own [logging sink](https://www.rabbitmq.com/logging.html#advanced-configuration), which makes it possible to direct
+ all LDAP logs to a separate file.
+
+ Contributed by [Yury Alioshinov](https://github.com/Haster2004).
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#105](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/105)
+
+
+## Shovel Plugin
+
+#### Bug Fixes
+
+ * Configurating a Shovel with a valid AMQP 1.0 destination could fail with an exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#50](https://github.com/rabbitmq/rabbitmq-shovel/issues/50)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.12.tar.gz`.
diff --git a/release-notes/3.7.13.md b/release-notes/3.7.13.md
new file mode 100644
index 0000000000..800ca28fea
--- /dev/null
+++ b/release-notes/3.7.13.md
@@ -0,0 +1,177 @@
+## RabbitMQ 3.7.13
+
+RabbitMQ `3.7.13` is a maintenance release. It focuses on bug fixes and
+minor usability improvements. This release [**requires Erlang/OTP 20.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories)
+explains what package repositories and tools can be used to provision latest patch versions of
+Erlang `20.3.x` and `21.x`.
+
+### Compatibility Notes
+
+#### Minimum Required Erlang Version
+
+This release requires Erlang/OTP 20.3 or later.
+
+#### Upgrading to Erlang 21.x
+
+When upgrading to this release **and upgrading Erlang to 21.x** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
+compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Binding and unbinding operations could fail with a `NOT_FOUND` channel exception if binding tables
+ got out of sync.
+
+ GitHub issues: [rabbitmq/rabbitmq-server#1873](https://github.com/rabbitmq/rabbitmq-server/issues/1873), [rabbitmq/rabbitmq-server#1878](https://github.com/rabbitmq/rabbitmq-server/pull/1878), [rabbitmq/rabbitmq-server#1884](https://github.com/rabbitmq/rabbitmq-server/pull/1884)
+
+ * Eliminated an accumulating inefficiency around topic-based authorisation (only topic
+ exchanges are affected).
+
+ Contributed by [Ayanda Dube](https://github.com/Ayanda-D).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1886](https://github.com/rabbitmq/rabbitmq-server/pull/1886)
+
+ * TCP connections could accumulate when [Proxy protocol](https://www.rabbitmq.com/networking.html#proxy-protocol)
+ was enabled and proxy's TCP connections were closed before Proxy protocol header was received and parsed.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1901](https://github.com/rabbitmq/rabbitmq-server/issues/1901)
+
+ * When a queue was deleted, [internal events](https://github.com/rabbitmq/rabbitmq-event-exchange)
+ about consumer cancellation (`consumer.deleted`) were not emitted.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1892](https://github.com/rabbitmq/rabbitmq-server/issues/1892)
+
+ * Connection tracking subsystem failed and logged an exception when connection was closed before it could
+ be registered.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1898](https://github.com/rabbitmq/rabbitmq-server/pull/1898)
+
+#### Enhancements
+
+ * Exclusive queue property mismatch during queue declaration now produces a more helpful
+ error message.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1887](https://github.com/rabbitmq/rabbitmq-server/issues/1887)
+
+ * Erlang 22 forward compatibility: support more cipher suites for config value encryption.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#307](https://github.com/rabbitmq/rabbitmq-common/pull/307)
+
+
+### CLI Tools
+
+#### Enhancements
+
+ * `rabbitmqctl shutdown` in `--wait` mode now uses node names instead of `gethostname(2)` when inferring
+ if target node is remote. This is more reliable as it takes explicitly set node names and `ERL_INETRC`
+ settings into account. In addition, it treats all nodes that have `@localhost` in the name as local
+ (running on the same host).
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#327](https://github.com/rabbitmq/rabbitmq-cli/issues/327).
+
+ * `rabbitmqctl forget_cluster_node` produces a more helpful error message when asked to remove a node with running
+ RabbitMQ application.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#323](https://github.com/rabbitmq/rabbitmq-cli/issues/323)
+
+ * New command, `rabbitmqctl force_gc`, that requests fullsweep GC for all processes on the target node.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#319](https://github.com/rabbitmq/rabbitmq-cli/issues/319)
+
+ * All RabbitMQ CLI tools now support `--version` as well as `version` as a command.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#314](https://github.com/rabbitmq/rabbitmq-cli/issues/314)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * `rabbitmqadmin`'s' `declare vhost_limit` and `delete vhost_limit` did not support the vhost
+ parameter.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#667](https://github.com/rabbitmq/rabbitmq-management/issues/667)
+
+ * `PUT /api/vhost-limits/{vhost}/{limit}` documentation was incorrect and used confusing language.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#667](https://github.com/rabbitmq/rabbitmq-management/issues/667)
+
+
+### Debian and RPM Packages
+
+#### Bug Fixes
+
+ * Debian and RPM packages no longer source `/etc/profile` in post installation scripts.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#93](https://github.com/rabbitmq/rabbitmq-server-release/issues/93)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Federation links could fail to start with an `{error, already_started} `.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#84](https://github.com/rabbitmq/rabbitmq-federation/issues/84)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * AMQP 1.0 endpoint URIs could fail to parse.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#23](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/23)
+
+
+### HTTP AuthN/AuthZ Backend Plugin
+
+#### Enhnanceements
+
+ * User tags are now passed to virtual host, resource and topic authorisation check endpoints as a space-separated string.
+
+ Contributed by [romerod](https://github.com/romerod).
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-http#79](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/79)
+
+
+### Trust Store Plugin
+
+#### Bug Fixes
+
+ * HTTP provider did not correctly update `If-Modified-Since` request header when certificates
+ (and thus their `Last-Modified` response header) were updated.
+
+ GitHub issue: [rabbitmq/rabbitmq-trust-store#68](https://github.com/rabbitmq/rabbitmq-trust-store/issues/68)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.13.tar.gz`.
diff --git a/release-notes/3.7.14.md b/release-notes/3.7.14.md
new file mode 100644
index 0000000000..13547c32f2
--- /dev/null
+++ b/release-notes/3.7.14.md
@@ -0,0 +1,100 @@
+## RabbitMQ 3.7.14
+
+RabbitMQ `3.7.14` is a maintenance release. It focuses on bug fixes and minor usability improvements. This release [**requires Erlang/OTP 20.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains what package repositories and tools can be used to provision latest patch versions of Erlang `20.3.x` and `21.x`.
+
+### Compatibility Notes
+
+#### Minimum Required Erlang Version
+
+This release requires Erlang/OTP 20.3 or later.
+
+#### Upgrading to Erlang 21.x
+
+When upgrading to this release **and upgrading Erlang to 21.x** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Enhancements
+
+ * TCP and TLS listeners are started later to reduce the probability of clients connecting to and performing operations
+ on a node that's not fully initialised.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1869](https://github.com/rabbitmq/rabbitmq-server/issues/1869)
+
+ * Reduced schema data store locking for binding operations.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1900](https://github.com/rabbitmq/rabbitmq-server/pull/1900)
+
+
+### CLI Tools
+
+#### Enhancements
+
+ * More informative and user-friendly help messages produced by `help` and `help [command]` commands.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#332](https://github.com/rabbitmq/rabbitmq-cli/pull/332)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Groups of upstream URIs were not formatted correctly.
+
+ Contributed by [Grigory Starinkin](https://github.com/velimir).
+
+ GitHub issue: [rabbitmq/rabbitmq-management#683](https://github.com/rabbitmq/rabbitmq-management/pull/683)
+
+#### Enhancements
+
+ * `management.load_definitions` now can point at a directory of definition files, not just a single file.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#665](https://github.com/rabbitmq/rabbitmq-management/issues/665)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Federation links could fail to start with an `{error, already_started}`.
+
+ GitHub issues: [rabbitmq/rabbitmq-federation#84](https://github.com/rabbitmq/rabbitmq-federation/issues/84), [rabbitmq/rabbitmq-federation#87](https://github.com/rabbitmq/rabbitmq-federation/pull/87)
+
+
+### RPM Package
+
+#### Bug Fixes
+
+ * RPM package post-install scripts now restart the node in case it was running before the upgrade.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#94](https://github.com/rabbitmq/rabbitmq-server-release/issues/94)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.14.tar.gz`.
diff --git a/release-notes/3.7.15.md b/release-notes/3.7.15.md
new file mode 100644
index 0000000000..a0f3d9903c
--- /dev/null
+++ b/release-notes/3.7.15.md
@@ -0,0 +1,255 @@
+## RabbitMQ 3.7.15
+
+RabbitMQ `3.7.15` is a maintenance release. It focuses on bug fixes and minor usability improvements.
+This release [**requires Erlang/OTP 20.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+It is also the first release to support Erlang 22.
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `20.3.x` and `21.x`.
+
+### Compatibility Notes
+
+#### Minimum Required Erlang Version
+
+This release requires Erlang/OTP 20.3 or later.
+
+#### Upgrading to Erlang 21.x
+
+When upgrading to this release **and upgrading Erlang to 21.x** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * `rabbitmq.conf` validation errors on startup unintentionally lacked a lot of relevant details.
+
+ Contributed by Grigory Starinkin.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1985](https://github.com/rabbitmq/rabbitmq-server/issues/1985)
+
+ * Message store compaction could enter a race condition with queue operations.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2000](https://github.com/rabbitmq/rabbitmq-server/issues/2000)
+
+ * Internal schema data store consistency checks used an on-disk location which could be unintentionally
+ preserved between deployments and make subsequent deployments fail. Now an entirely in-memory set of tables
+ is used for schema consistency checks.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1960](https://github.com/rabbitmq/rabbitmq-server/pull/1960)
+
+ * When [publisher confirms](https://www.rabbitmq.com/confirms.html) had to send both positive and negative acknowledgements around the same time,
+ it could be done in a way that would violate expectations of most client libraries.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1719](https://github.com/rabbitmq/rabbitmq-server/pull/1719)
+
+ * Policy validation could allow invalid values in certain cases.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1999](https://github.com/rabbitmq/rabbitmq-server/pull/1999)
+
+ * `amq.rabbitmq.log` exchage was lazily initialised and could be temporarily unavailable after node start.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1973](https://github.com/rabbitmq/rabbitmq-server/issues/1973)
+
+ * Clearing a policy with `overflow` behaviour or removing the key from it did not
+ roll back the overflow behaviour to `drop-head` (the default).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1980](https://github.com/rabbitmq/rabbitmq-server/issues/1980)
+
+ * Missing `getconf` command (used to fetch platform's memory page size) is now handled more gracefully
+ with a default value.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#318](https://github.com/rabbitmq/rabbitmq-common/issues/318)
+
+
+#### Enhancements
+
+ * Initial Erlang 22 compatibility.
+
+ GitHub issues: [rabbitmq/rabbitmq-common#315](https://github.com/rabbitmq/rabbitmq-common/issues/315),
+ [rabbitmq/rabbitmq-common#313](https://github.com/rabbitmq/rabbitmq-common/pull/313),
+ [rabbitmq/rabbitmq-common#323](https://github.com/rabbitmq/rabbitmq-common/pull/323)
+
+ * Connection tracking is now more efficient, reducing node load
+ and internal event backlog in case of [high connection churn](https://www.rabbitmq.com/networking.html#dealing-with-high-connection-churn).
+
+ GitHub issues: [rabbitmq/rabbitmq-server#1971](https://github.com/rabbitmq/rabbitmq-server/pull/1971),
+ [rabbitmq/rabbitmq-server#1975](https://github.com/rabbitmq/rabbitmq-server/pull/1975)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Enabled kernel sendfile for HTTP API documentation pages could lead to leaked file descriptors
+ when those pages are accessed repeatedly (e.g. a tab is always open for weeks and weeks).
+ The plugin now disables sendfile for those static files by default. It can be manually enabled
+ via configuration as needed.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#698](https://github.com/rabbitmq/rabbitmq-management/pull/698)
+
+ * Listing permissions could result in a 500 response.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#688](https://github.com/rabbitmq/rabbitmq-management/pull/688)
+
+ * When CORS headers were enabled, binding endpoints were inaccessible due to an exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#687](https://github.com/rabbitmq/rabbitmq-management/pull/687)
+
+ * An option to display message rates for the last 8 and 24 hours was hidden in the UI even when data
+ for those time intervals was available.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#693](https://github.com/rabbitmq/rabbitmq-management/pull/693)
+
+ * Information unit suffix incorrectly suggested that values were powers of 10 (gigabyte) instead of
+ power of 2 (gibibyte).
+
+ GitHub issue: [rabbitmq/rabbitmq-management#694](https://github.com/rabbitmq/rabbitmq-management/pull/694)
+
+
+### AMQP 1.0 Plugin
+
+#### Bug Fixes
+
+ * Default host specified in `amqp1_0.default_vhost` (`rabbitmq_amqp1_0.default_vhost` in classic config format)
+ now takes precedence over `default_vhost` (`rabbit.default_vhost`) in the core broker.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0#86](https://github.com/rabbitmq/rabbitmq-amqp1.0/pull/86)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * Connections to source and destination nodes are now correctly closed if topology operations
+ fail on either end (e.g. due to insufficient permissions).
+
+ Contributed by Grigory Starinkin.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#54](https://github.com/rabbitmq/rabbitmq-shovel/pull/54)
+
+ * Improved handling of cases where AMQP 1.0 endpoint connection was refused access to a virtual host.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#57](https://github.com/rabbitmq/rabbitmq-shovel/pull/57)
+
+#### Enhancements
+
+ * The plugin now provides a new CLI command and HTTP API endpoint for restarting
+ a dynamic Shovel.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#48](https://github.com/rabbitmq/rabbitmq-shovel/issues/48)
+
+
+### Federation Plugin
+
+#### Enhancements
+
+ * Queue federation now uses a more informative consumer tag value.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#66](https://github.com/rabbitmq/rabbitmq-federation/issues/66)
+
+
+## CLI Tools
+
+### Bug Fixes
+
+ * Streamling `list_*` commands could hang when encountering an error from one of the cluster nodes.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#336](https://github.com/rabbitmq/rabbitmq-cli/issues/336)
+
+ * `rabbitmqctl delete_queue -u` failed argument validation due to a typo.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#339](https://github.com/rabbitmq/rabbitmq-cli/issues/339)
+
+ * `rabbitmq-diagnostics cipher_suites` now provides a way to display all available (not just enabled)
+ cipher suites.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#342](https://github.com/rabbitmq/rabbitmq-cli/issues/342)
+
+### Enhancements
+
+ * When an unsupported node name is used, CLI tools will now produce more specific error messages.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#345](https://github.com/rabbitmq/rabbitmq-cli/issues/345)
+
+ * `rabbitmq-diagnostics erlang_version` now supports `--offline`.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#315](https://github.com/rabbitmq/rabbitmq-cli/issues/315)
+
+
+### Web STOMP Plugin
+
+#### Enhancements
+
+ * Default STOMP plugin log is now used for `CONNECT` frames without credentials.
+
+ Contributed by Nick Goossens.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#110](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/110)
+
+
+### Erlang AMQP 0-9-1 Client
+
+#### Bug Fixes
+
+ * Direct connections (via Erlang distribution) from outside of a RabbitMQ should no longer fail due to
+ a dependency on a module that was previously a part of core RabbitMQ broker.
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#91](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/91)
+
+
+### Auth Backend Cache Plugin
+
+#### Bug Fixes
+
+ * Virtual host endpoint requests were not cached.
+
+ GitHub issues: [rabbitmq/rabbitmq-auth-backend-cache#20](https://github.com/rabbitmq/rabbitmq-auth-backend-cache/issues/20),
+ [rabbitmq/rabbitmq-auth-backend-cache#24](https://github.com/rabbitmq/rabbitmq-auth-backend-cache/issues/24)
+
+
+### Top Plugin
+
+#### Bug Fixes
+
+ * Calculation worker process could fail due to an exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-top#34](https://github.com/rabbitmq/rabbitmq-top/issues/34)
+
+
+### JMS Topic Exchange Plugin
+
+#### Bug Fixes
+
+ * `LIKE` operator could be incorrectly evaluated.
+
+ GitHub issue: [rabbitmq/rabbitmq-jms-topic-exchange#18](https://github.com/rabbitmq/rabbitmq-jms-topic-exchange/issues/18)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.15.tar.xz`.
diff --git a/release-notes/3.7.16.md b/release-notes/3.7.16.md
new file mode 100644
index 0000000000..234c0614f2
--- /dev/null
+++ b/release-notes/3.7.16.md
@@ -0,0 +1,174 @@
+## RabbitMQ 3.7.16
+
+RabbitMQ `3.7.16` is a maintenance release. It focuses on bug fixes and minor usability improvements.
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### OpenSUSE Leap 42.3 Support Dropped
+
+OpenSUSE Leap 42.3 has [gone out of support on July 1st](https://en.opensuse.org/Lifetime), 2019. Packages for
+that distribution are therefore no longer produced because upstream OpenSUSE repositories are no longer
+available.
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * When a node hosting an exclusive queue was restarted with queue leader locator being something other than
+ "node local", redeclaration of the queue failed.
+
+ Contributed by Lajos Gerecs.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2039](https://github.com/rabbitmq/rabbitmq-server/issues/2039)
+
+#### Enhancements
+
+ * It is now possible to configure default worker pool size:
+
+ ``` ini
+ default_worker_pool_size = 1024
+ ```
+
+ This may be necessary in environments with a large number of queues (say, hundreds of thousands)
+ to speed up queue and binding recovery on node boot. By default the size of the pool is
+ computed as the number of [available runtime schedulers](https://www.rabbitmq.com/runtime.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2030](https://github.com/rabbitmq/rabbitmq-server/issues/2030)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl report` and `rabbitmqctl list_queues` could fail with a `{bad_argument,type}` because of a 3.8-specific column was erroneously listed as supported.
+
+ Contributed by Lajos Gerecs.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#354](https://github.com/rabbitmq/rabbitmq-cli/pull/354)
+
+#### Enhancements
+
+ * New health check: `rabbitmq-diagnostics check_virtual_hosts`.
+
+ [rabbitmq/rabbitmq-cli#302](https://github.com/rabbitmq/rabbitmq-cli/issues/302)
+
+ * New observability command, `rabbitmq-diagnostics log_location [--all]`, displays log file location(s)
+ on target node. The node is assumed to be running.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#325](https://github.com/rabbitmq/rabbitmq-cli/issues/325)
+
+ * New observability commands, `rabbitmq-diagnostics log_tail` and `rabbitmq-diagnostics log_tail_stream`,
+ provide a way to remotely inspect recent log file entries on a running node. The commands are meant
+ to be used for troubleshooting and not to automate log aggregation.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#326](https://github.com/rabbitmq/rabbitmq-cli/issues/326)
+
+ * `rabbitmq-diagnostics schema_info` displays information about internal database schema
+ (tables, their properties and metadata).
+
+ [rabbitmq/rabbitmq-cli#330](https://github.com/rabbitmq/rabbitmq-cli/issues/330)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * When multiple definition files were [imported on node boot](https://www.rabbitmq.com/management.html#load-definitions), errors were not reported
+ the same way they would be with a single file.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#710](https://github.com/rabbitmq/rabbitmq-management/pull/710)
+
+#### Enhancements
+
+ * The plugin now disables [client inactivity timeout](https://www.rabbitmq.com/management.html#advanced-options) for the definition import endpoints and reports
+ progress using periodic [`102 Processing` responses](https://httpstatuses.com/102) so that the connection is kept alive even if importing
+ definition takes a long time.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#711](https://github.com/rabbitmq/rabbitmq-management/pull/711)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * `3.7.15` introduced a regression where Shovels would not try to reconnect after a network
+ failure.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#60](https://github.com/rabbitmq/rabbitmq-shovel/issues/60)
+
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+ * Default maximum connection limit set by a dependency (1024) has been lifted.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#55](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/55)
+
+ * Client ID wasn't propagated to connection metadata for MQTT connections over WebSockets.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#57](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/57)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+ * Default maximum connection limit set by a dependency (1024) has been lifted.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#113](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/113)
+
+
+### Trust Store Plugin
+
+#### Enhancements
+
+ * It is now possiible to configure HTTPS proxy settings for the HTTPS backend.
+
+ GitHub issue: [rabbitmq/rabbitmq-trust-store#69](https://github.com/rabbitmq/rabbitmq-trust-store/issues/69)
+
+
+### Debian Package
+
+#### Bug Fixes
+
+ * Exit code 69 is now considered a success again in the systemd service file.
+
+ GitHub issues: [rabbitmq/rabbitmq-server-release#104](https://github.com/rabbitmq/rabbitmq-server-release/pull/104), [rabbitmq/rabbitmq-server-release#51](https://github.com/rabbitmq/rabbitmq-server-release/issues/51)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.16.tar.xz`.
diff --git a/release-notes/3.7.17.md b/release-notes/3.7.17.md
new file mode 100644
index 0000000000..f0b0e0947f
--- /dev/null
+++ b/release-notes/3.7.17.md
@@ -0,0 +1,122 @@
+## RabbitMQ 3.7.17
+
+RabbitMQ `3.7.17` is a maintenance release. It focuses on bug fixes and upgrades
+a JavaScript dependency in the management UI to patch three CVEs in that library.
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Enhancements
+
+ * `amqqueue` module and the feature flag subsystem were backported from 3.8. This makes it possible
+ for plugin developers to target both `3.7.x` and `3.8.x` release series.
+
+ Note that this only backports the API. There are no feature flags to enable in `3.7.17`.
+ No 3.8-specific features that must be enabled via feature flags were backported and there are no
+ plans to do it in later `3.7.x` releases.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2028](https://github.com/rabbitmq/rabbitmq-server/issues/2028)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl stop` description had a typo.
+
+ Contributed by Eugene Pirogov.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#363](https://github.com/rabbitmq/rabbitmq-cli/pull/363)
+
+#### Enhancements
+
+ * Commands that take passwords as arguments now accept them via standard input.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#365](https://github.com/rabbitmq/rabbitmq-cli/issues/365)
+
+ * `rabbitmq-diagnostics observer` no longer requires RabbitMQ application to be running on
+ the target node.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#368](https://github.com/rabbitmq/rabbitmq-cli/pull/368)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * jQuery has been upgraded to `3.4.x`. This series addresses a number of known CVEs in the library: [CVE-2015-9251](https://nvd.nist.gov/vuln/detail/CVE-2015-9251), [CVE-2017-16012](https://nvd.nist.gov/vuln/detail/CVE-2017-16012), [CVE-2019-11358](https://nvd.nist.gov/vuln/detail/CVE-2019-11358).
+
+ GitHub issue: [rabbitmq/rabbitmq-management#714](https://github.com/rabbitmq/rabbitmq-management/issues/714)
+
+ * Blank effective policy definitions were formatted as a JSON array instead of an empty object in API responses.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#701](https://github.com/rabbitmq/rabbitmq-management/issues/701)
+
+#### Usability
+
+ * Definition import endpoint no longer reports progress via `102 Processing` responses. They proved to be problematic
+ for some HTTP clients, including `rabbitmqadmin`.
+
+ GitHub issues: [rabbitmq/rabbitmq-management#715](https://github.com/rabbitmq/rabbitmq-management/issues/715), [rabbitmq/rabbitmq-management#718](https://github.com/rabbitmq/rabbitmq-management/pull/718)
+
+ * Leading and trailing white space characters are now highlighted in queue and exchange names to make them easier to spot.
+ Tab characters are highlighted as well, even in the middle of the word. The idea is that those characters are typically used by mistake and should be easier to notice.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#721](https://github.com/rabbitmq/rabbitmq-management/pull/721)
+
+ * It wasn't possible to delete a binding declared with `routing_key` set to `null` (only possible via the HTTP API).
+ Now such bindings can be deleted but this practice is highly discouraged. Future HTTP API versions might refuse to accept
+ `null` values as they are impossible to declare via AMQP 0-9-1.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#723](https://github.com/rabbitmq/rabbitmq-management/pull/723)
+
+
+### Shovel Management Plugin
+
+#### Bug Fixes
+
+ * Shovel restart link conflicted with that in the Federation management plugin. When both were enabled, only one
+ was actually functional.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel-management#35](https://github.com/rabbitmq/rabbitmq-shovel-management/issues/35)
+
+ * Shovel URI was misformatted for a period of time after UI refresh happened and before the Shovel was fully initialised and running.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel-management#37](https://github.com/rabbitmq/rabbitmq-shovel-management/issues/37)
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.17.tar.xz`.
diff --git a/release-notes/3.7.18.md b/release-notes/3.7.18.md
new file mode 100644
index 0000000000..5060f9b8ea
--- /dev/null
+++ b/release-notes/3.7.18.md
@@ -0,0 +1,163 @@
+## RabbitMQ 3.7.18
+
+RabbitMQ `3.7.18` is a maintenance release that includes a fix to [CVE-2019-11281](https://pivotal.io/security/cve-2019-11281).
+Kudos to [Markus @RareData Alvila](https://twitter.com/RareData) for responsibly disclosing the vulnerability.
+
+The release also contains bug fixes and internal
+API changes that refine the common plugin API with the [upcoming `3.8.0` version](https://github.com/rabbitmq/rabbitmq-server/releases/).
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+This release introduces credential obfuscation for Shovel connections and Federation links. This requires
+one more application (library) from Erlang/OTP, `tools`. Operators must make sure that the Erlang runtime
+provides it. On Debian-based systems, the package [`erlang-tools`](https://packages.ubuntu.com/bionic/erlang-tools) must be installed.
+
+This release contains a **breaking change to the plugin API** around queue state access introduced in `3.7.17`.
+Plugins that do not use that API revision are not affected. All plugins that ship with RabbitMQ have been updated
+as necessary.
+
+This revision was necessary to maintain a single API with the upcoming `3.8.0` release.
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Enhancements
+
+ * New style config file parser is now more forgiving, handles trailing whitespace and empty lines
+ better.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2073](https://github.com/rabbitmq/rabbitmq-server/pull/2073)
+
+ * `gen_server2` now includes two new functions, `stop/1` and `stop/3`, which `gen_server` in OTP
+ introduced a couple of releases ago.
+
+ Contributed by @codeadict.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#335](https://github.com/rabbitmq/rabbitmq-common/pull/335)
+
+#### Bug Fixes
+
+ * Log rotation is functional again on Windows.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2059](https://github.com/rabbitmq/rabbitmq-server/issues/2059)
+
+ * White space characters in `RABBITMQ_BASE` and other [configurable paths](https://www.rabbitmq.com/configure.html#customise-environment) are now handled better on Windows.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2025](https://github.com/rabbitmq/rabbitmq-server/issues/2025)
+
+ * Eliminate a "deprecated Ranch options" log warning.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2069](https://github.com/rabbitmq/rabbitmq-server/issues/2069)
+
+
+### Management Plugin
+
+#### Enhancements
+
+ * Two more TLS listener options are now available via new style configuration file:
+ `management.ssl.verify` and `management.ssl.fail_if_no_peer_cert`.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#735](https://github.com/rabbitmq/rabbitmq-management/issues/735)
+
+#### Bug Fixes
+
+ * HTTP API documentation correction.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#737](https://github.com/rabbitmq/rabbitmq-management/issues/737)
+
+
+### AMQP 1.0 Plugin
+
+#### Bug Fixes
+
+ * Connections that fail due to insufficient client permissions (authorisation failures) are now handled
+ gracefully with reasonable log messages.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0#92](https://github.com/rabbitmq/rabbitmq-amqp1.0/pull/92)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
+ encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
+ at the cost of making troubleshooting authentication failures harder.
+
+ GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Sensitive values in Federation link state (namely, the connection credentials) are now stored in
+ encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
+ at the cost of making troubleshooting authentication failures harder.
+
+ GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
+
+
+### RabbitMQ Erlang Client
+
+#### Bug Fixes
+
+ * Sensitive values in connection state (namely, the connection credentials) are now stored in
+ encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
+ at the cost of making troubleshooting authentication failures harder.
+
+ GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
+
+
+### Web STOMP Examples Plugin
+
+#### Bug Fixes
+
+ * jQuery was upgraded to `3.4.x`.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp-examples#18](https://github.com/rabbitmq/rabbitmq-web-stomp-examples/issues/18)
+
+
+### Web MQTT Examples Plugin
+
+#### Bug Fixes
+
+ * jQuery was upgraded to `3.4.x`.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt-examples#2](https://github.com/rabbitmq/rabbitmq-web-mqtt-examples/issues/2)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.18.tar.xz`.
diff --git a/release-notes/3.7.19.md b/release-notes/3.7.19.md
new file mode 100644
index 0000000000..6f26fec960
--- /dev/null
+++ b/release-notes/3.7.19.md
@@ -0,0 +1,114 @@
+## RabbitMQ 3.7.19
+
+RabbitMQ `3.7.19` is a maintenance release that focuses on bug fixes.
+RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * `rabbit_diagnostics:binary_refs/1`, a predecessor to Recon used for binary heap inspection,
+ could fail with an exception due to a race condition.
+
+ Contributed by John Eckersberg (@jeckersb).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2117](https://github.com/rabbitmq/rabbitmq-server/pull/2117)
+
+ * It was not possible to set `ERL_MAX_PORTS` in `rabbitmq-env-conf.bat`.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2084](https://github.com/rabbitmq/rabbitmq-server/issues/2084)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Import of large definition files submitted via management UI form could fail.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#739](https://github.com/rabbitmq/rabbitmq-management/issues/739)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmq-diagnostics node_health_check` would pass even when some cluster nodes had
+ network partitions in effect.
+
+ Contributed by Lajos Gerecs (@luos).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2127](https://github.com/rabbitmq/rabbitmq-server/pull/2127)
+
+ * `rabbitmqctl set_parameter` output could be misleading.
+
+ Contributed by @Whitespirit0.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#376](https://github.com/rabbitmq/rabbitmq-cli/issues/376)
+
+
+### STOMP Plugin
+
+#### Bug Fixes
+
+ * Cleanup of a subscription after a server-initiated [consumer cancelation](https://www.rabbitmq.com/consumer-cancel.html)
+ failed with an exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-stomp#136](https://github.com/rabbitmq/rabbitmq-stomp/issues/136)
+
+
+### Event Exchange Plugin
+
+#### Bug Fixes
+
+ * Events could fail to be emitted in multi-node clusters.
+
+ GitHub issue: [rabbitmq/rabbitmq-event-exchange#41](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/41)
+
+
+### Management Exchange Plugin
+
+#### Bug Fixes
+
+ * The plugin was not updated to correctly fetch a list of TCP and TLS listeners used
+ by the management plugin.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-exchange#8](https://github.com/rabbitmq/rabbitmq-management-exchange/issues/8)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.19.tar.xz`.
diff --git a/release-notes/3.7.2.md b/release-notes/3.7.2.md
new file mode 100644
index 0000000000..ea0fb98b30
--- /dev/null
+++ b/release-notes/3.7.2.md
@@ -0,0 +1,30 @@
+## RabbitMQ 3.7.2
+
+RabbitMQ `3.7.2` fixes an issue in the HTTP auth backend plugin that was introduced in `3.7.1`.
+It has no other functional changes compared to `3.7.1`.
+
+### Upgrades and Compatibility
+
+This release has no known incompatibilities with earlier 3.7.x versions.
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades.
+
+See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Auth Backend HTTP Plugin
+
+#### Bug Fixes
+
+ * Plugin threw an exception while performing HTTP requests.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-http#62](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/62)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.2.tar.gz`.
diff --git a/release-notes/3.7.20.md b/release-notes/3.7.20.md
new file mode 100644
index 0000000000..c3f9aa5325
--- /dev/null
+++ b/release-notes/3.7.20.md
@@ -0,0 +1,163 @@
+## RabbitMQ 3.7.20
+
+RabbitMQ `3.7.20` is a maintenance release that focuses on bug fixes.
+RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
+ of a rolling upgrade-then-restart for each node individually.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2132](https://github.com/rabbitmq/rabbitmq-server/issues/2132)
+
+ * Improved error handling in a module that continuously registers the node with [epmd](https://www.rabbitmq.com/clustering.html) avoids
+ log noise.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2130](https://github.com/rabbitmq/rabbitmq-server/issues/2130)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl await_startup` failed with an exception when effective timeout was set to `infinity`.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2144](https://github.com/rabbitmq/rabbitmq-server/pull/2144)
+
+ * `rabbitmq-diagnostics check_port_connectivity` produced a false positive in an IPv6-only environment.
+
+ Contributed by Gabriele Santomaggio.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#385](https://github.com/rabbitmq/rabbitmq-cli/pull/385)
+
+ * `rabbitmq-diagnostics status`, `rabbitmq-diagnostics cluster_status`, `rabbitmq-diagnostics listeners` now support
+ `--formatter=erlang` (raw Erlang data structure output)
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#383](https://github.com/rabbitmq/rabbitmq-cli/issues/383)
+
+
+### Kubernetes Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * Requests to Kubernetes API endpoints failed with an `nxdomain` (domain name resolution failure)
+ in an IPv6-only environment. Now the plugin will configure its HTTP[S] client to use IPv6 if
+ the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html) tells it to.
+ See [Using IPv6 for Inter-node Communication (and CLI Tools)](https://www.rabbitmq.com/networking.html#distribution-ipv6) to learn more.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#55](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/55)
+
+### AWS Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * The plugin will now configure its HTTP[S] client to use IPv6 if
+ the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html) tells it to.
+ See [Using IPv6 for Inter-node Communication (and CLI Tools)](https://www.rabbitmq.com/networking.html#distribution-ipv6) to learn more.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#32](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/pull/32)
+
+
+### Consul Peer Discovery Plugin
+
+#### Enhancements
+
+ * It is now possible to specify service metadata values:
+
+ ``` ini
+ cluster_formation.consul.svc_meta.key1 = value1
+ cluster_formation.consul.svc_meta.key2 = value2
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#34](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/34)
+
+#### Bug Fixes
+
+ * The plugin will now configure its HTTP[S] client to use IPv6 if
+ the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html) tells it to.
+ See [Using IPv6 for Inter-node Communication (and CLI Tools)](https://www.rabbitmq.com/networking.html#distribution-ipv6) to learn more.
+
+ GitHub issue: [rabbitmq-peer-discovery-consul#36](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/pull/36)
+
+
+
+### etcd Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * The plugin will now configure its HTTP[S] client to use IPv6 if
+ the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html) tells it to.
+ See [Using IPv6 for Inter-node Communication (and CLI Tools)](https://www.rabbitmq.com/networking.html#distribution-ipv6) to learn more.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#19](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/pull/19)
+
+
+
+### Erlang Client
+
+#### Bug Fixes
+
+ * Connection could not be restarted after a heartbeat timeout due to strict pattern matching.
+
+ Contributed by Giuseppe D'Anna (@larrywax).
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#126](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/126)
+
+
+### LDAP Plugin
+
+#### Enhancements
+
+ * The plugin will no log a warning when DN lookup settings are incomplete.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#114](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/114)
+
+
+### Tracing Plugin
+
+#### Bug Fixes
+
+ * On Windows, deleting the file used by an active (running) trace resulted in an `EACCES` exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-tracing#31](https://github.com/rabbitmq/rabbitmq-tracing/issues/31)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.20.tar.xz`.
diff --git a/release-notes/3.7.21.md b/release-notes/3.7.21.md
new file mode 100644
index 0000000000..e41b516f6f
--- /dev/null
+++ b/release-notes/3.7.21.md
@@ -0,0 +1,98 @@
+## RabbitMQ 3.7.21
+
+RabbitMQ `3.7.21` is a maintenance release that includes a patch for [CVE-2019-11287](https://pivotal.io/security/cve-2019-11287).
+RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Avoid pattern expansion when logging connection closure reason.
+
+ This addresses [CVE-2019-11287](https://pivotal.io/security/cve-2019-11287).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2155](https://github.com/rabbitmq/rabbitmq-server/pull/2155)
+
+
+### LDAP Plugin
+
+#### Enhancements
+
+ * Errors were not propagated back to the client correctly in case of an LDAP server authentication failure.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#116](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/116)
+
+
+### STOMP Plugin
+
+#### Bug Fixes
+
+ * `stomp.hide_server` is now available in the new style configuration format.
+
+ GitHub issue: [rabbitmq/rabbitmq-stomp#140](https://github.com/rabbitmq/rabbitmq-stomp/issues/140)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+ * The plugin emitted a warning on start.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#115](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/115)
+
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+ * The plugin emitted a warning on start.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#59](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/59)
+
+
+### Event Exchange Plugin
+
+#### Bug Fixes
+
+ * `event_exchange.vhost` is now available in the new style configuration format.
+
+ GitHub issue: [rabbitmq/rabbitmq-event-exchange#43](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/43)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.21.tar.xz`.
diff --git a/release-notes/3.7.22.md b/release-notes/3.7.22.md
new file mode 100644
index 0000000000..9c319a7920
--- /dev/null
+++ b/release-notes/3.7.22.md
@@ -0,0 +1,100 @@
+## RabbitMQ 3.7.22
+
+RabbitMQ `3.7.22` is a maintenance release that focuses on bug fixes.
+RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * One-off Erlang VM starts used by startup scripts now do as little work as possible
+ in order to avoid starting subcomponents, loading configuration and so on.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#340](https://github.com/rabbitmq/rabbitmq-common/pull/340)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl await_startup` failed with an exception when RabbitMQ application was stopped but the
+ runtime (Erlang VM) was running.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2158](https://github.com/rabbitmq/rabbitmq-server/issues/2158)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Definition import via HTTP API could fail in if performed via HTTP API (but not management UI)
+ and contained operator policies.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#751](https://github.com/rabbitmq/rabbitmq-management/issues/751)
+
+ * When a node cannot compute the number of file descriptors it uses, it will be more resilient and will
+ log warnings (e.g. about missing `handle.exe` in `PATH` on Windows) much more proactively.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-agent#86](https://github.com/rabbitmq/rabbitmq-management-agent/issues/86)
+
+#### Enhancements
+
+ * Metric aggregation optimizations.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-agent#84](https://github.com/rabbitmq/rabbitmq-management-agent/pull/84)
+
+
+### MQTT Plugin
+
+#### Enhancements
+
+ * Throughput improvements and reduced CPU usage but slightly higher per connection RAM footprint.
+
+ Contributed by Grigory Starinkin (Erlang Solutions).
+
+ GitHub issues: [rabbitmq/rabbitmq-mqtt#216](https://github.com/rabbitmq/rabbitmq-mqtt/pull/216), [rabbitmq/rabbitmq-mqtt#217](https://github.com/rabbitmq/rabbitmq-mqtt/pull/217)
+
+#### Bug Fixes
+
+ * Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#214](https://github.com/rabbitmq/rabbitmq-mqtt/issues/214)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.22.tar.xz`.
diff --git a/release-notes/3.7.23.md b/release-notes/3.7.23.md
new file mode 100644
index 0000000000..15b5d29a4d
--- /dev/null
+++ b/release-notes/3.7.23.md
@@ -0,0 +1,78 @@
+## RabbitMQ 3.7.23
+
+RabbitMQ `3.7.23` is a maintenance release.
+RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### MQTT Plugin
+
+#### Enhancements
+
+ * Throughput improvements ranging from 14 to 60 percent depending on workload.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
+
+
+### AMQP 1.0 Plugin
+
+#### Enhancements
+
+ * Throughput improvements.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
+
+
+### STOMP Plugin
+
+#### Enhancements
+
+ * Throughput improvements.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
+
+
+### Web STOMP Plugin
+
+#### Enhancements
+
+ * Clients now can authenticate using an x.509 (TLS) certificate.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#116](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/116)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.23.tar.xz`.
diff --git a/release-notes/3.7.24.md b/release-notes/3.7.24.md
new file mode 100644
index 0000000000..458fee94f0
--- /dev/null
+++ b/release-notes/3.7.24.md
@@ -0,0 +1,114 @@
+## RabbitMQ 3.7.24
+
+RabbitMQ `3.7.24` is a maintenance release.
+RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
+
+### Erlang/OTP Compatibility Notes
+
+Per the new Erlang version support policy in effect starting with January 2019,
+this release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
+
+ Contributed by @tomyouyou.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2209](https://github.com/rabbitmq/rabbitmq-server/pull/2209)
+
+ * Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
+ with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
+ unneccesary on Erlang 22.
+
+ Contributed by Aleksander Nycz.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#343](https://github.com/rabbitmq/rabbitmq-common/pull/343)
+
+ * The node now can recover even if virtual host recovery terms file was corrupted.
+
+ Contributed by @tomyouyou.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2195](https://github.com/rabbitmq/rabbitmq-server/pull/2195)
+
+ * Better error reporting in an edge case with classic queue leader replica election.
+
+ Contributed by Ayanda Dube.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#355](https://github.com/rabbitmq/rabbitmq-common/pull/355)
+
+ * Fixed an incorrect return value in the internal queue data store module.
+
+ Contributed by Sergey Loguntsov.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2221](https://github.com/rabbitmq/rabbitmq-server/pull/2221)
+
+ * Syslog client is now started even when Syslog logging is configured only for some log sinks.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2044](https://github.com/rabbitmq/rabbitmq-server/issues/2044)
+
+#### Enhancements
+
+ * RabbitMQ nodes will now gracefully shutdown when receiving a `SIGTERM` or `SIGQUIT` signals.
+ Previously the runtime would invoke a default handler that terminates the VM giving
+ RabbitMQ no chance to execute its shutdown steps.
+
+ In addition, `SIGUSER1` and `SIGUSR2` signals are ignored.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2222](https://github.com/rabbitmq/rabbitmq-server/issues/2222)
+
+ * Some proxy protocol errors are now logged at debug level. This reduces log noise in environments
+ where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending
+ any data.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2204](https://github.com/rabbitmq/rabbitmq-server/pull/2204)
+
+
+### Management and Management Agent Plugins
+
+### Enhancements
+
+ * A new `POST /login` endpoint can be used by custom management UI login forms to authenticate the user
+ and set the cookie.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#764](https://github.com/rabbitmq/rabbitmq-management/issues/764)
+
+ * Warning about a missing `handle.exe` in `PATH` on Windows is now only logged every few minutes.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-agent#90](https://github.com/rabbitmq/rabbitmq-management-agent/issues/90)
+
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.24.tar.xz`.
diff --git a/release-notes/3.7.25.md b/release-notes/3.7.25.md
new file mode 100644
index 0000000000..ef5d6ab3c7
--- /dev/null
+++ b/release-notes/3.7.25.md
@@ -0,0 +1,115 @@
+## RabbitMQ 3.7.25
+
+RabbitMQ `3.7.25` is a maintenance release. It focuses on bug fixes and usability
+improvements.
+
+This is **the last generally supported `3.7.x` release**.
+RabbitMQ `3.7.x` series are now covered by the [limited extended support](https://www.rabbitmq.com/versions.html) policy.
+
+Please consider [upgrading](https://www.rabbitmq.com/upgrade.html) to [RabbitMQ `3.8.x`](https://www.rabbitmq.com/changelog.html).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Previously recent `3.7.x` nodes could start on Erlang 20.3 and to some extent tested on it despite
+the Erlang `21.3+` requirements in release notes and documentation.
+
+Starting with this release, `21.3+` is a **hard requirement** enforced in the code
+to [ensure forward compatibility with Erlang 23](https://github.com/rabbitmq/rabbitmq-server/pull/2269).
+
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Enhancements
+
+ * Erlang `20.3` and earlier version support has been completely removed after months of being documented as unsupported.
+ This release, however, gains Erlang `23.0` forward compatibility.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2269](https://github.com/rabbitmq/rabbitmq-server/pull/2269)
+
+
+### Management Plugin
+
+#### Enhancements
+
+ * More frequent garbage collection by stats DB cache processes in environments where HTTP API queries produced
+ large data sets.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#788](https://github.com/rabbitmq/rabbitmq-management/pull/788)
+
+ * `rabbitmqadmin` binding deletion now defaults to the same property key value as binding creation.
+
+ Contributed by Ivan Kaloyanov.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#779](https://github.com/rabbitmq/rabbitmq-management/pull/779)
+
+#### Bug Fixes
+
+ * `rabbitmqadmin import` mangled non-ASCII characters.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#785](https://github.com/rabbitmq/rabbitmq-management/issues/785)
+
+
+### Federation Plugin
+
+#### Enhancements
+
+ * Internal resources cleanup is now more selective on abnormal link termination. A new upstream parameter, `resource-cleanup-mode`,
+ can be set to `"never"` used to prevent internal queues from being deleted by exchange federation links on termination.
+ Use this when data safety is more important than protection from resource leaks. It then will be up to the operator to make
+ sure such resources are periodically deleted or use a suitable [TTL](https://www.rabbitmq.com/ttl.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#105](https://github.com/rabbitmq/rabbitmq-federation/issues/105)
+
+
+### Shovel Management Plugin
+
+#### Bug Fixes
+
+ * Shovels are now correctly removed even when deletion commands are executed against a different node
+ (not the one on which the target Shovel has been created).
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#68](https://github.com/rabbitmq/rabbitmq-shovel/issues/68)
+
+
+### Trust Store Plugin
+
+#### Enhancements
+
+ * HTTPS certificate provider will no longer terminate if upstream service response contains
+ invalid JSON.
+
+ GitHub issue: [rabbitmq/rabbitmq-trust-store#73](https://github.com/rabbitmq/rabbitmq-trust-store/issues/73)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.25.tar.xz`.
diff --git a/release-notes/3.7.26.md b/release-notes/3.7.26.md
new file mode 100644
index 0000000000..743706a146
--- /dev/null
+++ b/release-notes/3.7.26.md
@@ -0,0 +1,79 @@
+## RabbitMQ 3.7.26
+
+RabbitMQ `3.7.26` is a maintenance release. It focuses on bug fixes and usability
+improvements.
+
+RabbitMQ `3.7.x` series are out of general support and covered by the [limited extended support](https://www.rabbitmq.com/versions.html) policy.
+
+Please consider [upgrading](https://www.rabbitmq.com/upgrade.html) to [RabbitMQ `3.8.x`](https://www.rabbitmq.com/changelog.html).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Previously recent `3.7.x` nodes could start on Erlang 20.3 and to some extent tested on it despite
+the Erlang `21.3+` requirements in release notes and documentation.
+
+Starting with this release, `21.3+` is a **hard requirement** enforced in the code
+to [ensure forward compatibility with Erlang 23](https://github.com/rabbitmq/rabbitmq-server/pull/2269).
+
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Federation Plugin
+
+#### Enhancements
+
+ * "Command" operations such as binding propagation now use a separate channel for all links, preventing latency
+ spikes for asynchronous operations (such as message publishing) (a head-of-line blocking problem).
+
+ Contributed by Grigory Starinkin.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#97](https://github.com/rabbitmq/rabbitmq-federation/pull/97)
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * `rabbitmqadmin` failed with an exception on Python 3 when `-f pretty_json` flag was used.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#794](https://github.com/rabbitmq/rabbitmq-management/issues/794)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * AMQP 1.0 client used by Shovel now correctly encodes Erlang atoms.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#45](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/45)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.26.tar.xz`.
diff --git a/release-notes/3.7.27.md b/release-notes/3.7.27.md
new file mode 100644
index 0000000000..a69634efd9
--- /dev/null
+++ b/release-notes/3.7.27.md
@@ -0,0 +1,83 @@
+## RabbitMQ 3.7.27
+
+RabbitMQ `3.7.27` is a maintenance release. It contains a couple of backports
+from the `3.8.x` branch.
+
+RabbitMQ `3.7.x` series are out of general support and covered by the [limited extended support policy](https://www.rabbitmq.com/versions.html) only.
+
+Please consider [upgrading](https://www.rabbitmq.com/upgrade.html) to [RabbitMQ `3.8.x`](https://www.rabbitmq.com/changelog.html).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Erlang `21.3+` is now a **hard requirement** checked on node startup.
+
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Enhancements
+
+ * More peer discovery errors are retried.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1627](https://github.com/rabbitmq/rabbitmq-server/issues/1627)
+
+ * Initial Erlang/OTP 24 compatibility.
+
+ Erlang/OTP 24 is expected to ship in mid-2021. While RabbitMQ 3.7 will be [out of support](https://www.rabbitmq.com/versions.html) by then,
+ some initial compatibility work was backported to this branch due to contious integration on Erlang/OTP master.
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * One-off connections periodically used by exchange federation links now handle timeouts in certain
+ operations gracefully. This avoids unnecessary link disruption and restarts in certain environments.
+ The default interval has also been bumped from 30s to 90s.
+
+ In environments with stable topologies the interval can be significantly increased to decrease connection
+ churn, simplify monitoring and in general conserve some resources:
+
+ ``` erlang
+ %% advanced.config
+ [
+ {rabbitmq_federation, [
+ %% 86400 seconds or 24 hours
+ {internal_exchange_check_interval, 86400000}
+ ]}
+ ].
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#107](https://github.com/rabbitmq/rabbitmq-federation/pull/107)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.27.tar.xz`.
diff --git a/release-notes/3.7.28.md b/release-notes/3.7.28.md
new file mode 100644
index 0000000000..0156fa2dee
--- /dev/null
+++ b/release-notes/3.7.28.md
@@ -0,0 +1,64 @@
+## RabbitMQ 3.7.28
+
+RabbitMQ `3.7.28` is a security patch release.
+
+
+RabbitMQ `3.7.x` series are out of general support and covered by the [limited extended support policy](https://www.rabbitmq.com/versions.html)
+through October 1st, 2020.
+Please consider [upgrading](https://www.rabbitmq.com/upgrade.html) to [RabbitMQ `3.8.x`](https://www.rabbitmq.com/changelog.html).
+
+RabbitMQ Core team would like to thank Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center
+for researching and responsibly disclosing the vulnerability addressed in this release.
+
+### Erlang/OTP Compatibility Notes
+
+This release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
+Erlang `21.3+` is now a **hard requirement** checked on node startup.
+
+Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Addressed a Windows-specific binary planting security vulnerability [CVE-2020-5419](https://tanzu.vmware.com/security/cve-2020-5419) that allowed for arbitrary code execution.
+ The vulnerability requires the attacker to have local access and elevated privileges,
+ and cannot be executed remotely.
+
+ [CVSS score](https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H): `6.7` (medium severity).
+
+ This vulnerability was researched and [responsibly disclosed](https://www.rabbitmq.com/contact.html#security) by
+ Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center.
+
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.7.28.tar.xz`.
diff --git a/release-notes/3.7.3.md b/release-notes/3.7.3.md
new file mode 100644
index 0000000000..46f276ecc6
--- /dev/null
+++ b/release-notes/3.7.3.md
@@ -0,0 +1,110 @@
+## RabbitMQ 3.7.3
+
+RabbitMQ `3.7.3` is a patch release with some bug fixes and enhancements.
+
+### Upgrades and Compatibility
+
+This release has no known incompatibilities with earlier 3.7.x versions.
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades.
+
+See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Logging to `amq.rabbitmq.log` exchange is available again as a logging mechanism. Note that
+ the user must opt-in by setting `log.exchange = true` in the [config file](http://rabbitmq.com/configure.html).
+
+ GitHub issue: [rabbitmq-server#1456](https://github.com/rabbitmq/rabbitmq-server/issues/1456)
+
+ * During node boot, the logger will temporarily accept a much higher maximum rate so that no messages are dropped.
+
+ GitHub issue: [rabbitmq-server#1471](https://github.com/rabbitmq/rabbitmq-server/issues/1471)
+
+ * Plugin activation could hang if a plugin's channel interceptor failed to activate with an exception.
+
+ GitHub issue: [rabbitmq-server#1477](https://github.com/rabbitmq/rabbitmq-server/pull/1477)
+
+ * During node boot, virtual host that are not yet initialised could be queried for status, which
+ resulted in log noise.
+
+ GitHub issue: [rabbitmq-server#1472](https://github.com/rabbitmq/rabbitmq-server/pull/1482)
+
+#### Enhancements
+
+ * [Internal authN backend](https://www.rabbitmq.com/access-control.html) will now prohibit logins with blank passwords. Such attempts
+ are usually made by mistake because a passwordless user that was meant to authenticate
+ using [x509 (TLS) certificates](https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl/) was not configured to use the correct [authentication
+ mechanism](https://www.rabbitmq.com/authentication.html).
+
+ Note that the same behavior can already be achieved using a [credential validator](https://www.rabbitmq.com/passwords.html), so this is
+ just an extra safety measure.
+
+ GitHub issue: [rabbitmq-server#1465](https://github.com/rabbitmq/rabbitmq-server/pull/1465)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Definition import now stores global parameters in a way that the MQTT plugin expects.
+
+ GitHub issue: [rabbitmq-management#528](https://github.com/rabbitmq/rabbitmq-management/issues/528)
+
+ * User update form now successfully updates tags for passwordless users (or if the password is cleared at the same time).
+
+ GitHub issue: [rabbitmq-management#533](https://github.com/rabbitmq/rabbitmq-management/issues/533)
+
+#### Enhancements
+
+ * Requeue is now the default option in the Get Messages section.
+
+ Contributed by @dparkinson.
+
+ GitHub issue: [rabbitmq-management#542](https://github.com/rabbitmq/rabbitmq-management/pull/542)
+
+ * For [passwordless users](https://www.rabbitmq.com/passwords.html), the "no password" option on the user editing form is now preselected.
+
+ GitHub issue: [rabbitmq-management#537](https://github.com/rabbitmq/rabbitmq-management/issues/537)
+
+
+### LDAP AuthN/AuthZ Backend Plugin
+
+#### Bug Fixes
+
+ * More config keys are now supported via [new style config format](https://www.rabbitmq.com/configure.html).
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#78](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/78)
+
+
+### Peer Discovery Consul Plugin
+
+ * When a node registers with Consul it will now set its initial health check status to `passing`.
+ Previously the node would be in the `critical` state until it first reported its health for the
+ first time (in 15 seconds with default settings), which could prevent its peers from discovering it.
+
+ Kudos to @andersenleo for investigating this issue and recommending a solution.
+
+ GitHub issue: [rabbitmq-peer-discovery-consul#8](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/8)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * CLI tools honor `RABBITMQ_CTL_ERL_ARGS` again.
+
+ GitHub issue: [rabbitmq-server#1461](https://github.com/rabbitmq/rabbitmq-server/issues/1461)
+
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.3.tar.gz`.
diff --git a/release-notes/3.7.4.md b/release-notes/3.7.4.md
new file mode 100644
index 0000000000..82499b0493
--- /dev/null
+++ b/release-notes/3.7.4.md
@@ -0,0 +1,117 @@
+## RabbitMQ 3.7.4
+
+RabbitMQ `3.7.4` is a patch release that primarily includes bug fixes.
+
+### Upgrades and Compatibility
+
+This release has no known incompatibilities with earlier 3.7.x versions.
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades.
+
+See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Priority queues could terminate when the node was under memory pressure and needed to
+ offload messages to disk.
+
+ GitHub issue: [rabbitmq-server#1535](https://github.com/rabbitmq/rabbitmq-server/issues/1535)
+
+ * queue leader locator strategy of `min-masters` was affected by queue binding count and could
+ select the wrong node.
+
+ GitHub issue: [rabbitmq-server#1519](https://github.com/rabbitmq/rabbitmq-server/issues/1519)
+
+ * It was not possible to set [randomized startup delay](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition) range via new style config file.
+
+ GitHub issue: [rabbitmq-server#1531](https://github.com/rabbitmq/rabbitmq-server/issues/1531)
+
+ * Windows scripts used `USE_LONGNAME` from the env file incorrectly.
+
+ GitHub issue: [rabbitmq-server#1508](https://github.com/rabbitmq/rabbitmq-server/issues/1508)
+
+ * systemd notification implementation was prone to shell escaping issues.
+
+ GitHub issue: [rabbitmq-server#1187](https://github.com/rabbitmq/rabbitmq-server/issues/1187)
+
+ * It wasn't possible to configure `delegate_count` via new style config file.
+
+ GitHub issue: [rabbitmq-server#1497](https://github.com/rabbitmq/rabbitmq-server/issues/1497)
+
+ * It wasn't possible to configure `net_ticktime` via new style config file.
+
+ GitHub issue: [rabbitmq-server#1522](https://github.com/rabbitmq/rabbitmq-server/issues/1522)
+
+#### Enhancement
+
+ * It is now possible to configure max number of Erlang processes and atoms using
+ `RABBITMQ_MAX_NUMBER_OF_PROCESSES` (`MAX_NUMBER_OF_PROCESSES` in `rabbitmq-env.conf`) and `RABBITMQ_MAX_NUMBER_OF_ATOMS`
+ (`MAX_NUMBER_OF_ATOMS`) environment variables, respectively.
+
+ GitHub issue: [rabbitmq-server#1528](https://github.com/rabbitmq/rabbitmq-server/pull/1528)
+
+ * `SCHEDULER_BIND_TYPE` and `DISTRIBUTION_BUFFER_SIZE` now can be used in `rabbitmq-env.conf` without
+ the `RABBITMQ_` prefix.
+
+ GitHub issue: [rabbitmq-server#1528](https://github.com/rabbitmq/rabbitmq-server/pull/1528)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmq-plugins set` failed when was used in offline mode (with `--offline`)
+
+ GitHub issue: [rabbitmq-cli#241](https://github.com/rabbitmq/rabbitmq-cli/issues/241)
+
+ * `rabbitmqctl list_*` command streaming now can be restricted to a set of client TCP ports
+ used to contact RabbitMQ nodes.
+
+ GitHub issue: [rabbitmq-cli#237](https://github.com/rabbitmq/rabbitmq-cli/issues/237)
+
+
+### Management Plugin
+
+#### Bugs
+
+ * Valid definitions could be rejected as invalid during import via HTTP API.
+
+ GitHub issue: [rabbitmq-management#552](https://github.com/rabbitmq/rabbitmq-management/issues/552)
+
+ * It wasn't possible to configure `path_prefix` via new style config file.
+
+ GitHub issue: [rabbitmq-management#547](https://github.com/rabbitmq/rabbitmq-management/issues/547)
+
+
+### Federation Plugin
+
+#### Bugs
+
+ * Valid upstreams were rejected as invalid when imported from a definition file.
+
+ GitHub issue: [rabbitmq-federation#70](https://github.com/rabbitmq/rabbitmq-federation/issues/70)
+
+ * Valid upstream sets were rejected as invalid when added using CLI tools.
+
+ GitHub issue: [rabbitmq-federation#67](https://github.com/rabbitmq/rabbitmq-federation/issues/67)
+
+
+### Peer Discovery AWS Plugin
+
+#### Bugs
+
+ * The plugin skipped registration and thus [randomized startup delay](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition) injection.
+
+ GitHub issue: [rabbitmq-peer-discovery-aws#17](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/17)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.4.tar.gz`.
diff --git a/release-notes/3.7.5.md b/release-notes/3.7.5.md
new file mode 100644
index 0000000000..62539fc2a0
--- /dev/null
+++ b/release-notes/3.7.5.md
@@ -0,0 +1,201 @@
+## RabbitMQ 3.7.5
+
+RabbitMQ `3.7.5` a maintenance release that primarily includes bug fixes.
+
+### Upgrades and Compatibility
+
+This release includes one **potential incompatibility** with earlier `3.7.x` releases. It will only affect applications that use a lot (at least hundreds) of channels per connection. Previous behavior can be restored via configuration.
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades.
+
+See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Topic authorisation check could fail with an exception.
+
+ GitHub issue: [rabbitmq-server#1538](https://github.com/rabbitmq/rabbitmq-server/issues/1538)
+
+ * Some runtime parameters and operator policies were rejected during definition import.
+
+ GitHub issue: [rabbitmq-management#565](https://github.com/rabbitmq/rabbitmq-management/issues/565), [rabbitmq-federation#73](https://github.com/rabbitmq/rabbitmq-federation/issues/73)
+
+ * Queues could run into an exception under memory pressure.
+
+ GitHub issue: [rabbitmq-server#1582](https://github.com/rabbitmq/rabbitmq-server/issues/1582)
+
+ * During parallel cluster formation nodes could run into an exception when inserting seed data
+ (default virtual host, user and permissions).
+
+ GitHub issue: [rabbitmq-server#1556](https://github.com/rabbitmq/rabbitmq-server/pull/1556)
+
+#### Enhancements
+
+ * New `ha-promote-on-failure` queue mirroring setting to augment already existing `ha-promote-on-shutdown`.
+
+ GitHub issue: [rabbitmq-server#1578](https://github.com/rabbitmq/rabbitmq-server/pull/1578)
+
+ * `queue.delete` operations will now force delete queues that don't have a [promotable
+ master](https://www.rabbitmq.com/ha.html#unsynchronised-mirrors).
+
+ GitHub issue: [rabbitmq-server#1501](https://github.com/rabbitmq/rabbitmq-server/issues/1501)
+
+ * Lock contention in internal database is now much lower when a node with a lot of exclusive queues
+ shuts down or is otherwise considered to be unavailable by peers. This means fewer CPU cycles
+ spent cleaning up the exclusive queues.
+
+ GitHub issue: [rabbitmq-server#1570](https://github.com/rabbitmq/rabbitmq-server/pull/1570)
+
+ * Default [max number of channels allowed on a connection](https://www.rabbitmq.com/networking.html#tuning-for-large-number-of-connections-channel-max) (a.k.a. `channel_max`) has been lowered from `65535` to `2047`.
+ The new default is much safer and will reduce the effect application channel leaks have on node resource consumption. **This is a potentially breaking change**.
+
+ Systems where a lot (at least hundreds) of channels *per connection* are used should explicitly override `channel_max` in the [config file](https://www.rabbitmq.com/configure.html) to a higher suitable value, e.g.:
+
+ ```
+ channel_max = 4000
+ ```
+
+ GitHub issue: [rabbitmq-server#1593](https://github.com/rabbitmq/rabbitmq-server/issues/1593)
+
+ * [Ranch](https://github.com/ninenines/ranch) dependency has been updated to `1.5.x` which should prevent rare cases of mass termination of client connections.
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `-t` (`--timeout`) is now only displayed for commands that will actually use it.
+
+ GitHub issue: [rabbitmq-cli#236](https://github.com/rabbitmq/rabbitmq-cli/issues/236)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * `GET /api/overview` could fail if SNI for management plugin listener was configured.
+
+ GitHub issue: [rabbitmq-management#567](https://github.com/rabbitmq/rabbitmq-management/issues/567)
+
+ * `rabbitmqadmin` could run into an exception with certain formatting settings on Python 2.x.
+
+ GitHub issue: [rabbitmq-management#568](https://github.com/rabbitmq/rabbitmq-management/issues/568)
+
+ * HTTP API stats documentation used incorrect field names.
+
+ GitHub issue: [rabbitmq-management#561](https://github.com/rabbitmq/rabbitmq-management/pull/561)
+
+
+### LDAP Plugin
+
+#### Bug Fixes
+
+ * LDAP server-initiated connection closure was not handled gracefully by connection pool.
+ Kudos to Adam Gardner for [doing all the hard work](https://groups.google.com/forum/#!topic/rabbitmq-users/4Gva3h-yJzM) investigating this issue.
+
+ GitHub issues: [rabbitmq-auth-backend-ldap#82](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/82), [rabbitmq-auth-backend-ldap#90](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/90)
+
+ * `auth_ldap.idle_timeout` now defaults to 300 seconds instead of `infinity`.
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#81](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/81)
+
+ * `group_lookup_base` was not configurable via the new style config format.
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#85](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/85)
+
+ * `auth_ldap.log` didn't accept `network_unsafe` for severity value.
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#86](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/86)
+
+#### Enhancements
+
+ * It is now possible to configure TLS options for LDAP server connections via the [new style config format](https://www.rabbitmq.com/configure.html).
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#88](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/88)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Federation upstream sets could run into a type error with exchange federation.
+
+ GitHub issue: [rabbitmq-federation#75](https://github.com/rabbitmq/rabbitmq-federation/issues/75)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * Valid dynamic Shovel properties can be rejected by validation.
+
+ GitHub issue: [rabbitmq-shovel#38](https://github.com/rabbitmq/rabbitmq-shovel/issues/38)
+
+ * Shovel names are again included into (application-provided) connection names and can therefore
+ be seen in the management UI.
+
+ GitHub issue: [rabbitmq-shovel#40](https://github.com/rabbitmq/rabbitmq-shovel/issues/40)
+
+
+### Peer Discovery AWS Plugin
+
+#### Bug Fixes
+
+ * China-based AWS regions now use a correct base API URI.
+
+ GitHub issue: [rabbitmq-peer-discovery-aws#23](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/23)
+
+ * The plugin could fail to discover all nodes in a returned instance set.
+
+ GitHub issue: [rabbitmq-peer-discovery-aws#20](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/20)
+
+
+### Peer Discovery Kubernetes Plugin
+
+#### Enhnacements
+
+ * The plugin now supports [randomized startup delay](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition) with much lower default values
+ since RSD is [not really necessary](https://www.rabbitmq.com/cluster-formation.html#peer-discovery-k8s) for stateful set deployments.
+
+ GitHub issue: [rabbitmq-peer-discovery-k8s#23](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/23)
+
+
+### AMQP 1.0 Client
+
+#### Bug Fixes
+
+ * It wasn't possible to send some messages using QPid JMS client over AMQP 1.0.
+
+ GitHub issue: [rabbitmq-amqp1.0#61](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/61)
+
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+ * New style config format was not interpreting IP addresses correctly.
+
+ GitHub issue: [rabbitmq-web-mqtt#26](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/26)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+ * It wasn't possible to configure TCP listener(s) in the new style config format.
+
+ GitHub issue: [rabbitmq-web-stomp#82](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/82)
+
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.5.tar.gz`.
diff --git a/release-notes/3.7.6.md b/release-notes/3.7.6.md
new file mode 100644
index 0000000000..0aaaceb4db
--- /dev/null
+++ b/release-notes/3.7.6.md
@@ -0,0 +1,122 @@
+## RabbitMQ 3.7.6
+
+RabbitMQ `3.7.6` a maintenance release that primarily includes bug fixes.
+
+### Upgrades and Compatibility
+
+This release includes one **potential incompatibility** with earlier `3.7.x` releases. Only systems
+that use a high number (hundreds) of [queue priorities](https://www.rabbitmq.com/priority.html) are affected.
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades.
+
+See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Max priority cap for queues is now enforced and set to 255. Applications that rely on a higher number of priorities **will break**.
+ Such applications must be updated to use no more than 255 priorities.
+
+ GitHub issue: [rabbitmq-server#1590](https://github.com/rabbitmq/rabbitmq-server/issues/1590)
+
+ * Bulk deletion of exclusive queues when their owning connection closes has been optimized.
+
+ GitHub issues: [rabbitmq/rabbitmq-server#1566](https://github.com/rabbitmq/rabbitmq-server/issues/1566), [rabbitmq/rabbitmq-server#1513](https://github.com/rabbitmq/rabbitmq-server/issues/1513)
+
+
+#### Enhancements
+
+ * On Erlang 20.2.3 or later, more optimal memory allocators will be used. On some workloads that leads
+ to [significant reduction in node's RAM consumption](https://groups.google.com/d/msg/rabbitmq-users/LSYaac9frYw/LNZDZUlrBAAJ). The change is workload-specific, however, on the workloads
+ tested that do introduce a negative effect (more RAM used) the difference was very small (about 1%).
+
+
+ It is possible to go back to the previous settings, `+MBas aoffcbf +MHas aoffcbf +MBlmbcs 5120 +MHlmbcs 5120 +MMmcs 10`,
+ by specifying them in the `RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS` [environment variable](https://www.rabbitmq.com/configure.html#customise-environment).
+
+ On Erlang/OTP releases older than 20.2.3 there will be no default changes.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1604](https://github.com/rabbitmq/rabbitmq-server/pull/1604)
+
+ * [Logging to Syslog](https://www.rabbitmq.com/logging.html#logging-to-syslog) without 3rd party plugins.
+
+ GitHub issue: [rabbitmq-server#1600](https://github.com/rabbitmq/rabbitmq-server/pull/1600)
+
+ * `connection.closed` events now include client-provided connection name and more client details.
+ That information is in turn available via the [rabbitmq_event_exchange](https://github.com/rabbitmq/rabbitmq-event-exchange).
+
+ GitHub issue: [rabbitmq-server#1596](https://github.com/rabbitmq/rabbitmq-server/issues/1596)
+
+
+### CLI Tools
+
+#### Enhancements
+
+ * `await_online_nodes <count> [--timeout <timeout>]` is a new command that will wait until the target
+ node's cluster has at least `<count>` nodes. The command supports a timeout. It is meant to simplify
+ cluster provisioning automation and can be used as the very first check performed after starting a node.
+
+ Note that the command requires at least one node to be running and reachable.
+
+ GitHub issue: [rabbitmq-cli#235](https://github.com/rabbitmq/rabbitmq-cli/issues/235)
+
+ * `rabbitmq-diagnostics ping [--node <target> --timeout <timeout>]` is a new minimalistic health check command.
+ It only verifies if the target node is up, registered with epmd and accepts/authenticates CLI tool connections.
+ It fills the gap between `rabbitmq-diagnostics node_health_check`, which performs a lot of checks, take a lot more time
+ and is fairly opinionated in what it does. `ping` is more suitable in environments where
+ failing aliveness checks will result in node restarts, namely Kubernetes.
+
+ GitHub issue: [rabbitmq-cli#253](https://github.com/rabbitmq/rabbitmq-cli/issues/253)
+
+
+### Management and Management Agent Plugins
+
+#### Bug Fixes
+
+ * Queue metrics could be missing after a node restart or plugin [re-]enablement.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-agent#58](https://github.com/rabbitmq/rabbitmq-management-agent/issues/58)
+
+ * `rabbitmqadmin` now correctly percent-encodes spaces in connection names.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#576](https://github.com/rabbitmq/rabbitmq-management/issues/576)
+
+ * When creating a new vhost, user permissions will only be granted to the users that exist in the
+ internal database. If an external authentication/authorisation service is used, the step is skipped.
+
+ GitHub issue: [rabbitmq-management#531](https://github.com/rabbitmq/rabbitmq-management/issues/531)
+
+ * Virtual host imported from definitions or created via HTTP API will explicitly await for the vhost to initialise
+ on all cluster nodes.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#575](https://github.com/rabbitmq/rabbitmq-management/issues/575)
+
+
+### LDAP Plugin
+
+#### Bug Fixes
+
+ * LDAP connection pool now correctly purges connections in more failure scenarios (e.g. LDAP server restart)
+
+ GitHub issue: [rabbitmq-auth-backend-ldap#92](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/92)
+
+
+### HTTP Authentication/authorisation Plugin
+
+#### Enhancements
+
+ * `201 Created` responses are now accepted from HTTP services that back the plugin.
+
+ GitHub issue: [rabbitmq-auth-backend-http#68](https://github.com/rabbitmq/rabbitmq-auth-backend-http/pull/68)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.6.tar.gz`.
diff --git a/release-notes/3.7.7.md b/release-notes/3.7.7.md
new file mode 100644
index 0000000000..e4994c4fc6
--- /dev/null
+++ b/release-notes/3.7.7.md
@@ -0,0 +1,86 @@
+## RabbitMQ 3.7.7
+
+RabbitMQ `3.7.7` a maintenance release. This release introduces
+compatibility with [Erlang/OTP 21](http://www.erlang.org/news/123).
+
+### Upgrades and Compatibility
+
+This release has no known incompatibilities with earlier `3.7.x` releases.
+
+#### Upgrading to Erlang 21.0
+
+When upgrading to this release **and upgrading Erlang to 21.0** at the same time, extra care has to be taken.
+Since CLI tools from any earlier RabbitMQ release will fail on Erlang 21, RabbitMQ **must be upgraded before Erlang**.
+
+#### Documentation Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
+compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Enhancements
+
+ * This release is compatible with [Erlang/OTP 21](http://www.erlang.org/news/123), the newest major
+ Erlang runtime release.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1616](https://github.com/rabbitmq/rabbitmq-server/issues/1616)
+
+ * Windows installer will now take default [Erlang cookie](https://www.rabbitmq.com/cli.html#erlang-cookie) location differences between Erlang versions into account.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#82](https://github.com/rabbitmq/rabbitmq-server-release/pull/82)
+
+
+### Management Plugin
+
+#### Enhancements
+
+ * It is now possible to configure Web browser session timeout. Default is still 8 hours.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#584](https://github.com/rabbitmq/rabbitmq-management/pull/584)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Direct connections downstream were not closed in some cases.
+
+ Contributed by Ricardo Gonçalves.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#76](https://github.com/rabbitmq/rabbitmq-federation/issues/76)
+
+
+### LDAP Plugin
+
+#### Bug Fixes
+
+ * It wasn't possible to set `auth_ldap.dn_lookup_bind` to the value of `anon` in the new style config format.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#94](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/94)
+
+### Consul Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * The following combination of settings was rejected by the plugin, even though they are reasonable
+ and were recommended by the docs:
+
+ ``` ini
+ cluster_formation.consul.svc_addr_auto = true
+ # en0 is just an example, it could be any other NIC name
+ cluster_formation.consul.svc_addr_nic = en0
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#12](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/12)
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.7.tar.gz`.
diff --git a/release-notes/3.7.8.md b/release-notes/3.7.8.md
new file mode 100644
index 0000000000..76270e4d86
--- /dev/null
+++ b/release-notes/3.7.8.md
@@ -0,0 +1,339 @@
+## RabbitMQ 3.7.8
+
+RabbitMQ `3.7.8` a maintenance release. It focuses on bug fixes and
+further improves [Erlang/OTP 21](http://www.erlang.org/news/123) compatibility.
+
+### Compatibility Notes
+
+This release has no known incompatibilities with earlier `3.7.x` releases.
+
+#### Upgrading to Erlang 21.0
+
+When upgrading to this release **and upgrading Erlang to 21.0** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21, RabbitMQ **must be upgraded before Erlang**.
+
+#### Documentation Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
+compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Virtual host (specifically binding) recovery has been optimized.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1650](https://github.com/rabbitmq/rabbitmq-server/pull/1650)
+
+ * A binding removal optimization was reverted because it could result in custom exchange type state not cleaned up
+ as plugin authors intended.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1691](https://github.com/rabbitmq/rabbitmq-server/pull/1691)
+
+ * A queue sync operation now can be cancelled when a resource alarm is in effect on the receiving node.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1636](https://github.com/rabbitmq/rabbitmq-server/issues/1636)
+
+ * Inter-node communication port (a.k.a. distribution port) unintentionally used an excessively large
+ buffer size (1.2 GB instead of 128 MB). Kudos to Chris Friesen for noticing and reporting this.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1659](https://github.com/rabbitmq/rabbitmq-server/issues/1659)
+
+ * More idempotent binding removal.
+
+ When transactions that removed bindings were rolled back and retried, the code
+ that performed the deletion could fail with a misleading assertion failure, `{error, not_found}`.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1689](https://github.com/rabbitmq/rabbitmq-server/pull/1689)
+
+ * A resource alarm triggered during boot could prevent node from starting.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1644](https://github.com/rabbitmq/rabbitmq-server/issues/1644)
+
+ * Environments with high queue or channel churn could run into an exception in local process group.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1699](https://github.com/rabbitmq/rabbitmq-server/issues/1699)
+
+ * Priority queues no longer fail with an exception when used together with other `rabbit_backing_queue`
+ behaviour implementations.
+
+ Contributed by Matteo Cafasso.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1669](https://github.com/rabbitmq/rabbitmq-server/pull/1669)
+
+ * Syslog configuration parameters could be rejected by config validator.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1639](https://github.com/rabbitmq/rabbitmq-server/issues/1639)
+
+ * `rabbitmq-echopid.bat` now loads `rabbitmq-env.bat` correctly.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1642](https://github.com/rabbitmq/rabbitmq-server/issues/1642)
+
+#### Enhancements
+
+ * Improved config file validation and loading. For example, `advanced.config` now can be used
+ without the main `rabbitmq.conf` config file.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1671](https://github.com/rabbitmq/rabbitmq-server/pull/1671)
+
+ * On Erlang/OTP 21 Syslog server now can be configured using a hostname (not just an IP address).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1658](https://github.com/rabbitmq/rabbitmq-server/pull/1658)
+
+ * `rabbitmqctl rename_cluster_node` documentation improvements.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1641](https://github.com/rabbitmq/rabbitmq-server/pull/1641)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * Policies were unintentionally excluded from `rabbitmqctl report` output.
+
+ Contributed by Ayanda Dube.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#256](https://github.com/rabbitmq/rabbitmq-cli/pull/256)
+
+ * Global parameters were unintentionally excluded from `rabbitmqctl report` output.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#258](https://github.com/rabbitmq/rabbitmq-cli/pull/258)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Virtual host imported from definitions or created via HTTP API will explicitly await for the vhost to initialise
+ on all cluster nodes. This change was previously scheduled for `3.7.6` but was only partially applied (didn't have any effect on HTTP API clients).
+
+ GitHub issues: [rabbitmq/rabbitmq-management#575](https://github.com/rabbitmq/rabbitmq-management/issues/575), [rabbitmq/rabbitmq-management#591](https://github.com/rabbitmq/rabbitmq-management/pull/591)
+
+ * HTTP API connection endpoints returned a duplicate key, `node`.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#601](https://github.com/rabbitmq/rabbitmq-management/issues/601)
+
+ * Response compression wasn't enabled by default for compatible clients.
+
+ * Failed login error message now clears automatically after successful login.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#609](https://github.com/rabbitmq/rabbitmq-management/issues/609)
+
+#### Enhancements
+
+ * Cowboy listener settings now can be configured using new style config file.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#596](https://github.com/rabbitmq/rabbitmq-management/issues/596)
+
+ * Cowboy timeouts now can be configured.
+
+ GitHub issues: [rabbitmq/rabbitmq-management#594](https://github.com/rabbitmq/rabbitmq-management/issues/594)
+
+ * `rabbitmqadmin` now supports a new argument, `--request-timeout`.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#593](https://github.com/rabbitmq/rabbitmq-management/issues/593)
+
+ * Switching sections will now scroll to the top of the newly rendered page.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#590](https://github.com/rabbitmq/rabbitmq-management/pull/590)
+
+
+### Consistent Hashing Exchange Plugin
+
+#### Enhancements
+
+ * Message distribution uniformity has been significantly improved. [Jump Consistent Hash](https://arxiv.org/abs/1406.2294) is now used for
+ the hashing function.
+
+ GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#37](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/37)
+
+
+### STOMP Plugin
+
+#### Bug Fixes
+
+ * Nodes experiencing very high connection churn could run out of Erlang processes.
+
+ GitHub issues: [rabbitmq/rabbitmq-stomp#125](https://github.com/rabbitmq/rabbitmq-stomp/pull/125), [rabbitmq/rabbitmq-server#1640](https://github.com/rabbitmq/rabbitmq-server/pull/1640)
+
+
+### Web STOMP Plugin
+
+#### Enhancements
+
+ * WebSocket endpoint path is now configurable.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#86](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/86)
+
+
+### MQTT Plugin
+
+ * Session presence flag was always set to `true` regardless of the state of client connection session.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#163](https://github.com/rabbitmq/rabbitmq-mqtt/issues/163)
+
+
+### Web MQTT Plugin
+
+#### Enhancements
+
+ * WebSocket endpoint path is now configurable.
+
+ Contributed by Thomas Sauzeau.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#30](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/30)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * The plugin could try to try to forward messages consumed from the source before receiving
+ credit from the AMQP 1.0 destination.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#44](https://github.com/rabbitmq/rabbitmq-shovel/pull/44)
+
+#### Enhancements
+
+* `sasl=plain` is now added to connection URIs if no other mechanism is specified explicitly
+ by the user.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#10](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/10)
+
+ * TLS version for AMQP 1.0 endpoints now can be configured via a connection URI query parameter.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#19](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/19)
+
+ * Specifying a port without a hostname in connection URI is now considered
+ to be an unsupported combination and will throw an error.
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#107](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/107)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Improved OTP release handling compatibility.
+
+ Contributed by Ayanda Dube.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#78](https://github.com/rabbitmq/rabbitmq-federation/pull/78)
+
+#### Enhancements
+
+ * Link initialization optimizations.
+
+ Contributed by Ayanda Dube.
+
+ GitHub issues: [rabbitmq/rabbitmq-federation#79](https://github.com/rabbitmq/rabbitmq-federation/pull/79), [rabbitmq/rabbitmq-federation#80](https://github.com/rabbitmq/rabbitmq-federation/pull/80)
+
+ * Specifying a port without a hostname in connection URI is now considered
+ to be an unsupported combination and will throw an error.
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#107](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/107)
+
+
+### Peer Discovery Etcd Plugin
+
+#### Bug Fixes
+
+ * Node name is now correctly extracted from the keys returned by
+ etcd even when key prefix includes slashes.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#14](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/14)
+
+
+### Debian Package
+
+#### Bug Fixes
+
+ * Package installation scripts will make sure that the `/etc/rabbitmq` directory is readable.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#72](https://github.com/rabbitmq/rabbitmq-server-release/pull/72)
+
+
+### RPM Package
+
+#### Bug Fixes
+
+ * Package installation scripts will make sure that the `/etc/rabbitmq` directory is readable.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#72](https://github.com/rabbitmq/rabbitmq-server-release/pull/72)
+
+ * If `rabbitmq-plugins` is invoked before first server start, Erlang cookie permissions will
+ be correctly set to those of the RabbitMQ user and group (currently `rabbitmq`).
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#85](https://github.com/rabbitmq/rabbitmq-server-release/issues/85)
+
+
+### Event Exchange Plugin
+
+#### Bug Fixes
+
+ * `amq.rabbitmq.event` exchange is now deleted when plugin is disabled.
+
+ GitHub issue: [rabbitmq/rabbitmq-event-exchange#33](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/33)
+
+#### Enhancements
+
+ * The plugin now can be configured using new style config file:
+
+``` ini
+rabbitmq_event_exchange.vhost = audit
+```
+
+ GitHub issue: [rabbitmq/rabbitmq-event-exchange#31](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/31)
+
+
+### Tracing Plugin
+
+#### Enhancements
+
+ * It is now possible to set up a tracer on any cluster node via management UI and HTTP API.
+
+ GitHub issue: [rabbitmq/rabbitmq-tracing#24](https://github.com/rabbitmq/rabbitmq-tracing/pull/24)
+
+ * Tracer connection credentials now can be specified via the management UI and HTTP API.
+
+ GitHub issue: [rabbitmq/rabbitmq-tracing#25](https://github.com/rabbitmq/rabbitmq-tracing/pull/25)
+
+
+### AMQP 1.0 Erlang Client
+
+#### Enhancements
+
+ * `sasl=plain` is now added to connection URIs if no other mechanism is specified explicitly
+ by the user.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#10](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/10)
+
+ * `hostname` connection parameter will now be set to the value of the `address` parameter for improved
+ compatibility with AMQP 1.0 implementations (e.g. Azure ServiceBus) that expect it to be set.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#1](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/1)
+
+ * TLS version now can be configured via a connection URI query parameter.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#19](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/19)
+
+### AMQP 0-9-1 Erlang Client
+
+#### Enhancements
+
+ * Specifying a port without a hostname in connection URI is now considered
+ to be an unsupported combination and will throw an error.
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#107](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/107)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-3.7.8.tar.gz`.
diff --git a/release-notes/3.7.9.md b/release-notes/3.7.9.md
new file mode 100644
index 0000000000..bf8319ba73
--- /dev/null
+++ b/release-notes/3.7.9.md
@@ -0,0 +1,251 @@
+## RabbitMQ 3.7.9
+
+RabbitMQ `3.7.9` is a maintenance release. It focuses on bug fixes and minor usability improvements.
+
+### Compatibility Notes
+
+CLI tools in this release will often produce an extra line of output, as they did in `3.6.x` releases,
+when `-q` is not provided. Tools that parse CLI command output should use `-q --no-table-headers` to suppress all additional output meant for interactive use or
+avoid parsing output entirely (e.g. use the HTTP API).
+
+#### Upgrading to Erlang 21.0
+
+When upgrading to this release **and upgrading Erlang to 21.0** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21, RabbitMQ **must be upgraded before Erlang**.
+
+#### Documentation Guides and Change Log
+
+See [3.7.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
+compatibility notes if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Queue deletion loaded bindings in an inefficient way.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1690](https://github.com/rabbitmq/rabbitmq-server/issues/1690)
+
+ * Heartbeat monitor now correctly sends heartbeats at half the negotiated timeout interval.
+ It previously could fail to do so because it considered its own traffic to be on-the-wire
+ activity from the peer.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#278](https://github.com/rabbitmq/rabbitmq-common/pull/278)
+
+ * Nodes were using a [client] Syslog UDP socket even when [logging to Syslog](https://www.rabbitmq.com/logging.html#logging-to-syslog) was not enabled.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1718](https://github.com/rabbitmq/rabbitmq-server/issues/1718)
+
+ * `ERL_EPMD_PORT` was ignored when configured in `rabbitmq-env.conf`.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1709](https://github.com/rabbitmq/rabbitmq-server/issues/1709)
+
+ * Proxy Protocol dependency is now compatible with Erlang/OTP 21.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#269](https://github.com/rabbitmq/rabbitmq-common/issues/269)
+
+#### Enhancements
+
+ * It is now possible to configure [cipher suites](https://www.rabbitmq.com/ssl.html#configuring-ciphers) using new style config format.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1712](https://github.com/rabbitmq/rabbitmq-server/issues/1712)
+
+ * When a listener fails to start (bind to a server socket), error messages involve less context and are
+ easier to read.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1711](https://github.com/rabbitmq/rabbitmq-server/issues/1711)
+
+ * Improved error reporting for when `erl` or `erl.exe` are no in node's `PATH`.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#275](https://github.com/rabbitmq/rabbitmq-common/pull/275)
+
+ * 10 TLS connection acceptors are now used by default.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1729](https://github.com/rabbitmq/rabbitmq-server/issues/1729)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl list_*` commands did not include table column headers.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#264](https://github.com/rabbitmq/rabbitmq-cli/issues/264)
+
+ * If `RABBITMQ_NODENAME` is configured, CLI tools will use its hostname part when generating its own
+ Erlang node name.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#270](https://github.com/rabbitmq/rabbitmq-cli/issues/270)
+
+ * On Windows CLI tool batch scripts exited with a 0 exit code when it failed to connect to the node.
+
+ Contributed by Artem Zinenko.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1735](https://github.com/rabbitmq/rabbitmq-server/issues/1735).
+
+#### Enhancements
+
+ * `rabbitmqctl stop` now supports `--idempotent` that makes the command exit with a success when
+ target node is not running.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#272](https://github.com/rabbitmq/rabbitmq-cli/pull/272)
+
+ * `rabbitmqctl add_vhost` is now idempotent (no longer returns an error when vhost already exists)
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#260](https://github.com/rabbitmq/rabbitmq-cli/issues/260)
+
+
+### Management and Management Agent Plugins
+
+#### Bug Fixes
+
+ * Logo link now works better with a non-blank API endpoint prefix.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#604](https://github.com/rabbitmq/rabbitmq-management/issues/604)
+
+ * Decimal headers and argument values are now serialised to JSON correctly.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-agent#71](https://github.com/rabbitmq/rabbitmq-management-agent/pull/71)
+
+#### Enhancements
+
+ * It is now possible to configure both HTTPS and HTTP listeners using new syntax that's consistent with
+ Web STOMP and Web MQTT plugins:
+
+ ``` ini
+ management.tcp.port = 15672
+
+ management.ssl.port = 15671
+ management.ssl.cacertfile = /path/to/ca_certificate.pem
+ management.ssl.certfile = /path/to/server_certificate.pem
+ management.ssl.keyfile = /path/to/server_key.pem
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-management#563](https://github.com/rabbitmq/rabbitmq-management/issues/563)
+
+ * It is now possible to configure `Content-Security-Policy` (CSP) header set by the API.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#623](https://github.com/rabbitmq/rabbitmq-management/issues/623)
+
+ * It is now possible to configure `Strict-Transport-Policy` (HSTS) header set by the API.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#624](https://github.com/rabbitmq/rabbitmq-management/issues/624)
+
+ * `GET /api/nodes/{node}` endpoint aggregated data for other cluster nodes only to discard it later.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#615](https://github.com/rabbitmq/rabbitmq-management/issues/615)
+
+ * When `Handle.exe` is used and returns no file handle information in its output, a warning will be logged.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-agent#67](https://github.com/rabbitmq/rabbitmq-management-agent/issues/67)
+
+
+### LDAP Plugin
+
+#### Enhancements
+
+ * String matching queries now support multi-value results.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#100](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/100)
+
+ * `ad_domain` and `ad_user` are new variables available in LDAP plugin queries. They are extracted from the username
+ when it's in `Domain\User` format, which is typically specific to ActiveDirectory.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#98](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/98)
+
+ * Search queries that return referrals will result in an error instead of an exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#97](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/97)
+
+
+### Web STOMP Plugin
+
+#### Enhancements
+
+ * Advanced WebSocket options now can be configured. Compression is enabled by default.
+ Compression won't be used with clients that do not support it.
+
+ GitHub issues: [rabbitmq/rabbitmq-web-stomp#89](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/89), [rabbitmq/rabbitmq-web-stomp#90](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/90)
+
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+ * WebSocket `PING` frames are now ignored instead of being propagated to MQTT frame handler.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#32](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/32)
+
+#### Enhancements
+
+* Advanced WebSocket options now can be configured. Compression is enabled by default.
+ Compression won't be used with clients that do not support it.
+
+ GitHub issues: [rabbitmq/rabbitmq-web-mqtt#34](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/34)
+
+
+### AWS Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * EC2 API endpoint requests used an unreasonably low timeout (100 ms). The new value
+ is 10 seconds.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#24](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/24)
+
+
+### Consul Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * It wasn't possible to specify Consul service tags via new style config format.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#18](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/18)
+
+ * It wasn't possible to configure lock key prefix via new style config format.
+
+ GitHub issues: [rabbitmq/rabbitmq-peer-discovery-consul#16](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/16)
+
+#### Enhancements
+
+* Lock acquisition timeout now can be configured using `cluster_formation.consul.lock_timeout` as well as `cluster_formation.consul.lock_wait_time` (an alias),
+ to be consistent with the Etcd implementation.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#20](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/pull/20)
+
+
+### Etcd Peer Discovery Plugin
+
+#### Enhancements
+
+ * Lock acquisition timeout now can be configured using `cluster_formation.etcd.lock_timeout` as well as `cluster_formation.etcd.lock_wait_time` (an alias),
+ to be consistent with the Consul implementation.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#16](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/pull/16)
+
+
+### Event Exchange Plugin
+
+#### Enhancements
+
+ * Throughput optimizations reduce probability of high memory consumption by `rabbit_event` processes due to
+ event backlog accumulation.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1722](https://github.com/rabbitmq/rabbitmq-server/issues/1722)
+
+
+### RPM Package
+
+#### Bug Fixes
+
+ * Post-installation script renamed `rabbitmq.conf` to `rabbitmq-env.conf`. A long time ago `rabbitmq.conf` was used to configure
+ environment variables (like `rabbitmq-env.conf` today) and old post-installation steps were not removed when `rabbitmq.conf`
+ was re-adopted for new style config files.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#87](https://github.com/rabbitmq/rabbitmq-server-release/issues/87)
diff --git a/release-notes/3.8.0.md b/release-notes/3.8.0.md
new file mode 100644
index 0000000000..de3c946ace
--- /dev/null
+++ b/release-notes/3.8.0.md
@@ -0,0 +1,288 @@
+## RabbitMQ 3.8.0
+
+RabbitMQ `3.8.0` is a feature release. It contains several major improvements in areas of
+data safety, replication, observability, and ease of upgrades. Some highlight features are
+
+ * [Quorum Queues](http://next.rabbitmq.com/quorum-queues.html)
+ * Built-in [Prometheus support](http://next.rabbitmq.com/prometheus.html) with a set of Grafana dashboards to complement it
+ * [Feature Flags](http://next.rabbitmq.com/feature-flags.html)
+ * [Single Active Consumer](http://next.rabbitmq.com/consumers.html#single-active-consumer)
+ * New authentication and authorisation [backend that uses OAuth 2.0 (JWT)](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2) tokens and scopes
+
+A recorded webinar, [What's New in RabbitMQ 3.8](https://content.pivotal.io/webinars/may-23-what-s-new-in-rabbitmq-3-8-webinar), covers some of the highlights in this release.
+
+Several features in this release are backed by a new Raft implementation for Erlang and Elixir,
+[Ra](https://github.com/rabbitmq/ra/).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.x` series is recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+
+### Rolling Upgrades to 3.8
+
+RabbitMQ 3.8.0 nodes can run alongside `3.7.18` or later `3.7.x` nodes.
+No 3.8.0-specific features would be available in a mixed version cluster. Mixed versions are meant
+to simplify rolling upgrades and not meant to be running for long periods of time.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for documentation on upgrades.
+
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release **and upgrading Erlang to 21.x or later** at the same time, extra care has to be taken.
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded before Erlang**.
+
+#### Upgrade Doc Guides and Change Log
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+#### Client Library Compatibility
+
+Client libraries that were compatible with RabbitMQ `3.7.x` will be compatible with `3.8.0`.
+
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Enhancements
+
+ * [Quorum Queues](http://next.rabbitmq.com/quorum-queues.html) built on top of the [Raft consensus algorithm](https://raft.github.io/) for data safety,
+ more predictable failure recovery, more efficient synchronisation of new and recovered followers, and parallel replication.
+
+ * [Feature Flags](http://next.rabbitmq.com/feature-flags.html) allow for mixed-version clusters and safer rolling upgrades.
+
+ * [Single Active Consumer](http://next.rabbitmq.com/consumers.html#single-active-consumer) makes it possible
+ to run a set of consumers for redundancy while ensuring that only one consumer is getting deliveries.
+
+ * New metric: dropped unroutable messages. Spotting faulty publishers and routing topology issues is now easier.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1904](https://github.com/rabbitmq/rabbitmq-server/issues/1904)
+
+ * New metrics: [connection](https://www.rabbitmq.com/connections.html#monitoring) and [channel churn](https://www.rabbitmq.com/channels.html#monitoring).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1723](https://github.com/rabbitmq/rabbitmq-server/issues/1723)
+
+ * Quorum queues support redelivery tracking, which can be used by consumers to protect themselves from
+ poison message redeliveries.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#502](https://github.com/rabbitmq/rabbitmq-server/issues/502)
+
+ * New queue overflow behaviour: `reject-publish-dlx`. It is identical to `reject-publish`
+ but also dead letters rejected messages.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1443](https://github.com/rabbitmq/rabbitmq-server/issues/1443)
+
+ * Default bindings are now explicit instead of being rows in the internal data store. That means
+ that high queue churn results in significantly less binding churn, reducing lock contention on
+ schema database tables, and peak schema operation latencies with it.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1721](https://github.com/rabbitmq/rabbitmq-server/pull/1721)
+
+#### Internal API Changes
+
+ * [`amqqueue`](https://github.com/rabbitmq/rabbitmq-server/blob/master/src/amqqueue.erl) is a new public API module
+ that should be used to access queue state instead of using queue state records directly. This allows the record
+ to evolve a lot more rapidly with fewer or no code changes in the plugins that access queue state.
+
+ * `authn` and `authz` functions now have access to additional (e.g. protocol-specific) context information.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1767](https://github.com/rabbitmq/rabbitmq-server/issues/1767)
+
+ * Backing queue interface now exposes a function for message deduplication. Plugins now can track duplicate messages
+ in a way that makes it possible to negatively confirm duplicates back to the publisher.
+
+ Contributed by Matteo Cafasso.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1774](https://github.com/rabbitmq/rabbitmq-server/pull/1774).
+
+#### Usability
+
+ * New style configuration format is now more forgiving: it will ignore lines that only contain
+ whitespace and tab characters, as well as leading and trailing whitespace.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2072](https://github.com/rabbitmq/rabbitmq-server/pull/2072)
+
+ * Maximum message size is now configurable. The default was reduced to 128 MiB.e
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1812](https://github.com/rabbitmq/rabbitmq-server/pull/1812)
+
+#### Bug Fixes
+
+Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
+The list below contains community contributions and most important issues that were not backported to `3.7.x` releases.
+
+ * Queue index consistency and safety improvements.
+
+ Contributed by @tomyouyou.
+
+ GitHub issues: [rabbitmq/rabbitmq-server#2092](https://github.com/rabbitmq/rabbitmq-server/pull/2092), [rabbitmq/rabbitmq-server#2096](https://github.com/rabbitmq/rabbitmq-server/pull/2096), [rabbitmq/rabbitmq-server#2100](https://github.com/rabbitmq/rabbitmq-server/pull/2100).
+
+
+### CLI Tools
+
+#### Enhancements
+
+ * More user-friendly `rabbitmq-diagnostics status` output.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#340](https://github.com/rabbitmq/rabbitmq-cli/issues/340)
+
+ * New `help` command.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#316](https://github.com/rabbitmq/rabbitmq-cli/pull/316)
+
+ * A new set of fine-grained [health check](https://www.rabbitmq.com/monitoring.html#health-checks) commands.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#292](https://github.com/rabbitmq/rabbitmq-cli/issues/292)
+
+ * New tool, `rabbitmq-queues`, with commands that display Raft state metrics and manage nodes that
+ host quorum queue replicas.
+
+ GitHub issues: [rabbitmq/rabbitmq-cli#287](https://github.com/rabbitmq/rabbitmq-cli/issues/287), [rabbitmq/rabbitmq-cli#286](https://github.com/rabbitmq/rabbitmq-cli/issues/286)
+
+ * Feature flag status reporting.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#346](https://github.com/rabbitmq/rabbitmq-cli/issues/346)
+
+#### Usability
+
+ * `rabbitmq-diagnostics cipher_suites` now uses OpenSSL cipher suite format by default.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#267](https://github.com/rabbitmq/rabbitmq-cli/issues/267)
+
+
+### Management Plugin
+
+#### Enhancements
+
+ * Metric collection and visualisation in management UI now can be disabled in favor of built-in
+ Prometheus support and Grafana dashboard from Team RabbitMQ.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#707](https://github.com/rabbitmq/rabbitmq-management/pull/707)
+
+ * Feature flag management interface.
+
+ [rabbitmq/rabbitmq-management#648](https://github.com/rabbitmq/rabbitmq-management/pull/648)
+
+ * Quorum Queue support.
+
+ * Single Active Consumer support.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#650](https://github.com/rabbitmq/rabbitmq-management/pull/650)
+
+ * Support for more TLS options.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#644](https://github.com/rabbitmq/rabbitmq-management/pull/644)
+
+ * OAuth 2.0 Single Sign On support for [UAA](https://docs.cloudfoundry.org/concepts/architecture/uaa.html)
+
+ GitHub issue: [rabbitmq/rabbitmq-management#722](https://github.com/rabbitmq/rabbitmq-management/pull/722)
+
+ * Username and password-based Basic HTTP Auth authentication for API operations now can be disabled
+ in favor of OAuth 2.0 Single Sign On via [UAA](https://docs.cloudfoundry.org/concepts/architecture/uaa.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-management#724](https://github.com/rabbitmq/rabbitmq-management/pull/724)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
+The list below contains most prominent fixes.
+
+ * Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
+ encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
+ at the cost of making troubleshooting authentication failures harder.
+
+ GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
+The list below contains most prominent fixes.
+
+ * Sensitive values in federation link state (namely, the connection credentials) are now stored in
+ encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
+ at the cost of making troubleshooting authentication failures harder.
+
+ GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
+
+
+### JWT and OAuth 2.0 Plugin
+
+Initial release.
+
+GitHub repository: [rabbitmq/rabbitmq-auth-backend-oauth2](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2)
+
+
+### MQTT Plugin
+
+#### Enhancements
+
+ * Client ID tracking is now cluster-wide (state is replicated across all nodes). A majority of nodes is required
+ for client connections to be accepted. This is a consequence of the neew consistency-oriented design.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#91](https://github.com/rabbitmq/rabbitmq-mqtt/issues/91)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
+The list below contains most prominent fixes.
+
+ * Maximum concurrent client connection limit now defaults to "infinity" (so, there is no limit).
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#113](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/113)
+
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
+The list below contains most prominent fixes.
+
+ * Maximum concurrent client connection limit now defaults to "infinity" (so, there is no limit).
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#28](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/28)
+
+
+### RabbitMQ Erlang Client
+
+#### Bug Fixes
+
+Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
+The list below contains most prominent fixes.
+
+ * Sensitive values in connection state (namely, the connection credentials) are now stored in
+ encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
+ at the cost of making troubleshooting authentication failures harder.
+
+ GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.8.0.tar.xz`.
diff --git a/release-notes/3.8.1.md b/release-notes/3.8.1.md
new file mode 100644
index 0000000000..4415c7e9e2
--- /dev/null
+++ b/release-notes/3.8.1.md
@@ -0,0 +1,219 @@
+## RabbitMQ 3.8.1
+
+RabbitMQ `3.8.1` is a maintenance release that focuses on bug fixes.
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.x` series is recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release from `3.7.6` or an older version, extra care has to be taken.
+
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded at the same time as Erlang**. Alternatively the node can be upgraded
+to `3.7.18` first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.x.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Bug Fixes
+
+ * Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
+ of a rolling upgrade-then-restart for each node individually.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2132](https://github.com/rabbitmq/rabbitmq-server/issues/2132)
+
+ * Avoid pattern expansion when logging connection closure reason.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2155](https://github.com/rabbitmq/rabbitmq-server/pull/2155)
+
+ * Improved error handling in a module that continuously registers the node with [epmd](https://www.rabbitmq.com/clustering.html) avoids
+ log noise.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2130](https://github.com/rabbitmq/rabbitmq-server/issues/2130)
+
+#### Enhancements
+
+ * Peak [quorum queue](https://www.rabbitmq.com/quorum-queues.html) memory usage was reduced by up to 25% on some workloads.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2138](https://github.com/rabbitmq/rabbitmq-server/pull/2138)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmqctl await_startup` failed with an exception when effective timeout was set to `infinity`.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2144](https://github.com/rabbitmq/rabbitmq-server/pull/2144)
+
+ * `rabbitmq-diagnostics check_port_connectivity` produced a false positive in an IPv6-only environment.
+
+ Contributed by Gabriele Santomaggio.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#385](https://github.com/rabbitmq/rabbitmq-cli/pull/385)
+
+ * `rabbitmq-diagnostics list_unresponsive_queues` failed in environments that had quorum queues.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#386](https://github.com/rabbitmq/rabbitmq-cli/issues/386)
+
+ * `rabbitmq-diagnostics status`, `rabbitmq-diagnostics cluster_status`, `rabbitmq-diagnostics listeners` now support
+ `--formatter=erlang` (raw Erlang data structure output)
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#383](https://github.com/rabbitmq/rabbitmq-cli/issues/383)
+
+#### Enhancements
+
+ * `rabbitmq-diagnostics consume_event_stream` is a new command that makes it easier to consume a stream
+ of internal commands. This can be useful for troubleshooting and auditing. Previously this was only
+ possible via the [rabbitmq-event-exchange](https://github.com/rabbitmq/rabbitmq-event-exchange) plugin.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#299](https://github.com/rabbitmq/rabbitmq-cli/issues/299)
+
+ * `rabbitmq-diagnostics check_certificate_expiration` is a new [health check](https://www.rabbitmq.com/monitoring.html#health-checks) command
+ that fails when any of the certificates used by target node expire within a specified time window.
+
+ `rabbitmq-diagnostics certificates` is its diagnostics (informative) counterpart that displays all CA and leaf certificates
+ used by target node.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#305](https://github.com/rabbitmq/rabbitmq-cli/issues/305)
+
+
+### Prometheus Plugin
+
+#### Bug Fixes
+
+ * Prometheus scraping API endpoint was unreasonably strict about the set of content types it accepts from clients,
+ which caused Telegraf Prometheus input requests to fail with an`406 Not Acceptable` response.
+
+ GitHub issue: [rabbitmq/rabbitmq-prometheus#12](https://github.com/rabbitmq/rabbitmq-prometheus/issues/12)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Some metrics were omitted in the UI for queues that did not have `x-queue-type` set.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#741](https://github.com/rabbitmq/rabbitmq-management/issues/741)
+
+
+### LDAP Plugin
+
+#### Enhancements
+
+ * Errors were not propagated back to the client correctly in case of an LDAP server authentication failure.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#116](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/116)
+
+
+### Kubernetes Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * Requests to Kubernetes API endpoints failed with an `nxdomain` (domain name resolution failure)
+ in an IPv6-only environment.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#55](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/55)
+
+
+### Consul Peer Discovery Plugin
+
+#### Enhancements
+
+ * It is now possible to specify service metadata values:
+
+ ``` ini
+ cluster_formation.consul.svc_meta.key1 = value1
+ cluster_formation.consul.svc_meta.key2 = value2
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#34](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/34)
+
+
+### MQTT Plugin
+
+ * Client ID tracking is now more resilient to node failures and decomissioning.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#213](https://github.com/rabbitmq/rabbitmq-mqtt/issues/213)
+
+
+### STOMP Plugin
+
+#### Enhancements
+
+ * The [`x-queue-type` header](https://www.rabbitmq.com/quorum-queues.html) is now accepted from STOMP clients.
+
+ GitHub issue: [rabbitmq/rabbitmq-stomp#138](https://github.com/rabbitmq/rabbitmq-stomp/issues/138)
+
+#### Bug Fixes
+
+ * `stomp.hide_server` is now available in the new style configuration format.
+
+ GitHub issue: [rabbitmq/rabbitmq-stomp#140](https://github.com/rabbitmq/rabbitmq-stomp/issues/140)
+
+
+### Web STOMP Plugin
+
+#### Bug Fixes
+
+ * The plugin emitted a warning on start.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#115](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/115)
+
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+ * The plugin emitted a warning on start.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#59](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/59)
+
+
+### Erlang Client
+
+#### Bug Fixes
+
+ * Connection could not be restarted after a heartbeat timeout due to strict pattern matching.
+
+ Contributed by Giuseppe D'Anna (@larrywax).
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#126](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/126)
+
+
+### Tracing Plugin
+
+#### Bug Fixes
+
+ * On Windows, deleting the file used by an active (running) trace resulted in an `EACCES` exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-tracing#31](https://github.com/rabbitmq/rabbitmq-tracing/issues/31)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.8.1.tar.xz`.
diff --git a/release-notes/3.8.10.md b/release-notes/3.8.10.md
new file mode 100644
index 0000000000..547eede86c
--- /dev/null
+++ b/release-notes/3.8.10.md
@@ -0,0 +1,351 @@
+## RabbitMQ 3.8.10
+
+**Important**: this release has been [superseded by `3.8.11`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.11)
+which addresses a couple of bugs specific to this release (`3.8.10`)
+
+All users are advised to consult the set of changes in this release but then **upgrade straight
+to `3.8.11` or a newer version if available** and skip this release.
+
+
+RabbitMQ `3.8.10` is a maintenance release.
+Besides containing several bug fixes, it introduces a couple new features for quorum queues.
+
+This release [**no longer supports** Erlang 21.3](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 22](https://www.rabbitmq.com/which-erlang.html) or
+[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
+
+Erlang 21.3 [**is no longer supported**](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
+`22.3` or `23.1` releases are recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Deprecations
+
+This release deprecates [boot time definition import](https://www.rabbitmq.com/definitions.html#import-on-boot) build into the management plugin.
+The feature still exists but is no longer documented or tested. Please switch to
+the built-in definition import mechanism:
+
+``` ini
+# DEPRECATED, requires management plugin to be enabled,
+# does not support import of definitions that depend on plugins
+# (e.g. Shovels or custom exchanges)
+management.load_definitions = /path/to/definitions/file.json
+```
+
+to
+
+``` ini
+# built-in feature, supports import of definitions
+# that depend on plugins (e.g. Shovels or custom exchanges)
+load_definitions = /path/to/definitions/file.json
+```
+
+Definition import in the management plugin (`management.load_definitions`) will be **removed** in
+a future RabbitMQ release.
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 22.x or Later Versions
+
+When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
+
+Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
+then Erlang 22.x or 23.x, then RabbitMQ to the most recent 3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * Starting with `3.8.0`, an unintentionally introduced assertion could prevent classic mirrored queue
+ mirrors from starting successfully in case the primary replica changed concurrently with their startup.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2449](https://github.com/rabbitmq/rabbitmq-server/pull/2449)
+
+ * Repeated polling of a quorum queue with `basic.get` that yielded an empty response could
+ result in an unbounded growth of log segment files on on disk.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2651](https://github.com/rabbitmq/rabbitmq-server/pull/2651)
+
+ * RabbitMQ core plugin activation was revisited to be closer to that of `3.7.x`. This does not any
+ related improvements w.r.t. definition import, e.g. those introudced in [RabbitMQ `3.8.6`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.6).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2656](https://github.com/rabbitmq/rabbitmq-server/pull/2656)
+
+ * Syslog dependency was not started correctly. This meant no log messages were sent to Syslog.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2456](https://github.com/rabbitmq/rabbitmq-server/pull/2456)
+
+ * `rabbitmq-diagnostics check_if_node_is_quorum_critical` returned a false positive for a node [marked for maintenance](https://www.rabbitmq.com/upgrade.html#maintenance-mode).
+ Given the refinement to the `rabbitmq-upgrade drain` command in [rabbitmq/rabbitmq-server#2474](https://github.com/rabbitmq/rabbitmq-server/issues/2474),
+ `rabbitmq-diagnostics check_if_node_is_quorum_critical` now will unconditionally return a success
+ if target node is under maintanence.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2469](https://github.com/rabbitmq/rabbitmq-server/issues/2469)
+
+ * Queues could update their internal bookkeeping state incorrectly in some cases, leading to a `file_handle_cache`
+ operation exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2488](https://github.com/rabbitmq/rabbitmq-server/issues/2488)
+
+#### Enhancements
+
+ * [Quorum queues](https://www.rabbitmq.com/quorum-queues.html) now can use the [`reject-publish`](https://www.rabbitmq.com/maxlength.html#overflow-behaviour)
+ max length overflow strategy.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2407](https://github.com/rabbitmq/rabbitmq-server/pull/2407)
+
+ * [Quorum queues](https://www.rabbitmq.com/quorum-queues.html) now support [consumer priority](https://www.rabbitmq.com/consumers.html#priority).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2451](https://github.com/rabbitmq/rabbitmq-server/pull/2451)
+
+ * Per-user connection and queue limits. This is similar to [per-vhost limits](https://www.rabbitmq.com/vhosts.html#limits) but,
+ as the name suggests, these limits are associated for a given user.
+
+ The limits are controlled using CLI tools or the HTTP API:
+
+ ``` sh
+ # limits user "user-e8d3f85c" to up to five connections and ten channels
+ rabbitmqctl set_user_limits "user-e8d3f85c" '{"max-connections": 5, "max-channels": 10}'
+
+ # clears the maximum number of connections limit for the user
+ rabbitmqctl clear_user_limits "user-e8d3f85c" "max-connections"
+
+ # clears all limits for the user
+ rabbitmqctl clear_user_limits "user-e8d3f85c" "all"
+ ```
+
+ Contributed by Erlang Solutions, sponsored by [CloudAMQP](https://cloudamqp.com).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#607](https://github.com/rabbitmq/rabbitmq-server/issues/607), [rabbitmq/rabbitmq-server#2380](https://github.com/rabbitmq/rabbitmq-server/pull/2380)
+
+ * TLSv1.3 is no longer considered experimental (on Erlang 23) and excluded from TLS listener configuration.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#415](https://github.com/rabbitmq/rabbitmq-common/issues/415)
+
+ * When a node is put under maintenance, it will now stop all local quorum queue replicas after completing
+ leadership transfer. This means that no quorum queue replicas on the node will be considered for
+ leader elections.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2474](https://github.com/rabbitmq/rabbitmq-server/issues/2474)
+
+ * Nodes now keep track of failed client authentication attempts and expose it as a metric via both the [Prometheus endpoint](https://www.rabbitmq.com/prometheus.html)
+ and the HTTP API at `GET /api/auth/attempts/{node}`.
+
+ The tracking is done for every cluster node individually. The protocols that support authentication attempt tracking
+ right now are AMQP 0-9-1, AMQP 1.0 and MQTT.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2436](https://github.com/rabbitmq/rabbitmq-server/pull/2436)
+
+ * `bypass_pem_cache` is a new configuration key that makes it possible to disable the cache of PEM files
+ [used by the Erlang TLS implementation](https://blog.heroku.com/how-we-sped-up-sni-tls-handshakes-by-5x).
+ This rotated certificates quicker to detect for nodes but can also increase latency for inbound
+ TLS connections, e.g. under [high connection churn scenarios](https://www.rabbitmq.com/connections.html#high-connection-churn).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2686](https://github.com/rabbitmq/rabbitmq-server/pull/2686)
+
+ * Definition import now safely handles some missing queue object arguments.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2668](https://github.com/rabbitmq/rabbitmq-server/issues/2668)
+
+ * `rabbitmq.conf` schema now allows for [peer certificate chain verification depth](https://www.rabbitmq.com/ssl.html#peer-verification) to be set to zero.
+ When this value is used, peer certificate must be [signed by a trusted CA certificate directly](https://erlang.org/doc/man/ssl.html#type-allowed_cert_chain_length) in order
+ for the verification to pass.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2493](https://github.com/rabbitmq/rabbitmq-server/issues/2493)
+
+ * `RABBITMQ_IO_THREAD_POOL_SIZE` will no longer be respected by RabbitMQ nodes. It [is no longer relevant](http://blog.erlang.org/IO-Polling/)
+ with supported Erlang versions and will simplify [`rabbitmq-diagnostics runtime_thread_stats`](https://www.rabbitmq.com/runtime.html#thread-stats) output.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2473](https://github.com/rabbitmq/rabbitmq-server/issues/2473)
+
+ * The `+K` [runtime parameter](https://www.rabbitmq.com/runtime.html) is no longer used by RabbitMQ nodes as it has [no effect](http://blog.erlang.org/IO-Polling/)
+ with supported Erlang versions.
+
+ Contributed by Ayanda Dube (Erlang Solutions).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2470](https://github.com/rabbitmq/rabbitmq-server/pull/2470)
+
+
+### CLI
+
+#### Enhancements
+
+ * It is now possible to enable all feature flags in a single command:
+
+ ``` sh
+ rabbitmqctl enable_feature_flag all
+ ```
+
+ Note that this will only enable the flags supported by all cluster members.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#455](https://github.com/rabbitmq/rabbitmq-cli/issues/455)
+
+ * `rabbitmq-queues peek` is a new command that allows for peeking at a queue position. It is only
+ supported by quorum queues (and not classic queues):
+
+ ``` sh
+ # peeks at the head of queue "qq.1" in virtual host "staging"
+ rabbitmq-queues peek --vhost "staging" "qq.1 1"
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#452](https://github.com/rabbitmq/rabbitmq-cli/pull/452/)
+
+ * `rabbitmq-queues reclaim_quorum_memory` is a new command that forces Raft WAL compaction which in most cases should reduce memory footprint of a quorum queue:
+
+ ``` sh
+ rabbitmq-queues reclaim_quorum_memory --vhost "staging" "qq.1"
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#453](https://github.com/rabbitmq/rabbitmq-cli/pull/453)
+
+#### Bug Fixes
+
+ * `rabbitmqctl rename_cluster_node` failed with an error about a missing directory.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#457](https://github.com/rabbitmq/rabbitmq-cli/issues/457)
+
+ * `rabbitmqctl export_definitions` exported optional binding arguments as blank.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2500](https://github.com/rabbitmq/rabbitmq-server/issues/2500)
+
+ * Force removal of a node did not remove it from quorum queue member lists.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2414](https://github.com/rabbitmq/rabbitmq-server/issues/2414)
+
+ * CLI tools now pick a unique identifier from a pool. Previously the pool of possible values was theoretically
+ unbounded, which could result in an atom table exhaustion condition on long running nodes that
+ had a lot of CLI tool invocations (e.g. CLI tools were used to collect monitoring data frequently).
+
+ Such use of CLI tools for [monitoring](https://www.rabbitmq.com/monitoring.html) is not recommended:
+ there are better options such as [Prometheus and Grafana](https://www.rabbitmq.com/prometheus.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#461](https://github.com/rabbitmq/rabbitmq-cli/pull/461)
+
+
+### MQTT Plugin
+
+#### Bug Fixes
+
+ * Raft-based client ID tracker is now significantly more efficient in handling failing
+ or closed connections. This prevents potential [high memory usage of tracking tables](https://github.com/rabbitmq/rabbitmq-server/discussions/2688)
+ on the node.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2692](https://github.com/rabbitmq/rabbitmq-server/pull/2692)
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Federation links that failed to connect due to a TCP connection timeout [leaked resources](https://www.rabbitmq.com/connections.html#monitoring).
+ Other connection failure scenarios did not result in a leak.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#119](https://github.com/rabbitmq/rabbitmq-federation/pull/119)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * An autodeleted Shovel would re-appear on other cluster nodes after the node that hosted it originally was restarted.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2655](https://github.com/rabbitmq/rabbitmq-server/issues/2655)
+
+### Prometheus Plugin
+
+#### Enhancements
+
+ * `GET /metrics/per-object` is a new endpoint that always returns [individual entity metrics](https://www.rabbitmq.com/prometheus.html#metric-aggregation), even if
+ `GET /metrics` is configured to return aggregated results.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2659](https://github.com/rabbitmq/rabbitmq-server/pull/2659)
+
+### Management Plugin
+
+#### Enhancements
+
+ * [Individual health checks](https://www.rabbitmq.com/monitoring.html#health-checks) are now available through the HTTP API.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#844](https://github.com/rabbitmq/rabbitmq-management/issues/844)
+
+#### Bug Fixes
+
+ * Quorum queue consumer counter on on the queue list page was not updated when consumers were cancelled or failed.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2421](https://github.com/rabbitmq/rabbitmq-server/issues/2421)
+
+ * The aliveness check endpoint now responds with a `503 Service Unavailable` instead of a 500 when
+ it cannot publish a test message, e.g. because a policy with zero message TTL was applied to all queues.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#855](https://github.com/rabbitmq/rabbitmq-management/issues/855)
+
+
+### AWS Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * AWS API request errors are now propagated. This means that should an AWS API request fail,
+ the peer discovery subsystem will retry it a limited number of times.
+
+ Contributed by Stefan @stefanmoser Moser.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#40](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/pull/40)
+
+
+### RabbitMQ Erlang Client
+
+#### Bug Fixes
+
+ * `amqp_channel:call/4` timeouts are now safly reconciled with connection-level timeouts.
+
+ Contributed by Ayanda Dube.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2660](https://github.com/rabbitmq/rabbitmq-server/pull/2660)
+
+### Windows Installer
+
+#### Bug Fixes
+
+ * Windows installer is now signed by a new (rolled) key.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2666](https://github.com/rabbitmq/rabbitmq-server/issues/2666)
+
+ * The installer now correctly creates directories when RabbitMQ is installed to
+ a different drive from the shell (`cmd.exe`).
+
+ Contributed by Jiahao @Y2Nk4 Guo.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2682](https://github.com/rabbitmq/rabbitmq-server/pull/2682)
+
+## Dependency Upgrades
+
+ * `credentials_obfuscation` was upgraded [from 2.2.3 to 2.3.0](https://github.com/rabbitmq/credentials-obfuscation/blob/master/ChangeLog.md)
+ * `ranch` is [no longer a dependency](https://github.com/rabbitmq/rabbitmq-server/pull/2707) of `rabbit_common`
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.10.tar.xz`.
diff --git a/release-notes/3.8.11.md b/release-notes/3.8.11.md
new file mode 100644
index 0000000000..b29f562d4f
--- /dev/null
+++ b/release-notes/3.8.11.md
@@ -0,0 +1,72 @@
+## RabbitMQ 3.8.11
+
+RabbitMQ `3.8.11` is a maintenance release that contains bug fixes.
+
+This release [**no longer supports** Erlang 21.3](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 22](https://www.rabbitmq.com/which-erlang.html) or
+[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
+
+Erlang 21.3 [**is no longer supported**](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
+`22.3` or `23.2` releases are recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 22.x or Later Versions
+
+When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
+
+Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
+then Erlang 22.x or 23.x, then RabbitMQ to the most recent 3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * Quorum queues that had active consumers during a rolling cluster upgrade could run into an exception and restart loop.
+
+ This issue is specific to [RabbitMQ `3.8.10`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.10).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2728](https://github.com/rabbitmq/rabbitmq-server/pull/2728)
+
+ * Nodes that had `reverse_dns_lookup` set to `true` could not accept client connections.
+
+ This issue is specific to [RabbitMQ `3.8.10`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.10).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2730](https://github.com/rabbitmq/rabbitmq-server/issues/2730)
+
+
+## Dependency Upgrades
+
+No dependency changes.
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.11.tar.xz`.
diff --git a/release-notes/3.8.12.md b/release-notes/3.8.12.md
new file mode 100644
index 0000000000..e9ea998eac
--- /dev/null
+++ b/release-notes/3.8.12.md
@@ -0,0 +1,214 @@
+## RabbitMQ 3.8.12
+
+RabbitMQ `3.8.12` is a maintenance release that contains bug fixes.
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 22](https://www.rabbitmq.com/which-erlang.html) or
+[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 22.x or Later Versions
+
+When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
+
+Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
+then Erlang 22.x or 23.x, then RabbitMQ to the most recent 3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * [Maintenance mode](https://www.rabbitmq.com/upgrade.html#maintenance-mode) no longer transfers leaders of classic mirrored queue.
+
+ The original transfer implementation was not guaranteed to be safe when only a
+ subset of cluster nodes hosted replicas. In addition, the process could take
+ a lot of time in environments with a lot of classic mirrored queues, more
+ than in case of node shutdown.
+
+ Quorum queue leadership transfer is still performed as it is dramatically more
+ efficient and never suffered from any downsides of leadership transfer of CMQs.
+
+ GitHub issue: [#2749](https://github.com/rabbitmq/rabbitmq-server/issues/2749)
+
+ * Exclusive queues that happen to be matched by classic queue mirroring policies
+ will no longer be considered for rebalancing operations since they are not
+ actually mirrored (the lifecycle is by design tied to a single client connection).
+
+ GitHub issue: [#2795](https://github.com/rabbitmq/rabbitmq-server/issues/2795)
+
+ * Default replica count for quorum queues was using an incorrect configuration key name.
+ The default value is now `3`, so in a cluster of five or seven nodes, only three
+ will host replicas for newly declared quorum queues. One replica is the node to which
+ the declaring client is connected to, two others are selected randomly.
+
+ Declaring connections can control the number of replicas using the `x-quorum-initial-group-size`
+ optional queue argument at declaration time.
+
+ GitHub issue: [#2759](https://github.com/rabbitmq/rabbitmq-server/pull/2759)
+
+ * Default [runtime busy waiting](https://www.rabbitmq.com/runtime.html#cpu-reduce-idle-usage) settings were
+ changed to `none` by default, which reduces CPU footprint on nodes that are mostly idle. The values
+ can be overridden for workloads that benefit from different values.
+
+ Contributed by @carlhoerberg (CloudAMQP)
+
+ GitHub issue: [#2803](https://github.com/rabbitmq/rabbitmq-server/pull/2803)
+
+ * Definition import now imports runtime parameters after exchanges, queues, and bindings
+ to reduce the likelihood of starting dynamic Shovels from racing with topology
+ imports.
+
+ GitHub issue: [#2798](https://github.com/rabbitmq/rabbitmq-server/issues/2798)
+
+ * Memory monitor could run into an exception if queried very early on node boot
+ before it was fully initialized.
+
+ Contributed by @tomyouyou.
+
+ GitHub issue: [#2733](https://github.com/rabbitmq/rabbitmq-server/pull/2733)
+
+#### Enhancements
+
+ * `rabbitmq.conf` validation of TLS certificate and private key paths is now more thorough:
+ it checks if the files have read or read/write permissions instead of checking if it can read
+ the file's metadata.
+
+ GitHub issue: [#2685](https://github.com/rabbitmq/rabbitmq-server/issues/2685)
+
+### CLI Tools
+
+#### Enhancements
+
+ * `rabbitmqctl close_all_user_connections` is a new command that closes all connections that
+ authenticated using a specific username:
+
+ ```
+ rabbitmqctl close_all_user_connections "user-99fc15d3f" "closed to force reconnection"
+ ```
+
+ GitHub issue: [#2715](https://github.com/rabbitmq/rabbitmq-server/issues/2715)
+
+
+### Prometheus Plugin
+
+#### Bug Fixes
+
+ * AuthN authentication attempts metrics produced duplicate `TYPE` and `HELP` strings in
+ the scraping API endpoint output.
+
+ Some metrics were renamed to avoid duplication. The new names are `auth_attempts_detailed_total`,
+ `auth_attempts_detailed_succeeded_total`, and `auth_attempts_detailed_failed_total`.
+
+ This issue is specific to RabbitMQ `3.8.10` and `3.8.11`.
+
+ GitHub issue: [#2740](https://github.com/rabbitmq/rabbitmq-server/issues/2740)
+
+
+### LDAP Plugin
+
+#### Enhancements
+
+ * The plugin now supports two new configuration settings that control SNI and hostname verification
+ behavior for TLS-enabled LDAP client connections:
+
+ ``` ini
+ # leave out to keep the default behavior (exact hostname matching)
+ auth_ldap.ssl_options.hostname_verification = wildcard
+
+ # set to none to disable SNI
+ auth_ldap.ssl_options.sni = a.rabbitmq.hostname.dev
+ ```
+
+ These changes are based on the [research and suggestions](https://pcable.net/posts/2021-02-10-rmq-ldap/) from Patrick @patcable Cable.
+
+ GitHub issue: [#2805](https://github.com/rabbitmq/rabbitmq-server/issues/2805)
+
+
+## Shovel Plugin
+
+#### Enhancements
+
+ * Dynamic Shovels now can specify [optional queue arguments](https://www.rabbitmq.com/queues.html#optional-arguments) for
+ the queues they declare. Note that these settings will not have any effects for cases where the plugin
+ uses already existing queues.
+
+ This allows for the Shovel-managed queues to be [quorum](https://www.rabbitmq.com/quorum-queues.html). For the arguments
+ that must not be provided at queue declaration time, [policies](https://www.rabbitmq.com/parameters.html#policies)
+ is the right approach.
+
+ The arguments are specified using the `""` and `""` arguments for source and destination queues, respectively:
+
+ ``` json
+ {
+ "src-protocol": "amqp091",
+ "src-uri": ["amqp://localhost"],
+ "src-queue": "src-queue",
+ "dest-protocol": "amqp091",
+ "dest-uri": ["amqp://localhost"],
+ "dest-queue": "dest-queue",
+ "src-queue-args": {
+ "x-queue-type": "quorum"
+ },
+ "dest-queue-args": {
+ "x-queue-type": "quorum"
+ }
+ }
+ ```
+
+ GitHub issue: [#2799](https://github.com/rabbitmq/rabbitmq-server/issues/2799)
+
+
+## AuthN/AuthZ Cache Plugin
+
+### Enhancement
+
+ * Cache operation timeout has been increased to 15s (same as the channel operation timeout in the core).
+ This prevents sporadic timeouts in heavily loaded systems.
+
+ GitHub issue: [#2792](https://github.com/rabbitmq/rabbitmq-server/pull/2792)
+
+
+## RabbitMQ Erlang Client
+
+#### Bug Fixes
+
+ * The client performed hostname resolution twice even if IP version preference was specified by the user.
+
+ Contributed by Pawel @haljin Antemijczuk.
+
+ GitHub issue: [#2748](https://github.com/rabbitmq/rabbitmq-server/issues/2748)
+
+## Dependency Upgrades
+
+No dependency changes.
+
+
+## Source Code Archives
+
+To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.12.tar.xz`
+instead of the source tarball produced by GitHub.
diff --git a/release-notes/3.8.13.md b/release-notes/3.8.13.md
new file mode 100644
index 0000000000..407cf222e6
--- /dev/null
+++ b/release-notes/3.8.13.md
@@ -0,0 +1,155 @@
+## RabbitMQ 3.8.13
+
+RabbitMQ `3.8.13` is a maintenance release.
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 22.3](https://www.rabbitmq.com/which-erlang.html).
+[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/) is highly recommended
+for best forward compatibility with future RabbitMQ versions.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 22.x or Later Versions
+
+When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
+
+Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
+then Erlang 22.3 or 23.x, then RabbitMQ to the most recent 3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * Nodes that had an unusually long name (e.g. 150 or more characters) could overflow
+ message property lengths with the [direct reply-to](https://www.rabbitmq.com/direct-reply-to.html) identifier they generated.
+ Now the generated values are almost entirely decoupled from node name length.
+
+ GitHub issue: [#2842](https://github.com/rabbitmq/rabbitmq-server/pull/2842)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Consumer utilisation metric has been renamed to consumer capacity which more accurately represents
+ what it measures. The metric indicates the percentage of time that RabbitMQ has attempted a delivery
+ to a consumer of a queue, and was allowed to do so by the [channel prefetch value](https://www.rabbitmq.com/confirms.html#channel-qos-prefetch) and
+ the number of currently unacknowledged deliveries.
+
+ For queues that have no consumers, the metric now returns 0%. For consumers that accept all deliveries
+ attempted, the metric will be around 100% (optimal).
+
+ For queues that do have consumers but no traffic the metric will be at 100%. The assumption here is that consumers
+ can absorb all the load. This case is intentionally treated differently from the one above with no online consumers.
+
+ GitHub issue: [#2843](https://github.com/rabbitmq/rabbitmq-server/pull/2843)
+
+
+### Prometheus Plugin
+
+#### Bug Fixes
+
+ * Consumer utilisation metric has been renamed to consumer capacity which more accurately represents
+ what it measures. See a more detailed note above in the Management plugin section.
+
+ GitHub issue: [#2843](https://github.com/rabbitmq/rabbitmq-server/pull/2843)
+
+
+### Federation Plugin
+
+#### Enhancements
+
+ * Quorum queues now can be federated.
+
+ GitHub issue: [#2756](https://github.com/rabbitmq/rabbitmq-server/issues/2756)
+
+ * Exchange federation now supports a new option, `channel_use_mode`, which allows a single
+ channel to be used for all federation link activity if set to `single`:
+
+ ``` shell
+ rabbitmqctl set_parameter federation-upstream dc-2 '{"uri":"amqp://dc2.messaging.coolcorp.local:5672", "channel-use-mode": "single"}'
+ ```
+
+ This helps avoid a race condition between topology changes and message flow
+ and the cost of topology operations reducing message transfer rates and increasing
+ rate variability.
+
+ The default value is `multiple`. It means that every link will use multiple channels (one for message transfer,
+ one for topology changes, etc), which has been the case since rabbitmq/rabbitmq-federation#97.
+ This is the recommended mode for most environments, and all environments with a mostly static topology.
+
+ See [rabbitmq/rabbitmq-federation#97](https://github.com/rabbitmq/rabbitmq-federation/pull/97) for the background.
+
+ GitHub issue: [#2829](https://github.com/rabbitmq/rabbitmq-server/pull/2829)
+
+
+### AMQP 1.0 Plugin
+
+#### Bug Fixes
+
+ * The plugin could run into unhandled exceptions.
+
+ GitHub issue: [#2830](https://github.com/rabbitmq/rabbitmq-server/pull/2830)
+
+
+### OAuth 2 AuthN/AuthZ Backend
+
+#### Enhancements
+
+ * Several settings of the plugin are now exposed to `rabbitmq.conf` and provide validations:
+
+ ``` ini
+ auth_backends.1 = oauth2
+ auth_oauth2.resource_server_id = a_resource_server_id
+ auth_oauth2.additional_scopes_key = a_custom_scope_key
+ auth_oauth2.default_key = id1
+ auth_oauth2.signing_keys.id1 = /path/to/signing.key1.pem
+ auth_oauth2.signing_keys.id2 = /path/to/signing.key2.pem
+ ```
+
+ GitHub issue: [#2550](https://github.com/rabbitmq/rabbitmq-server/issues/2550)
+
+ * JWT tokens now can be fetched from a JWKS endpoint provided using the `rabbitmq_auth_backend_oauth2.key_config.jwks_url`
+ key in `advanced.config`.
+
+ Contributed by Teo @teozkr Klestrup Röijezon.
+
+ GitHub issue: [#2791](https://github.com/rabbitmq/rabbitmq-server/pull/2791)
+
+
+## Dependency Upgrades
+
+ * `lager` was [upgraded to 3.8.2](https://github.com/erlang-lager/lager/compare/3.8.0..3.8.2)
+ * `cuttlefish` was [upgraded to 2.6.0](https://github.com/kyorai/cuttlefish/compare/v2.4.0..v2.6.0)
+ * `credentials_obfuscation` was [upgraded to 2.4.0](https://github.com/rabbitmq/credentials-obfuscation/blob/master/ChangeLog.md#changes-between-230-and-240-february-18-2021)
+ * `observer_cli` was [upgraded to 1.6.0](https://github.com/zhongwencool/observer_cli/compare/1.5.4..v1.6.0)
+
+
+## Source Code Archives
+
+To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.13.tar.xz`
+instead of the source tarball produced by GitHub.
diff --git a/release-notes/3.8.14.md b/release-notes/3.8.14.md
new file mode 100644
index 0000000000..bd963c847a
--- /dev/null
+++ b/release-notes/3.8.14.md
@@ -0,0 +1,77 @@
+## RabbitMQ 3.8.14
+
+RabbitMQ `3.8.14` is a maintenance release that restores
+Erlang 22.3 compatibility for environments that use [direct reply-to](/direct-reply-to.html).
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 22.3](https://www.rabbitmq.com/which-erlang.html).
+[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/) is highly recommended
+for best forward compatibility with future RabbitMQ versions.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision a recent version of Erlang `23.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 23.x or Later Versions
+
+When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
+
+Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
+then Erlang 23.x, then RabbitMQ to the most recent 3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * [Direct reply-to](https://www.rabbitmq.com/direct-reply-to.html) failed witn an exception on Erlang 22.3.
+ Nodes running on Erlang 23 are not affected.
+
+ GitHub issue: [#2857](https://github.com/rabbitmq/rabbitmq-server/pull/2857)
+
+ * A warnings about async I/O threads was replaced with a similar one about dirty I/O
+ schedulers. This keeps the message up with the settings used in modern Erlang releases.
+
+ GitHub issue: [#2854](https://github.com/rabbitmq/rabbitmq-server/pull/2854)
+
+### Other
+
+#### Enhancements
+
+ * Community-maintained [RabbitMQ OCF scripts](https://github.com/rabbitmq/rabbitmq-server/blob/master/scripts/rabbitmq-server-ha.ocf) were revisited.
+
+ Contributed by Michele @mbaldessari Baldessari.
+
+ GitHub issue: [#2853](https://github.com/rabbitmq/rabbitmq-server/pull/2853)
+
+
+## Dependency Upgrades
+
+ There were no dependency changes.
+
+
+## Source Code Archives
+
+To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.14.tar.xz`
+instead of the source tarball produced by GitHub.
diff --git a/release-notes/3.8.15.md b/release-notes/3.8.15.md
new file mode 100644
index 0000000000..288ca0fdae
--- /dev/null
+++ b/release-notes/3.8.15.md
@@ -0,0 +1,175 @@
+## RabbitMQ 3.8.15
+
+RabbitMQ `3.8.15` is a maintenance release that includes two security patches.
+
+All users are advised to consult the set of changes in this release but then
+**upgrade straight to `3.8.16` or a newer version if available** and skip this release.
+
+### Security Patches
+
+This release addresses two CVEs:
+
+ * [CVE-2021-22117](https://tanzu.vmware.com/security/cve-2021-22117)
+ * [CVE-2021-22116](https://tanzu.vmware.com/security/cve-2021-22116)
+
+Our team would like to thank
+
+ * Jonathan Knudsen from the Synopsys Cybersecurity Research Center (CyRC)
+ * Robert Chen from DeepSurface Security
+
+for responsibly disclosing the vulnerabilities and helping assess and test
+the patches.
+
+### Obtaining Packages
+
+This is the first release in the [post-Bintray era](https://blog.rabbitmq.com/posts/2021/03/migrate-off-of-bintray/).
+Because Bintray shut down on May 1st, 2021, this version is not distributed via Bintray.
+From now on, releases are distributed via GitHub, [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
+and [PackageCloud](https://packagecloud.io/rabbitmq).
+
+### Erlang/OTP Compatibility Notes
+
+This release is the [last release to support Erlang 22.3](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
+[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/) is highly recommended
+for best forward compatibility with future RabbitMQ versions.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision a recent version of Erlang `23.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * Quorum queues did not take snapshots as frequently as they are expected to with some configurations.
+ This resulted in much higher peak disk space usage for queues that did not have a meaningful backlog.
+
+ GitHub issue: [#2974](https://github.com/rabbitmq/rabbitmq-server/issues/2974)
+
+ * Quorum queue name was unintentionally limited: the length of virtual host and actual queue name
+ was limited to 254 characters. Quorum queues that had longer names failed to be declared.
+
+ * Deleting a quorum queue would leave some of its internal metrics data around.
+
+ GitHub issue: [#2846](https://github.com/rabbitmq/rabbitmq-server/pull/2846)
+
+ * Client destination address is now obtained w.r.t. the [Proxy protocol](https://www.rabbitmq.com/networking.html#proxy-protocol) settings.
+
+ Contributed by @carlhoerberg (CloudAMQP).
+
+ GitHub issue: [#2942](https://github.com/rabbitmq/rabbitmq-server/pull/2942)
+
+#### Enhancements
+
+ * Quorum queue consumers that consume messages and do not acknowledge them will now have a 15 minute
+ acknowledgement timeout applied to them by default. Operators can increase the timeout if necessary.
+
+ Such consumers delay or even prevent on disk data compaction, which can run a node out of disk
+ space much earlier than anticipated.
+
+ GitHub issue: [#2990](https://github.com/rabbitmq/rabbitmq-server/pull/2990)
+
+ * Channel interceptors now can return channel-level exceptions.
+
+ Contributed by Ayanda @Ayanda-D Dube.
+
+ GitHub issue: [#2989](https://github.com/rabbitmq/rabbitmq-server/pull/2989)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmq-diagnostics status` could run into an exception when formatting responses
+ from nodes where high VM memory watermark was configured using `advanced.config`.
+
+ GitHub issue: [#2964](https://github.com/rabbitmq/rabbitmq-server/issues/2964)
+
+ * `rabbitmq-queues rebalance` will no longer pick nodes [under maintenance](https://www.rabbitmq.com/upgrade.html#maintenance-mode)
+ as new queue leader placement candidates.
+
+ GitHub issue: [#2993](https://github.com/rabbitmq/rabbitmq-server/pull/2993)
+
+#### Enhancements
+
+ * `rabbitmq-diagnostics remote_shell` is a new command that opens a remote Erlang shell
+ to the target node. This simplifies troubleshooting of a running node.
+
+ GitHub issue: [#2860](https://github.com/rabbitmq/rabbitmq-server/pull/2860)
+
+ * `rabbitmq-queues await_online_quorum_plus_one` is now a no-op in a single node cluster
+ since the command does not make sense when there is only one node.
+
+ GitHub issue: [#2890](https://github.com/rabbitmq/rabbitmq-server/pull/2890)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * When a virtual host was created with tags via the HTTP API, the tags were unintentionally
+ concatenated together.
+
+ GitHub issue: [#2982](https://github.com/rabbitmq/rabbitmq-server/pull/2982)
+
+ * More precise UI description for message consumption mode that is destructive (consumes in automatic acknowledgement mode).
+
+ GitHub issue: [#3011](https://github.com/rabbitmq/rabbitmq-server/pull/3011)
+
+
+### AWS Peer Discovery Plugin
+
+#### Enhancements
+
+ * [AWS peer discovery mechanism](https://www.rabbitmq.com/cluster-formation.html#peer-discovery-aws) now supports
+ [Instance Metadata Service v2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).
+ In case it is not available, requests will fall back to the original metadata service endpoint.
+
+ The v2 endpoint offers substantial security improvements and is one of
+ the [AWS best practices](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#ec2-8-remediation).
+
+ Contributed by @thuandb (AWS).
+
+ GitHub issue: [#2952](https://github.com/rabbitmq/rabbitmq-server/pull/2952)
+
+
+### Auth Mechanism TLS Plugin
+
+#### Enhancements
+
+ * The plugin now has limited support for username extraction from SAN of type "other name".
+ Note that the type by definition supports arbitrary values, so supporting all possible
+ inputs is not realistic.
+
+ Contributed by @Thibi2000.
+
+ GitHub issue: [#2983](https://github.com/rabbitmq/rabbitmq-server/issues/2983), [#2985](https://github.com/rabbitmq/rabbitmq-server/issues/2985)
+
+## Dependency Upgrades
+
+ There were no dependency changes.
+
+
+## Source Code Archives
+
+To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.15.tar.xz`
+instead of the source tarball produced by GitHub.
diff --git a/release-notes/3.8.16.md b/release-notes/3.8.16.md
new file mode 100644
index 0000000000..ff44bdb1f5
--- /dev/null
+++ b/release-notes/3.8.16.md
@@ -0,0 +1,87 @@
+## RabbitMQ 3.8.16
+
+RabbitMQ `3.8.16` is a maintenance release.
+
+It reintroduces `rabbitmq_peer_discovery_aws` plugin that was unintentionally removed
+from `3.8.15` due to release pipeline changes.
+
+This is the first release to drop support for Erlang 22.3 and introduce support for the [upcoming Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/) release.
+
+### Obtaining Packages
+
+This release is distributed via GitHub, [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
+and [PackageCloud](https://packagecloud.io/rabbitmq).
+
+### Erlang/OTP Compatibility Notes
+
+This is the [first release to require Erlang 23.2 or later and support upcoming Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision a recent version of Erlang `23.3`.
+
+
+## Upgrade and Compatibility Notes
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Erlang Release Series Support
+
+ * This release [introduces Erlang 24 support and drops support for Erlang 22](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/). Erlang 24 offers non-trivial real world throughput improvements for many
+ RabbitMQ installations and workloads. It is expected to ship in May 2021.
+
+ In the meantime, see [Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) to
+ learn how to provision a recent version of Erlang `23.3`.
+
+ GitHub issue: [#2900](https://github.com/rabbitmq/rabbitmq-server/pull/2900)
+
+
+### AWS Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * This plugin was unintentionally excluded from the distribution in `3.8.15` and has now been
+ added back.
+
+ GitHub issue: [#3023](https://github.com/rabbitmq/rabbitmq-server/issues/3023)
+
+
+### Management Plugin
+
+#### Enhancements
+
+ * Messaging polling HTTP API endpoint leaked temporary connections it used in case of a polling timeout.
+ Note that **this endpoint is not recommended to be used** outside of QA environments.
+ Use a [long-lived consumer](https://www.rabbitmq.com/consumers.html) via one of the supported messaging protocols.
+
+ Contributed by @luos.
+
+ GitHub issue: [#3024](https://github.com/rabbitmq/rabbitmq-server/pull/3024)
+
+
+## Dependency Upgrades
+
+* Cuttlefish has been upgraded from [`2.6.0` to `3.0.0`](https://github.com/kyorai/cuttlefish/compare/v2.6.0..v3.0.0)
+* Lager has been upgraded from [`3.8.2` to `3.9.1`](https://github.com/erlang-lager/lager/compare/3.8.2..3.9.1)
+
+
+## Source Code Archives
+
+To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.16.tar.xz`
+instead of the source tarball produced by GitHub.
diff --git a/release-notes/3.8.17.md b/release-notes/3.8.17.md
new file mode 100644
index 0000000000..832de5bcae
--- /dev/null
+++ b/release-notes/3.8.17.md
@@ -0,0 +1,145 @@
+## RabbitMQ 3.8.17
+
+RabbitMQ `3.8.17` is a maintenance release that includes a security patch.
+
+### Security Patches
+
+This release addresses an undisclosed vulnerability with CVSS 3.1 [score of 3.1](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:N/E:P/RL:O/RC:C) (low): [CVE-2021-32718](https://github.com/rabbitmq/rabbitmq-server/security/advisories/GHSA-c3hj-rg5h-2772).
+
+Our team would like to thank Christian Rellmann from [usd AG](https://www.usd.de/) for [responsibly disclosing](https://www.rabbitmq.com/contact.html#security)
+the vulnerability and helping us verify a fix.
+
+### Obtaining Packages
+
+RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases), [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
+and [PackageCloud](https://packagecloud.io/rabbitmq).
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) and [supports Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision modern Erlang versions.
+
+
+## Upgrade and Compatibility Notes
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+If upgrading from a`3.7.x` release, see [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0)
+upgrade and compatibility notes first.
+
+If upgrading from a `3.6.x` or older [release series](https://www.rabbitmq.com/versions.html), first upgrade
+to [`3.7.27`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.27) and then to this version.
+
+
+## Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Enhancements
+
+ * Queue index efficiency improvements, mostly around peak memory consumption with large backlogs of small messages.
+
+ Note that some of the improvements come from more optimal defaults: those will only be
+ applicable to newly created virtual hosts (or new clusters).
+
+ GitHub issues: [#2954](https://github.com/rabbitmq/rabbitmq-server/pull/2954), [#3041](https://github.com/rabbitmq/rabbitmq-server/pull/3041)
+
+ * [Consumer delivery acknowledgement timeout](https://www.rabbitmq.com/consumers.html#acknowledgement-timeout) default has been bumped to 30 minutes (previously 15 minutes). The value
+ can be overridden.
+
+ GitHub issue: [#3033](https://github.com/rabbitmq/rabbitmq-server/pull/3033)
+
+#### Bug Fixes
+
+ * A classic queue with [single active consumer](https://www.rabbitmq.com/consumers.html#single-active-consumer) option enabled could run into
+ an exception after a restart or initial enablement of the management plugin.
+
+ GitHub issue: [#3072](https://github.com/rabbitmq/rabbitmq-server/issues/3072)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * A combination of HTTPS (TLS) settings and advanced HTTP server settings
+ resulted in an exception.
+
+ GitHub issue: [#3039](https://github.com/rabbitmq/rabbitmq-server/pull/3039)
+
+ * External stats collector is now restarted again if it fails for any reason.
+
+ Contributed by @luos.
+
+ GitHub issue: [#3040](https://github.com/rabbitmq/rabbitmq-server/pull/3040)
+
+
+### Consistent History Exchange Plugin
+
+#### Enhancements
+
+ * When nodes are restarted, schema database tables used by this plugin are now reconciled
+ with cluster peers the [same way RabbitMQ core does it](https://www.rabbitmq.com/clustering.html#restarting).
+
+ GitHub issue: [#3067](https://github.com/rabbitmq/rabbitmq-server/pull/3067)
+
+
+### Recent History Exchange Plugin
+
+#### Enhancements
+
+ * When nodes are restarted, schema database tables used by this plugin are now reconciled
+ with cluster peers the [same way RabbitMQ core does it](https://www.rabbitmq.com/clustering.html#restarting).
+
+ GitHub issue: [#3067](https://github.com/rabbitmq/rabbitmq-server/pull/3067)
+
+
+### Delayed Message Exchange Plugin
+
+#### Enhancements
+
+ * When nodes are restarted, schema database tables used by this plugin are now reconciled
+ with cluster peers the [same way RabbitMQ core does it](https://www.rabbitmq.com/clustering.html#restarting).
+
+ Contributed by @mwfriedm.
+
+ GitHub issue: [rabbitmq/rabbitmq-delayed-message-exchange#163](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/pull/163)
+
+
+### Last Value Cache Exchange Plugin
+
+#### Enhancements
+
+ * When nodes are restarted, schema database tables used by this plugin are now reconciled
+ with cluster peers the [same way RabbitMQ core does it](https://www.rabbitmq.com/clustering.html#restarting).
+
+ GitHub issue: [rabbitmq/rabbitmq-lvc-exchange#28](https://github.com/rabbitmq/rabbitmq-lvc-exchange/issues/28)
+
+
+
+### Web MQTT Plugin
+
+#### Bug Fixes
+
+ * MQTT-over-WebSockets client connections were not accounted for by the file handle tracking mechanism (metric and resource alarm).
+
+ GitHub issue: [#3076](https://github.com/rabbitmq/rabbitmq-server/pull/3076)
+
+
+## Dependency Upgrades
+
+None in this release.
+
+
+## Source Code Archives
+
+To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.17.tar.xz`
+instead of the source tarball produced by GitHub.
diff --git a/release-notes/3.8.18.md b/release-notes/3.8.18.md
new file mode 100644
index 0000000000..6b4e121318
--- /dev/null
+++ b/release-notes/3.8.18.md
@@ -0,0 +1,179 @@
+## RabbitMQ 3.8.18
+
+RabbitMQ `3.8.18` is a maintenance release that includes a security patch.
+
+This release addresses an undisclosed vulnerability with CVSS 3.1 [score of 3.1](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:N/E:P/RL:O/RC:C) (low): [CVE-2021-32719](https://github.com/rabbitmq/rabbitmq-server/security/advisories/GHSA-5452-hxj4-773x)
+
+Our team would like to thank Fahimhusain Raydurg for [responsibly disclosing](https://www.rabbitmq.com/contact.html#security)
+the vulnerability and Patrik Ragnarsson from CloudAMQP for contributing a fix.
+
+### Obtaining Packages
+
+RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases), [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
+and [PackageCloud](https://packagecloud.io/rabbitmq).
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) and [supports Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision modern Erlang versions.
+
+
+## Upgrade and Compatibility Notes
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+If upgrading from a`3.7.x` release, see [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0)
+upgrade and compatibility notes first.
+
+If upgrading from a `3.6.x` or older [release series](https://www.rabbitmq.com/versions.html), first upgrade
+to [`3.7.27`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.27) and then to this version.
+
+
+## Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Enhancements
+
+ * [Peer discovery](https://www.rabbitmq.com/cluster-formation.html) no longer uses randomized delays to avoid the inherent race condition
+ during [initial cluster formation](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition). Instead it relies on an internal
+ distributed locking mechanism available in modern Erlang releases.
+
+ While randomized startup delay was reasonably effective at ensuring only one cluster was formed even during parallel node
+ startup, it by definition assumes that with some low probability more than one node can still start as seed nodes,
+ and be joined by different groups of cluster peers. The locking mechanism does not have this downside.
+ Now that RabbitMQ requires Erlang 23.2, the internal locking library becomes an option for peer discovery.
+ Note that etcd and Consul-based peer discovery still use those service's support for distributed locks.
+
+ `cluster_formation.randomized_startup_delay_range.min` and `cluster_formation.randomized_startup_delay_range.max` configuration keys
+ will no longer have any effect.
+
+ GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
+
+ * Node startup banner now includes Erlang version, runtime operation mode (JIT vs. emulator),
+ and underlying crypto library version (e.g. OpenSSL 1.1.1k) it was built against.
+
+ GitHub issue: [#2777](https://github.com/rabbitmq/rabbitmq-server/pull/2777)
+
+ * Build system targets now use `hostname(1)` in a way that is compatible with Solaris.
+
+ Contributed by Pavel @tropikhajma Heimlich.
+
+ GitHub issue: [#3117](https://github.com/rabbitmq/rabbitmq-server/pull/3117)
+
+#### Bug Fixes
+
+ * Queue deletion could run into an exception in some rare cases.
+
+ Contributed by @tomyouyou.
+
+ GitHub issue: [#3086](https://github.com/rabbitmq/rabbitmq-server/issues/3086)
+
+
+### Prometheus Plugin
+
+#### Bug Fixes
+
+ * In certain double stack (IPv4 and IPv6) environments, the plugin would start a single listener
+ but register two internally. That extra non-existent listener would make `rabbitmq-diagnostics drain`
+ fail as it disables all registered listeners.
+
+ GitHub issue: [#3021](https://github.com/rabbitmq/rabbitmq-server/pull/3021)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * In certain double stack (IPv4 and IPv6) environments, the plugin would start a single listener
+ but register two internally. That extra non-existent listener would make `rabbitmq-diagnostics drain`
+ fail as it disables all registered listeners.
+
+ GitHub issue: [#3021](https://github.com/rabbitmq/rabbitmq-server/pull/3021)
+
+### Kubernetes Peer Discovery Plugin
+
+#### Enhancements
+
+ * Kubernetes [peer discovery](https://www.rabbitmq.com/cluster-formation.html) mechanism no longer uses randomized delays to avoid the inherent race condition
+ during [initial cluster formation](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition). Instead it relies on an internal
+ distributed locking mechanism available in modern Erlang releases.
+
+ While randomized startup delay was reasonably effective at ensuring only one cluster was formed even during parallel node
+ startup, it by definitely assumes that with some low probability more than one node can still start as seed nodes,
+ and be joined by different groups of cluster peers. The locking mechanism does not have this downside.
+ Now that RabbitMQ requires Erlang 23.2, the internal locking library becomes an option for peer discovery.
+
+ `cluster_formation.randomized_startup_delay_range.min` and `cluster_formation.randomized_startup_delay_range.max` configuration keys
+ will no longer have any effect.
+
+ GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
+
+
+### AWS Peer Discovery Plugin
+
+#### Enhancements
+
+ * AWS [peer discovery](https://www.rabbitmq.com/cluster-formation.html) mechanism no longer uses randomized delays to avoid the inherent race condition
+ during [initial cluster formation](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition). Instead it relies on an internal
+ distributed locking mechanism available in modern Erlang releases.
+
+ While randomized startup delay was reasonably effective at ensuring only one cluster was formed even during parallel node
+ startup, it by definitely assumes that with some low probability more than one node can still start as seed nodes,
+ and be joined by different groups of cluster peers. The locking mechanism does not have this downside.
+ Now that RabbitMQ requires Erlang 23.2, the internal locking library becomes an option for peer discovery.
+
+ `cluster_formation.randomized_startup_delay_range.min` and `cluster_formation.randomized_startup_delay_range.max` configuration keys
+ will no longer have any effect.
+
+ GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Queue federation will now declare queues on the upstream side only if it does not already
+ exist. This makes it possible to federate pre-declared queues of different types.
+
+ Note that such setups should be considered edge cases. Queue federation was never meant
+ to federated queues of different types under the same name in different clusters.
+ Such setups could be useful in [Blue/Green deployment upgrade](https://www.rabbitmq.com/blue-green-upgrade.html) scenarios but
+ otherwise should be avoided.
+
+ GitHub issue: [#3107](https://github.com/rabbitmq/rabbitmq-server/pull/3107)
+
+
+### AuthN/AuthZ Backend HTTP Plugin
+
+#### Bug Fixes
+
+ * `auth_http.connection_timeout` and `auth_http.request_timeout` are two new configuration parameters that control HTTP client connection
+ and overall request timeouts. They both default to 15 seconds. The value can be increased for services that can occasionally slow down
+ significantly.
+
+ Contributed by Miłosz @SzumiecM Szumiec.
+
+ GitHub issue: [#3140](https://github.com/rabbitmq/rabbitmq-server/pull/3140)
+
+
+## Dependency Upgrades
+
+ * `jose` was updated [from `1.11.1` to `2b1d66b5f4`](https://github.com/potatosalad/erlang-jose/commit/2b1d66b5f4fbe33cb198149a8cb23895a2c877ea)
+ * `jsx` was updated [from `2.11.0` to `3.1.0`](https://github.com/talentdeficit/jsx/blob/main/CHANGES.md)
+ * `observer_cli` was updated [from `1.6.1` to `1.6.2`](https://github.com/zhongwencool/observer_cli/compare/1.6.1..1.6.2)
+
+
+## Source Code Archives
+
+To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.18.tar.xz`
+instead of the source tarball produced by GitHub.
diff --git a/release-notes/3.8.19.md b/release-notes/3.8.19.md
new file mode 100644
index 0000000000..adecfe43db
--- /dev/null
+++ b/release-notes/3.8.19.md
@@ -0,0 +1,79 @@
+## RabbitMQ 3.8.19
+
+RabbitMQ `3.8.19` is a maintenance release.
+
+### Obtaining Packages
+
+RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases), [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
+and [PackageCloud](https://packagecloud.io/rabbitmq).
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) and [supports Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision modern Erlang versions.
+
+
+## Upgrade and Compatibility Notes
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+If upgrading from a`3.7.x` release, see [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0)
+upgrade and compatibility notes first.
+
+If upgrading from a `3.6.x` or older [release series](https://www.rabbitmq.com/versions.html), first upgrade
+to [`3.7.27`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.27) and then to this version.
+
+
+## Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users)
+and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Enhancements
+
+ * Binding recovery on node startup is now more efficient. This means in clusters with a lot of
+ queues and/or bindings, nodes start quicker.
+
+ GitHub issue: [#3137](https://github.com/rabbitmq/rabbitmq-server/pull/3137)
+
+ * Plugin directory paths are now deduplicated, so if a single directory is specified
+ more than ones, the node won't complain about duplicate plugins.
+
+ GitHub issue: [#3155](https://github.com/rabbitmq/rabbitmq-server/issues/3155)
+
+ * Startup banner and log entries now use path separators more consistently on Windows.
+
+ Thanks to Linda @LindaLawton Lawton for pointing out the inconsistency.
+
+ GitHub issue: [#3149](https://github.com/rabbitmq/rabbitmq-server/issues/3149)
+
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * When dynamic Shovels are started the plugin now acquires a distributed lock.
+ This is generally not necessary but helps avoid duplicate Shovels being started
+ via import of a definition file on every cluster node during cluster formation.
+
+ GitHub issue: [#3167](https://github.com/rabbitmq/rabbitmq-server/pull/3167)
+
+
+## Dependency Upgrades
+
+No dependency changes in this release.
+
+
+## Source Code Archives
+
+To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.19.tar.xz`
+instead of the source tarball produced by GitHub.
diff --git a/release-notes/3.8.2.md b/release-notes/3.8.2.md
new file mode 100644
index 0000000000..4de05b195c
--- /dev/null
+++ b/release-notes/3.8.2.md
@@ -0,0 +1,204 @@
+## RabbitMQ 3.8.2
+
+RabbitMQ `3.8.2` is a maintenance release.
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.x` series is recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release from `3.7.6` or an older version, extra care has to be taken.
+
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded at the same time as Erlang**. Alternatively the node can be upgraded
+to `3.7.18` first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.x.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade
+and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades
+and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the
+[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes
+
+### Core Server
+
+#### Enhancements
+
+ * Raft implementation optimizations.
+
+ GitHub issues: [rabbitmq/ra#137](https://github.com/rabbitmq/ra/pull/137), [rabbitmq/ra#148](https://github.com/rabbitmq/ra/pull/148)
+
+ * Quorum queue optimization: enables local (not going through the leader) delivery from Raft followers
+ when appropriate and safe.
+
+ GitHub issues: [rabbitmq/rabbitmq-server#2146](https://github.com/rabbitmq/rabbitmq-server/pull/2146), [rabbitmq/ra#132](https://github.com/rabbitmq/ra/pull/132)
+
+ * If `x-queue-type` argument is not provided at queue declaration time, the type is assumed to be `classic`
+ instead of missing.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#341](https://github.com/rabbitmq/rabbitmq-common/issues/341)
+
+ * Quorum queue consumer timeout now can be configured using new style configuration file:
+
+ ``` ini
+ # Hard timeout for quorum queue consumer acknowledgemnts of two minutes
+ consumer_timeout = 120000
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2163](https://github.com/rabbitmq/rabbitmq-server/pull/2163)
+
+#### Bug Fixes
+
+ * A quorum queue could produce an empty Raft log segment if node is killed at a particular moment in time,
+ which would prevent the node from successfully recovering the log after restart.
+
+ GitHub issues: [rabbitmq/ra#138](https://github.com/rabbitmq/ra/pull/138)
+
+ * Quorum queue consumer count metric could be duplicated when reported via HTTP API or to a Prometheus scraper.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2176](https://github.com/rabbitmq/rabbitmq-server/pull/2176)
+
+
+### CLI Tools
+
+#### Enhancements
+
+ * It is now possible to [export and import definitions]() without the use of plugins with
+ `rabbitmqctl export_definitions` and `rabbitmqctl import_definitions`:
+
+ ``` sh
+ # export as a JSON file
+ rabbitmqctl export_definitions /path/to/target.file.json
+
+ # export as JSON to standard output and pipe to jq
+ rabbitmqctl export_definitions "-" | jq
+
+ # export as a compressed Erlang term file
+ rabbitmqctl export_definitions /path/to/target.file --format=erlang
+
+ # learn more
+ rabbitmqctl help export_definitions
+ ```
+
+ ``` sh
+ # import from a JSON file
+ rabbitmqctl import_definitions /path/to/target.file.json
+
+ # import JSON from standard input
+ cat /path/to/definitions.json | rabbitmqctl import_definitions "-"
+
+ # import from a compressed Erlang term file
+ rabbitmqctl import_definitions /path/to/target.file --format=erlang
+
+ # learn more
+ rabbitmqctl help import_definitions
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-management#749](https://github.com/rabbitmq/rabbitmq-management/issues/749)
+
+ * Entities with `amq.*` prefixes are now skipped during import instead of producing an error.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2170](https://github.com/rabbitmq/rabbitmq-server/issues/2170)
+
+#### Bug Fixes
+
+ * `rabbitmqctl await_startup` failed with an exception when RabbitMQ application was stopped but the
+ runtime (Erlang VM) was running.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2158](https://github.com/rabbitmq/rabbitmq-server/issues/2158)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Definition import via HTTP API could fail in if performed via HTTP API (but not management UI)
+ and contained operator policies.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#751](https://github.com/rabbitmq/rabbitmq-management/issues/751)
+
+#### Enhancements
+
+ * Metric aggregation optimizations.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-agent#84](https://github.com/rabbitmq/rabbitmq-management-agent/pull/84)
+
+
+### MQTT Plugin
+
+#### Enhancements
+
+ * Throughput improvements ranging from 14 to 60 percent depending on workload.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
+
+ * Throughput improvements and reduced CPU usage but slightly higher per connection RAM footprint.
+
+ GitHub issues: [rabbitmq/rabbitmq-mqtt#216](https://github.com/rabbitmq/rabbitmq-mqtt/pull/216), [rabbitmq/rabbitmq-mqtt#217](https://github.com/rabbitmq/rabbitmq-mqtt/pull/217)
+
+#### Bug Fixes
+
+ * Client ID tracker could produce an empty Raft log segment if node is killed at a particular moment in time,
+ which would prevent the node from successfully recovering the log after restart.
+
+ GitHub issues: [rabbitmq/discussions#4](https://github.com/rabbitmq/discussions/issues/4), [rabbitmq/ra#138](https://github.com/rabbitmq/ra/pull/138)
+
+ * Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#214](https://github.com/rabbitmq/rabbitmq-mqtt/issues/214)
+
+
+### AMQP 1.0 Plugin
+
+#### Enhancements
+
+ * Throughput improvements.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
+
+
+### STOMP Plugin
+
+#### Enhancements
+
+ * Throughput improvements.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
+
+
+### Web STOMP Plugin
+
+#### Enhancements
+
+ * Clients now can authenticate using an x.509 (TLS) certificate.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#116](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/116)
+
+
+### Prometheus Plugin
+
+ * A small number of queue metrics were not read from the metric store correctly.
+
+ GitHub issue: [rabbitmq/rabbitmq-prometheus#19](https://github.com/rabbitmq/rabbitmq-prometheus/issues/19)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker,
+not the plugins or the client libraries. Please download the archive named `rabbitmq-server-3.8.2.tar.xz`.
diff --git a/release-notes/3.8.3.md b/release-notes/3.8.3.md
new file mode 100644
index 0000000000..b45cfc6522
--- /dev/null
+++ b/release-notes/3.8.3.md
@@ -0,0 +1,305 @@
+## RabbitMQ 3.8.3
+
+RabbitMQ `3.8.3` is a maintenance release.
+
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.x` series is recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains what package repositories and tools can be used to provision latest patch versions of Erlang `21.3.x` and `22.x`.
+
+
+### Compatibility Notes
+
+#### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release from `3.7.6` or an older version, extra care has to be taken.
+
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later, RabbitMQ **must be upgraded at the same time as Erlang**.
+Alternatively the node can be upgraded to `3.7.18` first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.x.
+
+#### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+
+## Changes
+
+
+### Core Server
+
+#### Bug Fixes
+
+ * Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred, with an option to change the value or disable scheduled run entirely.
+ More frequent binary heap GC runs seem unneccesary on Erlang 22.
+
+ Contributed by Aleksander Nycz.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#343](https://github.com/rabbitmq/rabbitmq-common/pull/343)
+
+ * Eliminated an inefficiency in recovery of quorum queues with a backlog of messages.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2260](https://github.com/rabbitmq/rabbitmq-server/pull/2260)
+
+ * In a case where a node hosting a quorum queue replica went offline and was removed from the cluster,
+ and later came back, quorum queues could enter a loop of Raft leader elections.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2255](https://github.com/rabbitmq/rabbitmq-server/pull/2255)
+
+ * Quorum queues with a dead lettering could fail to recover.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2256](https://github.com/rabbitmq/rabbitmq-server/pull/2256)
+
+ * The node now can recover even if virtual host recovery terms file was corrupted.
+
+ Contributed by @tomyouyou.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2195](https://github.com/rabbitmq/rabbitmq-server/pull/2195)
+
+ * Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
+
+ Contributed by @tomyouyou.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2209](https://github.com/rabbitmq/rabbitmq-server/pull/2209)
+
+ * Syslog client is now started even when Syslog logging is configured only for some log sinks.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2044](https://github.com/rabbitmq/rabbitmq-server/issues/2044)
+
+ * Policies that quorum queues ignored were still listed as applied to them.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2210](https://github.com/rabbitmq/rabbitmq-server/pull/2210)
+
+ * If a quorum queue leader rebalancing operation timed out, CLI tools failed with an exception instead of a sensible internal API response.
+
+ Contributed by Gabriele Santomaggio.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2214](https://github.com/rabbitmq/rabbitmq-server/issues/2214)
+
+ * Handle timeout error on the rebalance function.
+
+ Contributed by Gabriele Santomaggio.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2218](https://github.com/rabbitmq/rabbitmq-server/pull/2218)
+
+ * Handle and raise protocol error for absent queues assumed to be alive.
+
+ Contributed by Ayanda Dube.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2233](https://github.com/rabbitmq/rabbitmq-server/pull/2233)
+
+#### Enhancements
+
+ * Some Proxy protocol errors are now logged at debug level.
+ This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2204](https://github.com/rabbitmq/rabbitmq-server/pull/2204)
+
+ * Quorum queue deletion operation no longer supports the "if unused" and "if empty" options.
+ They are typically used for transient queues don't make much sense for quorum ones.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2211](https://github.com/rabbitmq/rabbitmq-server/pull/2211)
+
+ * Do not treat applications that do not depend on rabbit as plugins.
+ This is especially important for applications that should not be stopped before rabbit is stopped.
+
+ GitHub Issue: [rabbitmq/rabbitmq-server#2212](https://github.com/rabbitmq/rabbitmq-server/pull/2212)
+
+ * RabbitMQ nodes will now gracefully shutdown when receiving a `SIGTERM` signal.
+ Previously the runtime would invoke a default handler that terminates the VM giving RabbitMQ no chance to execute its shutdown steps.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2222](https://github.com/rabbitmq/rabbitmq-server/issues/2222)
+
+ * Every cluster now features a persistent internal cluster ID that can be used by core features or plugins.
+ Unlike the human-readable cluster name, the value cannot be overriden by the user.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2226](https://github.com/rabbitmq/rabbitmq-server/pull/2226)
+
+ * Speedup execution of boot steps by a factor of 2N, where N is the number of attributes per step.
+
+ Contributed by Ayanda Dube.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2246](https://github.com/rabbitmq/rabbitmq-server/pull/2246)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmq-diagnostics status` failed to display the results when executed against a node that had high VM watermark set as an absolute value (using `vm_memory_high_watermark.absolute`).
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#395](https://github.com/rabbitmq/rabbitmq-cli/issues/395)
+
+#### Enhancements
+
+ * New health checks that can be used to determine if it's a good moment to shut down a node for an upgrade.
+
+ ``` sh
+ # Exits with a non-zero code if target node hosts leader replica of at least one queue
+ # that has out-of-sync mirror.
+ rabbitmq-diagnostics check_if_node_is_mirror_sync_critical
+
+ # Exits with a non-zero code if one or more quorum queues will lose online quorum
+ # should target node be shut down
+ rabbitmq-diagnostics check_if_node_is_quorum_critical
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#389](https://github.com/rabbitmq/rabbitmq-cli/issues/389)
+
+ * Some proxy protocol errors are now logged at debug level.
+ * This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2204](https://github.com/rabbitmq/rabbitmq-server/pull/2204)
+
+
+### Management and Management Agent Plugins
+
+#### Bug Fixes
+
+ * Consumer section on individual page was unintentionally hidden.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#758](https://github.com/rabbitmq/rabbitmq-management/issues/758)
+
+ * Fix queue-type select by adding unsafe-inline CSP policy.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#769](https://github.com/rabbitmq/rabbitmq-management/pull/769)
+
+#### Enhancements
+
+ * An undocumented "automagic login" feature on the login form was removed.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#748](https://github.com/rabbitmq/rabbitmq-management/pull/748)
+
+ * A new `POST /login` endpoint can be used by custom management UI login forms to authenticate the user and set the cookie.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#764](https://github.com/rabbitmq/rabbitmq-management/issues/764)
+
+ * A new `POST /rebalance/queues` endpoint that is the HTTP API equivalent of `rabbitmq-queues rebalance`
+
+ GitHub issue: [rabbitmq/rabbitmq-management#782](https://github.com/rabbitmq/rabbitmq-management/issues/782)
+
+ * Warning about a missing `handle.exe` in `PATH` on Windows is now only logged every 10 minutes.
+
+ GitHub issue: [rabbitmq/rabbitmq-management-agent#90](https://github.com/rabbitmq/rabbitmq-management-agent/issues/90)
+
+ * `rabbitmqadmin declare queue` now supports a new `queue_type` parameter to simplify declaration of quorum queues.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#761](https://github.com/rabbitmq/rabbitmq-management/issues/761)
+
+ * HTTP API request log entries now includes acting user.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#760](https://github.com/rabbitmq/rabbitmq-management/issues/760)
+
+ * [Content Security Policy headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) are now also set for static assets such as JavaScript files.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#767](https://github.com/rabbitmq/rabbitmq-management/issues/767)
+
+
+### Prometheus Plugin
+
+#### Enhancements
+
+ * Add option to aggregate metrics for channels, queues & connections. Metrics are now aggregated by default (safe by default).
+ This new behaviour can be disabled via `prometheus.return_per_object_metrics = true` config.
+
+ GitHub issue: [rabbitmq/rabbitmq-prometheus#28](https://github.com/rabbitmq/rabbitmq-prometheus/issues/28)
+
+
+### Kubernetes Peer Discovery Plugin
+
+#### Enhancements
+
+ * The plugin will now notify [Kubernetes API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#event-v1-core) of node startup and peer stop/unavailability events.
+
+ Contributed by Gabriele Santomaggio.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#61](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/pull/61)
+
+
+### Etcd Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * Only run healthcheck when backend is configured.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#21](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/pull/21)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Use vhost to delete federated exchange.
+
+ [Reported by Brett Janer](https://groups.google.com/forum/#!topic/rabbitmq-users/nfulekZc_OQ/discussion).
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#99](https://github.com/rabbitmq/rabbitmq-federation/pull/99)
+
+#### Enhancements
+
+ * "Command" operations such as binding propagation now use a separate channel for all links, preventing latency spikes for asynchronous operations (such as message publishing) (a head-of-line blocking problem).
+
+ Contributed by Grigory Starinkin.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#97](https://github.com/rabbitmq/rabbitmq-federation/pull/97)
+
+
+### Auth Backend OAuth 2 Plugin
+
+ * Additional scopes can be fetched from a predefined JWT token field.
+ Those scopes will be combined with the standard scopes field.
+
+ Contributed by @papugamichal.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-oauth2#41](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2/pull/41)
+
+
+### Trust Store Plugin
+
+#### Enhancements
+
+ * HTTPS certificate provider will not longer terminate if upstream service response contains invalid JSON.
+
+ GitHub issue: [rabbitmq/rabbitmq-trust-store#73](https://github.com/rabbitmq/rabbitmq-trust-store/issues/73)
+
+
+### MQTT Plugin
+
+#### Enhancements
+
+ * Avoid blocking when registering or unregistering a client ID.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#226](https://github.com/rabbitmq/rabbitmq-mqtt/pull/226)
+
+
+### AMQP 1.0 Client Plugin
+
+#### Enhancements
+
+ * Handle heartbeat in `close_sent/2`.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#44](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/pull/44)
+
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.3.tar.xz`.
+
+
+
+## Dependency upgrades
+
+ * observer-cli was upgraded [from v1.5.2 to v1.5.3](https://github.com/zhongwencool/observer_cli/compare/1.5.2...1.5.3)
+ * prometheus.erl was upgraded [from v4.4.0 to v4.5.0](https://github.com/deadtrickster/prometheus.erl/compare/v4.4.0...v4.5.0)
+ * ra was upgraded [from v1.0.5 to v1.0.8](https://github.com/rabbitmq/ra/compare/v1.0.5...v1.0.8)
diff --git a/release-notes/3.8.4.md b/release-notes/3.8.4.md
new file mode 100644
index 0000000000..13e8d55492
--- /dev/null
+++ b/release-notes/3.8.4.md
@@ -0,0 +1,413 @@
+## RabbitMQ 3.8.4
+
+RabbitMQ `3.8.4` is a maintenance release. It focuses on bug fixes and usability
+improvements. etcd [peer discovery](https://www.rabbitmq.com/cluster-formation.html) plugin includes potentially breaking changes which are covered in detail below.
+
+This is the first release to be [fully compatible](https://groups.google.com/forum/#!topic/rabbitmq-users/wlPIWz3UYHQ) with [Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.3` or `23.0` releases are recommended.
+
+This is the first release to officially support Erlang 23. Compared to `3.8.3`, which
+generally works as expected on Erlang 23, [Prometheus monitoring](https://www.rabbitmq.com/prometheus.html) plugin had to
+be adapted to support a memory allocator metric format that has changed compared to
+earlier Erlang releases.
+
+There is one **remaining known Erlang 23 incompatibility**: `rabbitmq-diagnostics observer` **will fail** on Erlang 23.
+This will be addressed in a future release.
+The root cause is the same memory allocator metric change.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Raft Segment File Format Change
+
+In earlier `3.8.x` versions, Raft log segment files were unintentionally limited to 4 GiB,
+which can be problematic for environments that use quorum queues and medimum to large message
+payloads.
+
+This releases removes the limitation by changing the segment file on-disk format.
+While **no action is required** for upgrading to `3.8.4`, operators should keep in mind
+that segment files produced by `3.8.4` nodes won't be readable by earlier versions.
+In other words, this release **does not support downgrading** to earlier `3.8.x` versions.
+
+### Custom Prefixless Node Name
+
+Environments that override node name using `NODENAME` in `rabbitmq-env.conf` may have to
+also define `RABBITMQ_NODENAME` in the same file for CLI tools to pick the value up:
+
+``` ini
+# how node name is typically overridden in rabbitmq-env.conf[.bat] files
+NODENAME=rabbit@custom.hostname
+# for CLI tools in 3.8.4, otherwise not necessary
+RABBITMQ_NODENAME=rabbit@custom.hostname
+```
+
+This behaviour change compared to earlier `3.8.x` version was not intentional and was
+[corrected for `3.8.5`](https://github.com/rabbitmq/rabbitmq-cli/pull/422).
+
+Alternatively, it is possible to provide target node name using a command line flag:
+
+``` shell
+rabbitmq-diagnostics -n rabbit@custom.hostname status
+```
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release from `3.7.6` or an older version, extra care has to be taken.
+
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later, RabbitMQ **must be upgraded at the same time as Erlang**.
+Alternatively the node can be upgraded to `3.7.18` first, then Erlang 22.x or 23.x, then RabbitMQ to most recent
+3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * A node recovering a large disk backlog did not throttle its recovery activity, potentially
+ using large amounts of memory at peak during recovery.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2254](https://github.com/rabbitmq/rabbitmq-server/issues/2254)
+
+ * Raft log segment files were unintentionally limited to 4 GiB in size, which could result
+ in failing log flush operations in environments where medium and large messages were published to
+ quorum queues.
+
+ This problem is addressed by a change to the on disk format of Raft log segment files.
+ The change is irreversible, meaning that **there is no downgrade path** from `3.8.4` to earlier releases.
+
+ GitHub issue: [rabbitmq/ra#176](https://github.com/rabbitmq/ra/pull/176)
+
+ * A reached delivery limit on a quorum queue could result in an exception for polling (`basic.get`) consumers.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2330](https://github.com/rabbitmq/rabbitmq-server/pull/2330)
+
+ * A publish to a quorum queue that happened to not have an elected leader failed with an exception.
+ Such operations are generally expected to be retried by channels.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2295](https://github.com/rabbitmq/rabbitmq-server/pull/2295)
+
+ * Separate authN and authZ backends did not behave as expected when `rabbitmq_auth_backend_cache` was enabled.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2322](https://github.com/rabbitmq/rabbitmq-server/issues/2322)
+
+ * Handle a condition where epmd connection was closed during node registration.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2332](https://github.com/rabbitmq/rabbitmq-server/pull/2332)
+
+ * Registering a quorum queue consumer did not result in a `consumer.created` event like it would
+ for classic queues.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2341](https://github.com/rabbitmq/rabbitmq-server/issues/2341)
+
+#### Enhancements
+
+ * Reduced peak memory use of quorum queues that go idle (not under constant load).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2272](https://github.com/rabbitmq/rabbitmq-server/pull/2272)
+
+ * Change default configuration values for quorum queues to improve publisher back pressure when under heavy load.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2334](https://github.com/rabbitmq/rabbitmq-server/pull/2334)
+
+ * Definition import is now partially concurrent, improving CPU utilisation and reducing the amount of time
+ taken to import a large definition file.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2224](https://github.com/rabbitmq/rabbitmq-server/issues/2224)
+
+ * Improved configuration merging for cases when multiple files are used, e.g. `rabbitmq.conf` plus
+ `advanced.config` or even multiple `.conf` files (the latter is an experimental feature).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2277](https://github.com/rabbitmq/rabbitmq-server/pull/2277)
+
+ * More peer discovery errors are retried.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#1627](https://github.com/rabbitmq/rabbitmq-server/issues/1627)
+
+ * Allow product name, version and MOTD to be overwritten via environment variables.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2247](https://github.com/rabbitmq/rabbitmq-server/pull/2247)
+
+ * Improve display of product name and version.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2326](https://github.com/rabbitmq/rabbitmq-server/pull/2326)
+
+ * Make RabbitMQ a regular Erlang/OTP application.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2180](https://github.com/rabbitmq/rabbitmq-server/issues/2180)
+
+
+### CLI Tools
+
+#### Enhancements
+
+ * New `rabbitmq-upgrade` commands: `await_online_quorum_plus_one` and `await_online_synchronized_mirror`.
+ The commands will wait for a safe quorum of nodes (quorum queues) or a synchronised leader replica (classic mirrored queues)
+ to be or come online within a period of time.
+
+ ``` sh
+ # Exits with a non-zero exit code if there is not a quorum + 1 of nodes online for all
+ # quorum queues within 120 seconds (default timeout)
+ rabbitmq-upgrade await_online_quorum_plus_one
+ # Will wait for a quorum + 1 of nodes to be online for all quorum queues for 0 seconds...
+
+ # The timeout can be adjusted via the -t flag:
+ rabbitmq-upgrade await_online_quorum_plus_one -t 60
+ # Will wait for a quorum + 1 of nodes to be online for all quorum queues for 60 seconds...
+
+ # There is an equivalent command for classic mirrored queues
+ rabbitmq-upgrade await_online_synchronized_mirror
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#409](https://github.com/rabbitmq/rabbitmq-cli/issues/409)
+
+ * New `rabbitmq-diagnostics` command: `os_env`
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#412](https://github.com/rabbitmq/rabbitmq-cli/pull/412)
+
+
+### Prometheus Plugin
+
+#### Enhancements
+
+ * Compatibility with Erlang 23 memory allocator metric format.
+
+ GitHub issue: [rabbitmq/rabbitmq-prometheus#42](https://github.com/rabbitmq/rabbitmq-prometheus/issues/42)
+
+ * Node color labeling in Grafana dashboards now works out of the box with one more common naming scheme.
+
+ GitHub issue: [rabbitmq/rabbitmq-prometheus#33](https://github.com/rabbitmq/rabbitmq-prometheus/issues/33)
+
+ Contributed by @Aakcht.
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Credential obfuscation now uses the same [shared secret](https://www.rabbitmq.com/clustering.html#erlang-cookie)
+ on all nodes to make sure that a link running on node A can be restarted by a command against node B.
+ Previously each node used its own generated secret for obfuscation, which means certain operations
+ on links originated on other nodes were not possible.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2351](https://github.com/rabbitmq/rabbitmq-server/pull/2351)
+
+#### Enhancements
+
+ * Internal resources cleanup is now more selective on abnormal link termination. A new upstream parameter, `resource-cleanup-mode`,
+ can be set to `"never"` used to prevent internal queues from being deleted by exchange federation links on termination.
+ Use this when data safety is more important than protection from resource leaks. It then will be up to the operator to make
+ sure such resources are periodically deleted or use a suitable [TTL](https://www.rabbitmq.com/ttl.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#105](https://github.com/rabbitmq/rabbitmq-federation/issues/105)
+
+ * SNI is now enabled by default for TLS-enabled connections.
+
+ Contributed by Carl Hörberg (CloudAMQP).
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#132](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/132)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * Credential obfuscation now uses the same [shared secret](https://www.rabbitmq.com/clustering.html#erlang-cookie)
+ on all nodes to make sure that a shovel running on node A can be restarted by a command against node B.
+ Previously each node used its own generated secret for obfuscation, which means certain operations
+ on shovels originated on other nodes were not possible.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2351](https://github.com/rabbitmq/rabbitmq-server/pull/2351)
+
+ * Shovels are now correctly removed even when deletion commands are executed against a different node
+ (not the one on which the target Shovel has been created).
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#68](https://github.com/rabbitmq/rabbitmq-shovel/issues/68)
+
+ * More negative AMQP 1.0 endpoint connection responses are handled.
+
+ Contributed by Renaud @bougueil Mariana.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#48](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/pull/48)
+
+ * Messages forwarded from an AMQP 0-9-1 source to an AMQP 1.0 destination now propagates more
+ message properties.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#70](https://github.com/rabbitmq/rabbitmq-shovel/issues/70)
+
+ * Pre-3.7 `delete-after` Shovel property is now considered as well as the new `src-delete-after` property.
+
+ GitHub issue: [rabbitmq/rabbitmq-shovel#72](https://github.com/rabbitmq/rabbitmq-shovel/issues/72)
+
+#### Enhancements
+
+ * Revisited [Shovel documentation guides](https://www.rabbitmq.com/shovel.html).
+
+ * SNI is now enabled by default for TLS-enabled connections.
+
+ Contributed by Carl Hörberg (CloudAMQP).
+
+ GitHub issue: [rabbitmq/rabbitmq-erlang-client#132](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/132)
+
+
+### Management Plugin
+
+#### Enhancements
+
+ * More frequent garbage collection by stats DB cache processes in environments where HTTP API queries produced
+ large data sets.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#788](https://github.com/rabbitmq/rabbitmq-management/pull/788)
+
+ * `rabbitmqadmin` CLI switches now take precedence over config file values. This is more typical
+ for command line tools.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#804](https://github.com/rabbitmq/rabbitmq-management/issues/804)
+
+ * `rabbitmqadmin` binding deletion now defaults to the same property key value as binding creation.
+
+ Contributed by Ivan Kaloyanov.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#779](https://github.com/rabbitmq/rabbitmq-management/pull/779)
+
+#### Bug Fixes
+
+ * TLS settings of this plugin now supersede those of RabbitMQ core listeners. In more practical terms,
+ it is now possible to use a separate set of certificate/private key pairs for management UI and
+ the HTTP API.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#800](https://github.com/rabbitmq/rabbitmq-management/issues/800)
+
+ * Queue page failed to render with a `TypeError` when stats were disabled.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#787](https://github.com/rabbitmq/rabbitmq-management/issues/787)
+
+ * `rabbitmqadmin import` mangled non-ASCII characters.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#785](https://github.com/rabbitmq/rabbitmq-management/issues/785)
+
+ * `rabbitmqadmin`'s pretty JSON format was not compatible with Python 3.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#797](https://github.com/rabbitmq/rabbitmq-management/pull/797)
+
+
+### etcd Peer Discovery Plugin
+
+This release effectively replaces the etcd-based peer discovery plugin with a new one which
+[uses etcd v3 API](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/22) and a different API client.
+etcd v2 API has been effectively deprecated and requires extra effort to enable with the latest etcd release,
+so this was **treated as a medium severity bug** and ships in a patch release.
+
+There are several new features that come with this new client. Existing already formed clusters won't have to
+change anything in the short term as [peer discovery only runs during cluster formation](https://www.rabbitmq.com/cluster-formation.html#peer-discovery-how-does-it-work).
+All configuration keys of the original plugin are still accepted by the plugin, and most will have
+the expected or semantically similar effect.
+
+When provisioning new clusters, etcd 3.4+ will now be required.
+
+#### Enhancements
+
+ * The plugin now uses an etcd v3 API client and v3 gRPC-based API. This includes using a forward-compatible API version,
+ natively-provided endpoint for locking instead of reinventing one, and other improvements listed below.
+ It also means that **etcd 3.4+** is now required by the plugin.
+
+ Unless specified otherwise, all other configuration settings of the original plugin are still supported.
+
+ `rabbitmq-autocluster`-era environment variable-based configuration of the plugin has been removed. Use the config
+ file-based one instead.
+
+ `cluster_formation.etcd.scheme` configuration key won't fail validation but will no longer have any effect.
+ `cluster_formation.etcd.key_prefix` will be used but only after the hardcoded `/rabbitmq/discovery`
+ and `/rabbitmq/locks` prefixes. Having a predictable key prefix is more important in this version of the etcd API.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#22](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/22)
+
+ * Multiple etcd endpoings now can be specified as connection candidates. Previously used endpoint configuration keys,
+ `cluster_formation.etcd.host` and `cluster_formation.etcd.port`, are still supported and added to the final list of
+ endpoints.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#7](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/7)
+
+ * Support for TLS-enabled connections to etcd.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#24](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/24)
+
+ * Support for [etcd authentication](https://etcd.io/docs/v3.4.0/op-guide/authentication/).
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#6](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/6)
+
+
+### Consul Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * In case `CONSUL_PORT` is set to a blank string, the plugin will fall back to the default port value
+ instead of failing with an exception. Note that the use of environment variables over config file
+ keys is **highly discouraged** and will be removed in a future version.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#41](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/41)
+
+
+### LDAP Plugin
+
+#### Enhancements
+
+ * Setting `` to `0` will force a new connection to be opened for every operation. This helps work around
+ obscure issues likely caused by per-connection caching in some LDAP implementations.
+ Users of this setting are expected to also use the [rabbitmq-auth-backend-cache](https://github.com/rabbitmq/rabbitmq-auth-backend-cache) plugin.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#120](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/120)
+
+
+### OAuth 2.0 Plugin
+
+#### Enhancements
+
+ * When token key ID is missing in configuration, a warning will be logged to
+ make troubleshooting easier.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-oauth2#44](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2/issues/44)
+
+
+### Trust Store Plugin
+
+#### Bug Fixes
+
+ * Some debug messages were unintentionally logged as errors.
+
+ Contributed by @mgrafl.
+
+ GitHub issue: [rabbitmq/rabbitmq-trust-store#75](https://github.com/rabbitmq/rabbitmq-trust-store/issues/75)
+
+
+## Dependency Upgrades
+
+ * New dependency: [eetcd](https://github.com/zhongwencool/eetcd/)
+ * ra was upgraded [from v1.0.8 to v1.1.2](https://github.com/rabbitmq/ra/compare/v1.0.8...v1.1.2)
+ * `credentials_obfuscation` was upgraded [from v1.0.0 to v2.0.0](https://github.com/rabbitmq/credentials-obfuscation/compare/v1.0.0...v2.0.0)
+ * Prometheus client was upgraded [from 4.5.0 to 4.6.0](https://github.com/deadtrickster/prometheus.erl/compare/v4.5.0...v4.6.0)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.4.tar.xz`.
diff --git a/release-notes/3.8.5.md b/release-notes/3.8.5.md
new file mode 100644
index 0000000000..fc4457dc8b
--- /dev/null
+++ b/release-notes/3.8.5.md
@@ -0,0 +1,315 @@
+## RabbitMQ 3.8.5
+
+RabbitMQ `3.8.5` is a maintenance release.
+It focuses on bug fixes and usability improvements.
+
+This release is [compatible](https://groups.google.com/forum/#!topic/rabbitmq-users/wlPIWz3UYHQ) with [Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.3` or `23.0` releases are recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Deprecations
+
+This release deprecates `rabbitmq-diagnostics node_health_check` (née `rabbitmqctl node_health_check`).
+See the section on CLI tools changes below to learn more.
+
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release from `3.7.6` or an older version, extra care has to be taken.
+
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` first, then Erlang 22.x or 23.x, then RabbitMQ to most recent
+3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * In `3.8.4`, [`RABBITMQ_CONF_ENV_FILE`](https://www.rabbitmq.com/configure.html#customise-environment) value was ignored on Windows.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#392](https://github.com/rabbitmq/rabbitmq-common/issues/392)
+
+ * Message store shutdown now uses a much higher timeout (up to 10 minutes instead of 30 seconds).
+
+ In environments with large message backlogs this means that the chances of queue indices rebuilding
+ after node restart is now substantially lower.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2324](https://github.com/rabbitmq/rabbitmq-server/issues/2324)
+
+ * On Windows, `RABBITMQ_HOME` locations with brackets are supported again.
+
+ Contributed by @twjs76.
+
+ GitHub issues: [rabbitmq/rabbitmq-server#2371](https://github.com/rabbitmq/rabbitmq-server/pull/2371),
+ [rabbitmq/rabbitmq-server#1756](https://github.com/rabbitmq/rabbitmq-server/issues/1756)
+
+ * `RABBITMQ_LOG_BASE` was not respected in some installations.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#131](https://github.com/rabbitmq/rabbitmq-server-release/issues/131)
+
+ * Setting `RABBITMQ_QUORUM_DIR` to a location outside of node's data directory for a new node resulted
+ in feature flags not being implicitly enabled on boot.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2317](https://github.com/rabbitmq/rabbitmq-server/issues/2317)
+
+ * `net_ticktime` and other Erlang distribution settings set in `rabbitmq.conf` were ignored because
+ distribution was started too early on node boot.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2377](https://github.com/rabbitmq/rabbitmq-server/issues/2377)
+
+#### Enhancements
+
+ * Raft data directory now can be configured using `ra.data_dir` configuration key:
+
+ ``` ini
+ ra.data_dir = /path/to/raft/data/directory
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2354](https://github.com/rabbitmq/rabbitmq-server/issues/2354)
+
+ * User and permission management operations now produce clear log entries when they succeed,
+ not just when they fail. This helps auditing in environments that have stricter security and audit
+ requirements.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2363](https://github.com/rabbitmq/rabbitmq-server/issues/2363)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * CLI tools now take `NODENAME` into account as well as `RABBITMQ_NODENAME`, just like the server does.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#421](https://github.com/rabbitmq/rabbitmq-cli/issues/421)
+
+ * `rabbitmq-diagnostics observer` is now compatible with Erlang 23.
+
+ GitHub issue: [zhongwencool/observer_cli#68](https://github.com/zhongwencool/observer_cli/issues/68)
+
+#### Deprecations
+
+ * `rabbitmq-diagnostics node_health_check` (née `rabbitmqctl node_health_check`) is **deprecated** and will be
+ removed in a future version.
+
+ `node_health_check` (as well as its HTTP API counterpart) is an opinionated, intrusive, aspirational attempt
+ at producing One True Health Checkâ„¢ for RabbitMQ that was envisioned and added to CLI tools around 2015-2016.
+
+ It has proven to be too prone to false positives, can consume a prohibitive
+ amount of CPU and runtime scheduler resources, and tends to be too opinionated
+ for many technical operations teams.
+
+ A much more modular, pick-and-choose approach [has been adopted since](https://www.rabbitmq.com/monitoring.html#health-checks)
+ but this command has never been deprecated. Until now.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#426](https://github.com/rabbitmq/rabbitmq-cli/issues/426)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * [Definition import](https://www.rabbitmq.com/definitions.html) was not performed when `management.load_definitions = /path/to/definitions/file.json`
+ was used, although it was for its newer counterpart, `load_definitions = /path/to/definitions/file.json`.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#818](https://github.com/rabbitmq/rabbitmq-management/issues/818)
+
+ * jQuery was upgraded to `3.5.1`.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#815](https://github.com/rabbitmq/rabbitmq-management/issues/815)
+
+
+### Consistent Hashing Exchange
+
+### Bug Fixes
+
+ * Due to [later plugin activation](https://github.com/rabbitmq/rabbitmq-server/issues/2381) in `3.8.4`, durable
+ consistent hashing exchanges were skipped during topology recovery. In practice that meant these exchanges
+ did not route messages published to it.
+
+ Now the plugin reconstructs consistent hashing ring manually for every durable exchange of this type and
+ routing functions as expected.
+
+ Kudos to Rob Gerritsen and Raimond @rai69 Kuipers for helping with discovery of this issue.
+
+ GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#45](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/45)
+
+### Enhancements
+
+ * `rabbitmq-diagnostics consistent_hash_exchange_ring_state <exchange>` is a new CLI command that makes it
+ easy to inspect consistent hashing ring state for an exchange.
+
+ GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#47](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/pull/47)
+
+
+### MQTT Plugin
+
+#### Bug Fixes
+
+ * Client ID tracker operation timeout has been increased from default 5 seconds.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#231](https://github.com/rabbitmq/rabbitmq-mqtt/pull/231)
+
+
+### Web STOMP Plugin
+
+#### Enhacenements
+
+ * More graceful handling of incorrect or unparseable data.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#121](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/121)
+
+
+### AWS Peer Discovery Plugin
+
+#### Enhancements
+
+ * AWS peer discovery backend can be specified as `aws`:
+
+ ``` ini
+ cluster_formation.peer_discovery_backend = aws
+ ```
+
+ as well as the module name, or plugin name (`rabbitmq_peer_discovery_aws`):
+
+ ``` ini
+ cluster_formation.peer_discovery_backend = rabbit_peer_discovery_aws
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#34](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/34)
+
+
+### Consul Peer Discovery Plugin
+
+#### Enhancements
+
+ * Consul peer discovery backend can be specified as `consul`:
+
+ ``` ini
+ cluster_formation.peer_discovery_backend = consul
+ ```
+
+ as well as the module name, or plugin name (`rabbitmq_peer_discovery_consul`):
+
+ ``` ini
+ cluster_formation.peer_discovery_backend = rabbit_peer_discovery_consul
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#43](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/43)
+
+
+### etcd Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * Locking operation against `etcd` v3 API failed with a `case_clause`.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#30](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/30)
+
+#### Enhancements
+
+ * etcd peer discovery backend can be specified as `etcd`:
+
+ ``` ini
+ cluster_formation.peer_discovery_backend = etcd
+ ```
+
+ as well as the module name, or plugin name (`rabbitmq_peer_discovery_etcd`):
+
+ ``` ini
+ cluster_formation.peer_discovery_backend = rabbit_peer_discovery_etcd
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#26](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/26)
+
+
+### Kubernetes Peer Discovery Plugin
+
+#### Enhancements
+
+ * Kubernetes peer discovery backend can be specified as `k8s` or `kubernetes`:
+
+ ``` ini
+ cluster_formation.peer_discovery_backend = k8s
+ ```
+
+ as well as the module name, or plugin name (`rabbitmq_peer_discovery_k8s`):
+
+ ``` ini
+ cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#65](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/65)
+
+
+### Web STOMP Plugin
+
+#### Enhancements
+
+ * [Basic HTTP auth setting](https://www.rabbitmq.com/web-stomp.html) is now exposed to new style configuration:
+
+ ``` ini
+ web_stomp.use_http_auth = true
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#119](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/119)
+
+
+## Debian Package
+
+### Enhancements
+
+ * Invocations of `rabbitmqctl wait` in service management scripts now use a timeout.
+
+ Contributed by Nicolas @nicolasbock Bock.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#129](https://github.com/rabbitmq/rabbitmq-server-release/pull/129)
+
+
+## RPM Package
+
+### Enhancements
+
+ * Invocations of `rabbitmqctl wait` in service management scripts now use a timeout.
+
+ Contributed by Nicolas @nicolasbock Bock.
+
+ GitHub issue: [rabbitmq/rabbitmq-server-release#129](https://github.com/rabbitmq/rabbitmq-server-release/pull/129)
+
+
+## Dependency Upgrades
+
+ * `recon` was upgraded [from 2.5.0 to 2.5.1](https://github.com/ferd/recon/compare/2.5.0...2.5.1)
+ * `observer_cli` was upgraded [from 1.5.3 to 1.5.4](https://github.com/zhongwencool/observer_cli/compare/1.5.3...1.5.4)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.5.tar.xz`.
diff --git a/release-notes/3.8.6.md b/release-notes/3.8.6.md
new file mode 100644
index 0000000000..97cea05d40
--- /dev/null
+++ b/release-notes/3.8.6.md
@@ -0,0 +1,306 @@
+## RabbitMQ 3.8.6
+
+RabbitMQ `3.8.6` is a maintenance release.
+It focuses on bug fixes and usability improvements.
+
+### RabbitMQ Adopts the Mozilla Public License 2.0
+
+Starting with this release, core RabbitMQ server and all [tier 1 plugins](https://www.rabbitmq.com/plugins.html#plugin-tiers)
+are [relicensed](https://github.com/rabbitmq/rabbitmq-server/issues/2372) under the [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/)
+(previously used license: the Mozilla Public License 1.1).
+
+The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
+See the [MPL 2.0 FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) and
+[MPL 2.0 Revision and Changes FAQ](https://www.mozilla.org/en-US/MPL/2.0/Revision-FAQ/) to learn more.
+
+### Erlang 23 Compatibility
+
+This release is [compatible](https://groups.google.com/forum/#!topic/rabbitmq-users/wlPIWz3UYHQ) with [Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.3` or `23.0` releases are recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Deprecations
+
+This release removed HiPE precompilation support. HiPE has been deprecated and
+mostly unmaintained since Erlang 22, and will be replaced with a JIT [in Erlang 24](http://erlang.org/pipermail/erlang-questions/2020-June/099645.html)
+in 2021.
+
+``` shell
+rabbitmqctl hipe_compile
+```
+
+and
+
+``` ini
+hipe_compile = true
+```
+
+are both retained for backwards compatibility but they won't have any effect.
+
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release from `3.7.6` or an older version, extra care has to be taken.
+
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` first, then Erlang 22.x or 23.x, then RabbitMQ to most recent
+3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### License Change
+
+RabbitMQ has been [relicensed](https://github.com/rabbitmq/rabbitmq-server/issues/2372) under the [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/)
+(previously used license: the Mozilla Public License 1.1).
+
+The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
+See the [MPL 2.0 FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) and
+[MPL 2.0 Revision and Changes FAQ](https://www.mozilla.org/en-US/MPL/2.0/Revision-FAQ/) to learn more.
+
+#### Deprecations
+
+ * Removed HiPE pre-compilation support.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2392](https://github.com/rabbitmq/rabbitmq-server/pull/2392)
+
+#### Bug Fixes
+
+ * Definition import on node boot (via the **built-in `load_definitions` configuration setting**) is now performed
+ after plugins are enabled.
+
+ This resolves a long-standing chicken-and-egg dependency problem that prevented definitions
+ that depend on plugins being functional from being successfully imported during node boot.
+
+ Note that definition import via the management plugin (`management.load_definitions`) is still
+ performed during management plugin activation time and therefore **can not offer any guarantees**
+ as some plugins may be enabled after the management one.
+
+ Some affected features include
+
+ * [federation upstreams](https://www.rabbitmq.com/federation.html#getting-started)
+ * [dynamic shovels](https://www.rabbitmq.com/shovel-dynamic.html)
+ * exchanges of types provided by plugins such as [rabbitmq-consistent-hash-exchange](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange)
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2384](https://github.com/rabbitmq/rabbitmq-server/issues/2384)
+
+ * Similarly, client connection listeners (both TCP and TLS-enabled) are now started after
+ plugin activation. This makes certain configurations that use the trust store plugin
+ behave as expected.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2405](https://github.com/rabbitmq/rabbitmq-server/issues/2405)
+
+ * Environment variables prefixed with `RABBITMQ_` were ignored when used in the [`rabbitmq-env.conf` file](),
+ while their prefixless counterparts worked as expected.
+
+ GitHub issue: [rabbitmq/rabbitmq-common#401](https://github.com/rabbitmq/rabbitmq-common/issues/401)
+
+#### Enhancements
+
+ * `rabbitmq.conf` config parser now accepts lines that only consist of whitespace.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2393](https://github.com/rabbitmq/rabbitmq-server/pull/2393)
+
+
+### CLI Tools
+
+#### Deprecations
+
+ * `rabbitmqctl hipe_compile` is now a no-op. HiPE support has been deprecated in Erlang 22
+ [will be removed in Erlang 24](http://erlang.org/pipermail/erlang-questions/2020-June/099645.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#433](https://github.com/rabbitmq/rabbitmq-cli/pull/433)
+
+ * The use of the `` environment variable to configure the [shared secret](https://www.rabbitmq.com/cli.html#erlang-cookie) is now deprecated.
+ Use the [local file](https://www.rabbitmq.com/cli.html#cookie-file-locations) option instead or, if the value absolutely must be provided on the command line,
+ the `--erlang-cookie [value]` switch.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#443](https://github.com/rabbitmq/rabbitmq-cli/issues/443)
+
+#### Bug Fixes
+
+ * `rabbitmqctl export_definitions` incorrectly serialised runtime parameter values.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#435](https://github.com/rabbitmq/rabbitmq-cli/issues/435)
+
+ * `CTL_ERL_ARGS` environment variable was unintentionally ignored starting with version `3.8.4`.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2394](https://github.com/rabbitmq/rabbitmq-server/issues/2394)
+
+ * `[command] --help` and `help [command]` output had minor unintentional inconsistencies.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#437](https://github.com/rabbitmq/rabbitmq-cli/pull/437)
+
+#### Enhancements
+
+ * `rabbitmq-queues check_if_node_is_quorum_critical` and `rabbitmq-queues check_if_node_is_mirror_sync_critical` checks
+ have been adjusted. They now special case single node clusters as the check does not make much sense
+ in those environments.
+
+ `rabbitmq-queues check_if_node_is_mirror_sync_critical` now also excludes exclusive queues from
+ consideration as they, even if matched by a policy that enables classic queue mirroring,
+ would not actually be mirrored.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#432](https://github.com/rabbitmq/rabbitmq-cli/issues/432)
+
+ * `rabbitmq-diagnostics status` now includes the total amount of memory used by the node in its
+ regular output. It was previously only available when `--formatter=json` switch was used.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#449](https://github.com/rabbitmq/rabbitmq-cli/pull/449)
+
+ * `rabbitmq-diagnostics erlang_cookie_sources` is a new command that helps with troubleshooting
+ CLI tool authentication to nodes by listing relevant environment information about the
+ [shared secret](https://www.rabbitmq.com/cli.html#erlang-cookie). The actual secret
+ **is not displayed** for obvious security reasons.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#446](https://github.com/rabbitmq/rabbitmq-cli/pull/446)
+
+* `rabbitmqct eval_file` is a new command that evaluates Erlang code expressions from a local file
+ on the target node:
+
+ ``` shell
+ rabbitmqctl eval_file /path/to/code_snippet.escript
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#438](https://github.com/rabbitmq/rabbitmq-cli/issues/438)
+
+ * `rabbitmqct eval` now accepts code snippets from standard input:
+
+ ``` shell
+ rabbitmqctl eval <<EOF
+ io:format("~p~n", [
+ rabbit:product_info()
+ ]).
+ ```
+
+ ``` shell
+ rabbitmqctl eval < code_snippet.escript
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#438](https://github.com/rabbitmq/rabbitmq-cli/issues/438)
+
+ * `rabbitmq-diagnostics resolve_hostname` is a new command that resolves a hostname either locally
+ or on the node, and returns the resolved IPv4 or IPv6 addresses.
+
+ The command can help quickly detect hostname resolution irregularities on a node, including
+ the effects of [Erlang inetrc file](https://erlang.org/doc/apps/erts/inet_cfg.html) settings.
+ Hostname resolution issues can cause CLI tools, cluster formation and peer reconnection to
+ not work as expected.
+
+ Some examples:
+
+ ``` shell
+ rabbitmq-diagnostics resolve_hostname "google.com" --address-family ipv4
+
+ rabbitmq-diagnostics resolve_hostname "google.com" --address-family ipv6 --offline
+ ```
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#431](https://github.com/rabbitmq/rabbitmq-cli/pull/431)
+
+ * All CLI tools now provide an `autocomplete [prefix]` command that lists command completion
+ options. It is intended to be used to implement autocompletion of command names in shells.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#439](https://github.com/rabbitmq/rabbitmq-cli/issues/439)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * The plugin could send the `authorization` header as `null` in some cases before a successful login.
+
+ Contributed by @furkhat.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#833](https://github.com/rabbitmq/rabbitmq-management/pull/833)
+
+#### Enhancements
+
+ * The UI now uses more human-friendly information units when displaying client network traffic rate values.
+
+ Contribute by @seadog007.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#827](https://github.com/rabbitmq/rabbitmq-management/pull/827)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * In environments where `rabbitmq_federation.pgroup_name_cluster_id` is not set or set to `undefined`,
+ links will treat such values as a `false` (the default) instead of failing with an exception.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#109](https://github.com/rabbitmq/rabbitmq-federation/pull/109)
+
+
+### MQTT Plugin
+
+#### Bug Fixes
+
+ * The plugin could fail to accept new client connections with an exception in some cases.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#235](https://github.com/rabbitmq/rabbitmq-mqtt/pull/235)
+
+
+### Web STOMP Plugin
+
+#### Enhancements
+
+ * Certain Web Socket errors are now handled more gracefully.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-stomp#123](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/123)
+
+
+### Web MQTT Plugin
+
+#### Enhancements
+
+ * Certain Web Socket errors are now handled more gracefully.
+
+ GitHub issue: [rabbitmq/rabbitmq-web-mqtt#64](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/64)
+
+
+### AuthN/AuthZ Backend HTTP Plugin
+
+#### Bug Fixes
+
+ * Virtual host access checks failed in certain complex configurations.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-http#100](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/100)
+
+
+## Dependency Upgrades
+
+ * `cuttlefish` was upgraded [from 2.2.0 to 2.3.0](https://github.com/Kyorai/cuttlefish/compare/v2.2.0...v2.3.0)
+ * `credentials_obfuscation` was upgraded [from 2.0.0 to 2.1.1](https://github.com/rabbitmq/credentials-obfuscation/compare/v2.0.0...v2.1.1)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.6.tar.xz`.
diff --git a/release-notes/3.8.7.md b/release-notes/3.8.7.md
new file mode 100644
index 0000000000..918ce95ea1
--- /dev/null
+++ b/release-notes/3.8.7.md
@@ -0,0 +1,113 @@
+## RabbitMQ 3.8.7
+
+RabbitMQ `3.8.7` is a maintenance release that patches
+a security vulnerability.
+
+RabbitMQ Core team would like to thank Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center
+for researching and responsibly disclosing the vulnerability addressed in this release.
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.3` or `23.0` releases are recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 21.x or Later Versions
+
+When upgrading to this release from `3.7.6` or an older version, extra care has to be taken.
+
+Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` first, then Erlang 22.x or 23.x, then RabbitMQ to most recent
+3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * Addressed a Windows-specific binary planting security vulnerability [CVE-2020-5419](https://tanzu.vmware.com/security/cve-2020-5419) that allowed for arbitrary code execution.
+ The vulnerability requires the attacker to have local access and elevated privileges,
+ and cannot be executed remotely.
+
+ [CVSS score](https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H): `6.7` (medium severity).
+
+ This vulnerability was researched and [responsibly disclosed](https://www.rabbitmq.com/contact.html#security) by
+ Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center.
+
+ * In a mixed version cluster, virtual host limits were incorrectly reported for yet-to-be-upgraded nodes.
+
+ Contributed by @mnxumalo.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2430](https://github.com/rabbitmq/rabbitmq-server/pull/2430)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * Definition export using `rabbitmqctl export_definitions` exported [optional queue arguments](https://www.rabbitmq.com/queues.html#optional-arguments) as blank.
+ Export performed via the HTTP API was not affected by this problem.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2427](https://github.com/rabbitmq/rabbitmq-server/issues/2427)
+
+ * Invoking `rabbitmqctl` (or other tools) without any arguments produced help output that was inconsistent
+ from `rabbitmqctl help` in line spacing.
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * Links in some environments upgraded from earlier `3.8.x` versions could run into a data coercion exception
+ when connection credentials were unencrypted.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#112](https://github.com/rabbitmq/rabbitmq-federation/pull/112)
+
+
+### Shovel Plugin
+
+#### Bug Fixes
+
+ * Shovels where the source is AMQP 1.0 endpoint now gracefully handle link detachment
+ if the remote end set the `closed` attribute to `false`.
+
+ Contributed by @tstorck.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#56](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/pull/56)
+
+ * Removed some debug logging that was unintentionally polluting standard output even when
+ debug logging was not enabled.
+
+ Contributed by @sircinek.
+
+ GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#54](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/pull/54)
+
+
+## Dependency Upgrades
+
+ * `credentials_obfuscation` was upgraded [from 2.1.1 to 2.2.0](https://github.com/rabbitmq/credentials-obfuscation/compare/v2.1.1...v2.2.0)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.7.tar.xz`.
diff --git a/release-notes/3.8.8.md b/release-notes/3.8.8.md
new file mode 100644
index 0000000000..3267c3b79f
--- /dev/null
+++ b/release-notes/3.8.8.md
@@ -0,0 +1,153 @@
+## RabbitMQ 3.8.8
+
+RabbitMQ `3.8.8` is a maintenance release.
+It focuses on bug fixes and usability improvements.
+
+This releases introduces a [new node operation mode](https://github.com/rabbitmq/rabbitmq-server/issues/2321), called the *maintenance mode*.
+This feature is useful when performing rolling upgrades and is covered
+in more detail below.
+
+This is the [last RabbitMQ release to support Erlang 21.3](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
+
+### Erlang 23 Compatibility
+
+This release is [compatible](https://groups.google.com/forum/#!topic/rabbitmq-users/wlPIWz3UYHQ) with [Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.3` or `23.0` releases are recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release.
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 22.x or Later Versions
+
+When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
+
+Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
+then Erlang 22.x or 23.x, then RabbitMQ to most recent 3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Enhancements
+
+ * Maintenance mode. This is a [new mode operation mode for RabbitMQ nodes](https://github.com/rabbitmq/rabbitmq-server/issues/2321). The mode is explicitly turned
+ on and off by the operator using a bunch of new CLI commands (see below). For mixed-version cluster
+ compatibility, this feature must be [enabled using a feature flag](https://www.rabbitmq.com/feature-flags.html).
+
+ When a node is being put down for maintenance and in maintenance mode, it will not be available for
+ serving client traffic and will try to transfer as many of its responsibilities as practically possible
+ and safe.
+
+ Currently this involves the following steps:
+
+ * Suspend all client connection listeners (no new client connections will be accepted)
+ * Close all existing client connections: applications are expected to reconnect to other nodes and recover
+ * Transfer primary replicas of all classic mirrored queues hosted on the target node
+ * Transfer primary replicas of all quorum queues hosted on the target node, and prevent them from participating
+ in the subsequently triggered Raft elections
+ * Mark the node as down for maintenance
+ * At this point, a node shutdown will be least disruptive as the node has already transferred most of its
+ responsibilities
+
+ A node in maintenance mode will not be considered for new primary queue replica placement,
+ regardless of queue type and the [queue leader locator policy](https://www.rabbitmq.com/ha.html#leader-migration-data-locality) used.
+
+ A node in maintenance mode is expected to be shut down, upgraded or reconfigured, and restarted in a short
+ period of time. Nodes are not expected to be running in this mode for long periods of time.
+
+ A node in maintenance mode can be revived, that is, brough back into its regular operational state.
+ When a node is revived restarted (e.g. after an upgrade), it will again accept client connections
+ and be considered for primary queue replica placements. It will not recover previous client connections
+ as RabbitMQ never initiates connections to clients, but clients will be able to reconnect to it.
+
+ This feature is expected to evolve based on the feedback from the community, the field and the
+ RabbitMQ core team at VMware. For example, it can be adjusted based on the learnings when
+ adding upgrades support to the [RabbitMQ Cluster Operator for Kubernetes](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html).
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2321](https://github.com/rabbitmq/rabbitmq-server/issues/2321)
+
+
+### CLI
+
+#### Enhancements
+
+ * `rabbitmq-upgrade drain` is a new command that puts a node in maintenance mode (see above).
+ `rabbitmq-upgrade revive` is its counterpart that "revives" a node by putting it into the regular
+ operating mode.
+
+ `rabbitmqctl suspend_listeners` is a new command that suspends all [client connection listeners](https://www.rabbitmq.com/networking.html#ports)
+ (ports) on the node. This means that existing connections won't be affected but no new connections
+ will be accepted. This can be useful during upgrades, in particular using the
+ [Blue/Green deployment strategy](https://www.rabbitmq.com/blue-green-upgrade.html).
+
+ `rabbitmqctl resume_listeners` resumes all client listeners so that they accept new client connections
+ again.
+
+ All these commands will have an effect only if the `maintenance_mode_status` flag is enabled.
+
+ GitHub issue: [rabbitmq/rabbitmq-cli#419](https://github.com/rabbitmq/rabbitmq-cli/pull/419)
+
+
+### MQTT Plugin
+
+#### Bug Fixes
+
+ * Abrupt client connection termination could result in an Erlang process leak. This resource leak
+ affects RabbitMQ versions between `3.8.5` and `3.8.7`, inclusive.
+
+ GitHub issue: [rabbitmq/rabbitmq-mqtt#239](https://github.com/rabbitmq/rabbitmq-mqtt/pull/239)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * A node that had a lot of on disk data and constrainted resources could spend a very long time
+ activating the plugin while queue primary replicas were busy recovering the data.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2437](https://github.com/rabbitmq/rabbitmq-server/issues/2437)
+
+
+### OAuth 2 AuthN/AuthZ Plugin
+
+#### Enhancements
+
+ * Simplified scope merging code specific to Keycloak.
+
+ Contributed by Simon @SimonAlling Alling.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-oauth2#52](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2/pull/52)
+
+
+## Dependency Upgrades
+
+ * `cuttlefish` was upgraded [from 2.3.0 to 2.4.1](https://github.com/Kyorai/cuttlefish/compare/v2.3.0...v2.4.1)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.8.tar.xz`.
diff --git a/release-notes/3.8.9.md b/release-notes/3.8.9.md
new file mode 100644
index 0000000000..11fcad0394
--- /dev/null
+++ b/release-notes/3.8.9.md
@@ -0,0 +1,135 @@
+## RabbitMQ 3.8.9
+
+RabbitMQ `3.8.9` is a maintenance release.
+It focuses on bug fixes and usability improvements.
+
+This release [**no longer supports** Erlang 21.3](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
+
+### Erlang 23 Compatibility
+
+This release is [compatible](https://groups.google.com/forum/#!topic/rabbitmq-users/wlPIWz3UYHQ) with [Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
+
+### Erlang/OTP Compatibility Notes
+
+This release [**requires Erlang/OTP 22.0**](https://www.rabbitmq.com/which-erlang.html) or later.
+`22.3` or `23.0` releases are recommended.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
+what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`.
+
+
+## Upgrade and Compatibility Notes
+
+### Upgrade Doc Guides and Change Log
+
+See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
+compatibility notes first if upgrading from an earlier release series (e.g. `3.7.x`).
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
+[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+### Upgrading to Erlang 22.x or Later Versions
+
+When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
+
+Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
+RabbitMQ **must be upgraded at the same time as Erlang**.
+
+Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
+then Erlang 22.x or 23.x, then RabbitMQ to most recent 3.8.x release.
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+## Changes Worth Mentioning
+
+### Core Server
+
+#### Bug Fixes
+
+ * Starting with `3.8.0`, an unintentionally introduced assertion could prevent classic mirrored queue
+ mirrors from starting successfully in case the primary replica changed concurrently with their startup.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2449](https://github.com/rabbitmq/rabbitmq-server/pull/2449)
+
+#### Enhancements
+
+ * Raft implementation's [failure detector](https://github.com/rabbitmq/aten) default polling interval has been increased from 1s to 5s.
+ The previously used default results in too frequent leader elections in networks with high packet loss
+ (say, double digit percent).
+
+ This has no correctness or safety ramifications, however, automated tests that assert on Raft properties
+ or expect a very fast leader re-election may have to set it back so that peer failures are detected quicker.
+
+ GitHub issue: [rabbitmq/rabbitmq-server#2450](https://github.com/rabbitmq/rabbitmq-server/pull/2450)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * The now deprecated intrusive health check endpoint, `GET /api/healthchecks/node`, reported failures in the response
+ but always set the status to `200 OK`. It now uses the status of `500` in case of a failure.
+
+ [RabbitMQ Monitoring guide](https://www.rabbitmq.com/monitoring.html#health-checks) explains why
+ this health check is no longer recommended and what the alternatives are.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#840](https://github.com/rabbitmq/rabbitmq-management/issues/840)
+
+#### Enhancements
+
+ * When a client doubly encodes a request into JSON, the plugin tries to detect that and will produce a more
+ helpful 400 response instead of a 500.
+
+ GitHub issue: [rabbitmq/rabbitmq-management#839](https://github.com/rabbitmq/rabbitmq-management/issues/839)
+
+
+### Federation Plugin
+
+#### Bug Fixes
+
+ * When a classic mirrored queue with a replica on every cluster node (this is [highly discouraged](https://www.rabbitmq.com/ha.html#replication-factor)) was federated,
+ multiple links could be started by the plugin, potentially making message transfers concurrent
+ and affecting ordering.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#114](https://github.com/rabbitmq/rabbitmq-federation/issues/114)
+
+#### Enhancements
+
+ * It is now possible to federate exchanges in different virtual hosts in the same cluster for more than one hop.
+ For example, federate messages from an exchange in virtual host B to C, while B itself is federated from
+ virtual host A. Previously such messages would have been filtered by the message cycle detection algorithm
+ which assumed that exchanges are only federated across clusters.
+
+ GitHub issue: [rabbitmq/rabbitmq-federation#116](https://github.com/rabbitmq/rabbitmq-federation/issues/116)
+
+
+### Kubernetes Peer Discovery Plugin
+
+#### Bug Fixes
+
+ * Kubernetes API events registered by this plugin mixed up reason and message fields.
+
+ Contributed by Gabriele Santomaggio.
+
+ GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#70](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/pull/70)
+
+
+### OAuth 2 AuthN/AuthZ Plugin
+
+#### Enhancements
+
+ * Improved compatibility with Azure AD. This plugin can now be configured to fetch scopes from a non-standard
+ field in the decoded token value (other than the standard `scopes` field).
+
+ Contributed by @Robert-Gustafsson.
+
+ GitHub issue: [rabbitmq/rabbitmq-auth-backend-oauth2#53](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2/pull/53)
+
+
+## Source code archives
+
+**Warning**: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
+Please download the archive named `rabbitmq-server-3.8.9.tar.xz`.
diff --git a/release-notes/3.9.0.md b/release-notes/3.9.0.md
new file mode 100644
index 0000000000..e9337af138
--- /dev/null
+++ b/release-notes/3.9.0.md
@@ -0,0 +1,240 @@
+# RabbitMQ 3.9.0
+
+The most important changes are [Streams](https://blog.rabbitmq.com/posts/2021/07/rabbitmq-streams-overview/), support for [Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/), and improved integration with our [RabbitMQ Kubernetes Operator](https://blog.rabbitmq.com/posts/2020/11/rabbitmq-kubernetes-operator-reaches-1-0/). Other changes worth mentioning are JSON logging, per-protocol and queue type message rates as Prometheus metrics and faster initial cluster formation on Kubernetes.
+
+Find blog posts that expand on the previously mentioned topics: https://blog.rabbitmq.com/tags/v3.9.x/
+
+
+
+## Highlights
+
+
+### Streams
+
+[Streams](http://rabbitmq.com/streams.html) are a new persistent and replicated data structure ("queue type") in RabbitMQ which models an append-only log with non-destructive consumer semantics.
+
+They can be used as a regular AMQP 0.9.1 queue or through a new [binary protocol plugin](http://rabbitmq.com/stream.html) and associated client(s).
+
+Streams enable messaging patterns that were not possible or practical before, for example, repeatable non-destructive consumption and mass fanouts to a very large number of consumers.
+
+
+### Erlang 24 Support
+
+[Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/) provides 20%-50% higher throughput for many workloads tested by the RabbitMQ core team and community members. Supporting the latest runtime version also allowed RabbitMQ to replace a few external dependencies with libraries now provided by the runtime.
+
+Erlang 24 is now used by default in the [community RabbitMQ Docker image](https://github.com/docker-library/rabbitmq).
+
+
+### Kubernetes
+
+[RabbitMQ Cluster Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html) automates provisioning, management, and operations of RabbitMQ clusters running on Kubernetes. It is [open source](https://github.com/rabbitmq/cluster-operator) and is developed by the RabbitMQ Core team at VMware, Inc. This Operator is not specific to 3.9 and can be used with latest 3.8.x release series.
+
+[Messaging Topology Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html#topology-operator) makes it possible to define RabbitMQ resources (virtual hosts, users, permissions, topologies, policies, etc) as Kubernetes objects. This Operator is also [open source](https://github.com/rabbitmq/messaging-topology-operator) and can be used with latest 3.8.x release series.
+
+
+### Logging in JSON
+
+[Switch from Lager to the new Erlang Logger API for logging](https://github.com/rabbitmq/rabbitmq-server/pull/2861) introduces an option for structured logging in JSON. This is relevant for the Prometheus-based alerting feature that we have been investing in this year: [Notify me when RabbitMQ has a problem](https://blog.rabbitmq.com/posts/2021/05/alerting/).
+
+
+
+## Obtaining Packages
+
+RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases), [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/), and [PackageCloud](https://packagecloud.io/rabbitmq).
+
+
+### Erlang/OTP Compatibility Notes
+
+This release [requires Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) or later. Erlang 24 is recommended as it [offers 20%-50% throughput improvements](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/) for many workloads.
+
+[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains what package repositories and tools can be used to provision latest patch versions of Erlang 23.3.x and 24.x.
+
+
+
+## Upgrading to 3.9
+
+See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for documentation on upgrades and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
+
+RabbitMQ 3.9.0 nodes can run alongside `3.8.x` nodes. However, `3.8.16+` as well as `3.9.x` both require Erlang 23.2 or later (and support 24). `3.9.x`-specific features can only be made available when all nodes in the cluster upgrade to 3.9.0 or any other patch release in the series.
+
+While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes is covered below. Once all nodes are upgraded to 3.9.0, these irregularities will go away.
+
+Mixed version clusters are a mechanism that allows rolling upgrade and are not meant to be run for extended periods of time (no more than a few hours).
+
+
+### Quorum Queue Declaration
+
+In a mixed version cluster, declaration of new quorum queues will fail if executed on a node in the version minority. For example, in a five node cluster with two nodes running 3.8, the three 3.9 nodes are in the version majority and the remaining are in the version minority.
+
+Existing quorum queues will operate just like before.
+
+
+### Classic Queue Metrics
+
+HTTP API responses will provide a [limited number of metrics](https://github.com/rabbitmq/rabbitmq-server/issues/3080) or metrics for a limited number of queues (for operations such as `GET /api/queues/{vhost}`) when operating in mixed version mode.
+
+
+
+## Compatibility Notes
+
+
+### Client Library Compatibility
+
+Client libraries that were compatible with RabbitMQ `3.8.x` will be compatible with `3.9.0`.
+
+
+### Upgrading to Erlang 24.x
+
+RabbitMQ `3.8.16` and later require Erlang `23.2` and support Erlang `24` (recommended). Users of RabbitMQ versions that [do not support Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) should first upgrade to the latest `3.8.x` patch release on Erlang 23.2, then upgrade to `3.9.0`, and ideally Erlang 24.
+
+
+### Getting Help
+
+Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
+
+
+
+## Changes Worth Mentioning
+
+
+### Core Server
+
+#### Enhancements
+
+ * [Streams](http://rabbitmq.com/streams.html), a new durable replicated data structure that allows for repeatable (non-destructive) consumption. RabbitMQ 3.9 introduces a new binary protocol for working with streams. While streams can be used by AMQP 0-9-1 clients, in most cases it will be used via a [RabbitMQ stream binary protocol](http://rabbitmq.com/stream.html) client. The new protocol exposes all the operations specific to this queue type and is heavily optimized for them, resulting in much higher read and write throughput.
+
+ [Java](https://github.com/rabbitmq/rabbitmq-stream-java-client) and [Go](https://github.com/rabbitmq/rabbitmq-stream-go-client) clients
+
+ * Structural logging in JSON. Nodes can now log in JSON format.
+
+ GitHub issue: [#2861](https://github.com/rabbitmq/rabbitmq-server/pull/2861)
+
+ * [Peer discovery](https://www.rabbitmq.com/cluster-formation.html) no longer uses randomized startup delay to ensure only one node starts as a seed one during initial (parallel) cluster formation. Instead it relies on an internal runtime locking library.
+
+ GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
+
+ * Binding recovery on node startup is now more efficient. This means in clusters with a lot of queues and/or bindings, nodes start quicker.
+
+ GitHub issue: [#3137](https://github.com/rabbitmq/rabbitmq-server/pull/3137)
+
+ * Classic mirrored queue replcas are now started synchronously.
+
+ GitHub issue: [#2751](https://github.com/rabbitmq/rabbitmq-server/pull/2751)
+
+ * `journald` notifications are now performed using a library and not an external tool (`socat`)
+
+ GitHub issue: [#2940](https://github.com/rabbitmq/rabbitmq-server/pull/2940)
+
+ * Startup banner now provides more information some of which can be customised.
+
+ GitHub issues: [#2247](https://github.com/rabbitmq/rabbitmq-server/pull/2247), [#2777](https://github.com/rabbitmq/rabbitmq-server/pull/2777)
+
+ * Per-protocol and queue type message rates are now available as Prometheus metrics, as well as Streams-specific errors. This also addresses a long-standing 3.8.x counters issue for most metrics of this type, as captured in [#2783](https://github.com/rabbitmq/rabbitmq-server/issues/2783).
+
+ GitHub issues: [#3127](https://github.com/rabbitmq/rabbitmq-server/pull/3127), [#3136](https://github.com/rabbitmq/rabbitmq-server/pull/3136), [#3157](https://github.com/rabbitmq/rabbitmq-server/pull/3157)
+
+#### Internal API and Other Changes
+
+* Standard runtime logger is now used for logging instead of Lager, a 3rd party dependency. In modern Erlang versions, the module offers at least a comparable feature set and efficiency of Lager.
+
+ Users who relied on Lager-specific configuration, e.g. custom extensions or sinks, would have to rebuild them on top of the standard Erlang `logger` module.
+
+ GitHub issue: [#2861](https://github.com/rabbitmq/rabbitmq-server/pull/2861)
+
+* Different Raft-based features now can have different defaults and settings, with more configurability coming at a later point. For example, client ID tracking in the MQTT plugin can use settings for lower memory footprint and more frequent compaction while stream and quorum queues use settings more optimal for higher throughput on the same node.
+
+ GitHub issue: [#2909](https://github.com/rabbitmq/rabbitmq-server/pull/2909)
+
+* Continuous integration of open source RabbitMQ has switched to Bazel, GitHub Actions and [BuildBuddy](https://buildbuddy.io), resulting in much faster and incremental test runs.
+
+ [Bazel support for Erlang](https://github.com/rabbitmq/bazel-erlang) is a new project open sourced by the RabbitMQ Core team as a result.
+
+* Process group membership now uses `pg`.
+
+ GitHub issue: [#2850](https://github.com/rabbitmq/rabbitmq-server/pull/2850)
+
+#### Bug Fixes
+
+ * `powershell.exe` now can run without profile
+
+ GitHub issue: [#2201](https://github.com/rabbitmq/rabbitmq-server/pull/2201)
+
+ * Queue index recovery now can continue after a forced node shutdown during recovery (e.g. killed)
+
+ GitHub issue: [#3099](https://github.com/rabbitmq/rabbitmq-server/pull/3099)
+
+ * Correct an issue where the `num_acceptors.ssl` configuration value was applied incorrectly
+
+ GitHub issue: [#3180](https://github.com/rabbitmq/rabbitmq-server/pull/3180)
+
+ * Correct an issue where the `--tags` flag was ignored if `--description` was not specified in the `rabbitmqctl add_vhost` command
+
+
+### Kubernetes
+
+#### Enhancements
+
+ * [RabbitMQ Cluster Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html) automates provisioning, management, and operations of RabbitMQ clusters running on Kubernetes.
+
+ * [Messaging Topology Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html#topology-operator) makes it possible to define RabbitMQ resources (virtual hosts, users, permissions, topologies, policies, etc) as Kubernetes objects.
+
+ * Kubernetes [peer discovery](https://www.rabbitmq.com/cluster-formation.html) mechanism no longer uses randomized delays to avoid the inherent race condition during [initial cluster formation](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition). Instead it relies on an internal distributed locking mechanism available in modern Erlang releases.
+
+ While randomized startup delay was reasonably effective at ensuring only one cluster was formed even during parallel node startup, it by definitely assumes that with some low probability more than one node can still start as seed nodes, and be joined by different groups of cluster peers. The locking mechanism does not have this downside. Now that RabbitMQ requires Erlang 23.2, the internal locking library becomes an option for peer discovery.
+
+ `cluster_formation.randomized_startup_delay_range.min` and `cluster_formation.randomized_startup_delay_range.max` configuration keys will no longer have any effect.
+
+ GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
+
+
+### AWS Peer Discovery Plugin
+
+#### Enhancements
+
+ * [AWS peer discovery mechanism](https://www.rabbitmq.com/cluster-formation.html#peer-discovery-aws) now supports [Instance Metadata Service v2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html). In case it is not available, requests will fall back to the original metadata service endpoint.
+
+ The v2 endpoint offers substantial security improvements and is one of the [AWS best practices](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#ec2-8-remediation).
+
+ Contributed by @thuandb (AWS).
+
+ GitHub issue: [#2952](https://github.com/rabbitmq/rabbitmq-server/pull/2952)
+
+
+### Federation Plugin
+
+#### Enhancements
+
+ * Quorum queues now can be federated.
+
+ GitHub issue: [#2804](https://github.com/rabbitmq/rabbitmq-server/pull/2804)
+
+
+### Management Plugin
+
+#### Bug Fixes
+
+ * Management UI now honors queue name length limits
+
+ GitHub issue: [#3202](https://github.com/rabbitmq/rabbitmq-server/pull/3202)
+
+ * Management UI now sets a correct www-authenticate response header on authentication failures
+
+ GitHub issue: [#3205](https://github.com/rabbitmq/rabbitmq-server/pull/3205)
+
+
+### Dependency Changes
+
+* cowboy has been upgraded from `2.6.1` to `2.8.0`
+* cowlib has been upgraded from `2.7.0` to `2.9.1`
+* lager has been removed
+* jsx has been upgraded from `2.9.0` to `3.1.0`
+* observer_cli has been upgraded from `1.5.2` to `1.6.2`
+* osiris had been introduced at `0.1.0`
+* prometheus has been upgraded from `4.6.0` to `4.8.1`
+* ra has been upgraded from `1.1.9` to `2.0.0`
+* ranch has been upgraded from `1.7.1` to `2.0.0`
+* recon has been upgraded from `2.5.0` to `2.5.1`
+* seshat had been introduced at `0.1.0`
+* socat has been removed
+* syslog has been upgraded from `3.4.5` to `4.0.0`
+* systemd had been introduced at `0.6.1`
diff --git a/release-notes/3.9.1.md b/release-notes/3.9.1.md
new file mode 100644
index 0000000000..1b3ecf89f5
--- /dev/null
+++ b/release-notes/3.9.1.md
@@ -0,0 +1,58 @@
+# RabbitMQ 3.9.1
+
+RabbitMQ `3.9.1` is a maintenance release in the `3.9.x` release series. [This is what changed since v3.9.0](https://github.com/rabbitmq/rabbitmq-server/compare/v3.9.0...v3.9.1).
+
+Please refer to the **Upgrading to 3.9** section from [v3.9.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.0) if you are upgrading from a version prior to 3.9.0.
+
+This release requires at least Erlang 23.2, and supports the latest Erlang 24 version, 24.0.5 at the time of release. [RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/which-erlang.html) has more details on Erlang version requirements for RabbitMQ.
+
+
+
+## Changes Worth Mentioning
+
+
+### Core Server
+
+#### Bug Fixes
+
+ * Clients that used global QoS prefetch (deprecated as of 3.9.0) ran into an exception when acknowledging deliveries.
+
+ GitHub issue: [#3230](https://github.com/rabbitmq/rabbitmq-server/pull/3230)
+
+ * Improved resiliency of stream coordinator in certain conditions.
+
+ GitHub issues: [#3176](https://github.com/rabbitmq/rabbitmq-server/pull/3176), [#3170](https://github.com/rabbitmq/rabbitmq-server/pull/3170)
+
+ * Nodes failed to start when hostname contained non-ASCII (broader Unicode) characters.
+
+ GitHub issue: [#3239](https://github.com/rabbitmq/rabbitmq-server/pull/3239)
+
+
+### CLI Tools
+
+#### Bug Fixes
+
+ * `rabbitmq-diagnostics stream_status` fails with an exception when the `--tracking` option was used.
+
+ GitHub issue: [#3229](https://github.com/rabbitmq/rabbitmq-server/pull/3229)
+
+ * `rabbitmq-diagnostics stream_status` used an outdated documentation guide link.
+
+ GitHub issue: [#3231](https://github.com/rabbitmq/rabbitmq-server/pull/3231)
+
+
+### RabbitMQ Erlang Client
+
+#### Bug Fixes
+
+ * New releases of the client are again published to Hex.pm.
+
+ GitHub issue: [#3247](https://github.com/rabbitmq/rabbitmq-server/pull/3247)
+
+ * `connection_timeout` was adjusted to avoid a confusing warning.
+
+ GitHub issue: [#3232](https://github.com/rabbitmq/rabbitmq-server/pull/3232) contributed by @britto
+
+ * Corrected a typo in direct connection net tick time adjustment.
+
+ GitHub issue: [#3233](https://github.com/rabbitmq/rabbitmq-server/pull/3233) contributed by @britto
diff --git a/release-notes/README-1.1.0-alpha.txt b/release-notes/README-1.1.0-alpha.txt
new file mode 100644
index 0000000000..72fb04a225
--- /dev/null
+++ b/release-notes/README-1.1.0-alpha.txt
@@ -0,0 +1,84 @@
+Release : RabbitMQ 1.1.0-alpha
+
+Release Highlights
+==================
+
+RabbitMQ server
+---------------
+- support for clustering and load balancing
+- near-linear scaling across multiple nodes on fanout
+- various performance improvements
+- more resilient startup sequence
+- improved error reporting and logging, particularly during startup
+- improved test coverage
+- improved protocol conformance, particluarly in the area of
+ connection and channel management
+- fixed a number of race conditions in corner cases of the protocol
+- made several parameters, such as tcp buffer size, more easily
+ adjustable
+- supervision tree for most of the processes, for improved resilience
+- better support for building under Windows
+- new rabbmitqctl commands, for clustering, broker status, and more
+- improved rabbitmqctl success and failure reporting
+- improved documentation for build, install, administration
+- tested against latest Erlang/OTP release - R11B-5
+
+Java client
+-----------
+- support for clustering and load balancing
+- improved and better documented API
+- improved error handling and reporting
+- new QueuingConsumer class for easy asynchronous message processing
+- restructured internals
+- fixed several race conditions and deadlocks, and some other bugs
+- support for build under Java 6 and under Windows
+
+Packaging
+---------
+- more resilient and easier configurable startup scripts
+- fixed several bugs in Debian packaging
+- RabbitMQ now runs as a separate user
+- new Fedora and Suse RPM packages
+- new Debian and RPM packages for Java client
+- "binary" Java client packages for Java >=1.5 and <1.5
+- streamlined packaging process
+
+
+Upgrading
+=========
+
+If you are upgrading from an earlier release of RabbitMQ, note that
+RabbitMQ's internal database schema has changed, and hence the
+MNESIA_BASE directory should be cleared before starting the new
+server. This wipes out any configuration information and persisted
+messages.
+
+The upgrade process will be much improved in future releases, to the
+point where a running RabbitMQ cluster can be upgraded without service
+interruption. Meanwhile, if you need assistance in migration please
+contact the RabbitMQ team at rabbitmq-sales@pivotal.io.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Antonio Cordova
+Carl Bourne
+David Pollack
+David MacIver
+Francesco Cesarini
+Gerald Loeffler
+Hunter Morris
+Jason Pellerin
+Jeff Rogers
+Martin Logan
+Matt Darling
+Michael Newton
+Neil Bartlett
+Norbert Klamann
+Robert Greig
+Wannes Sels
+Warren Pfeffer
diff --git a/release-notes/README-1.1.1.txt b/release-notes/README-1.1.1.txt
new file mode 100644
index 0000000000..4728c1b734
--- /dev/null
+++ b/release-notes/README-1.1.1.txt
@@ -0,0 +1,61 @@
+Release: RabbitMQ 1.1.1
+Status : beta
+
+Release Highlights
+==================
+
+RabbitMQ server
+---------------
+- improved interoperability with Qpid M1 clients
+- fixed a bug in persistent message re-delivery that caused RabbitMQ
+ to fail when attempting to re-deliver messages after a restart
+- fixed a performance problem that caused throughput to drop
+ significantly for larger message sizes
+- fixed a bug in amqqueue:stat_all/0 that caused it to fail
+- refactored some internals in order to support additional transports
+ more easily
+
+Java client
+-----------
+- improved interoperability with Qpid M1 Java server
+- changed threading model to stop clients from exiting when there are
+ open AMQP connections
+- extended API to allow setting of frameMax and channelMax
+
+Packaging
+---------
+- included main test suite runner in source distribution
+- dropped version status (i.e. alpha, beta, etc) from file and dir
+ names
+- renamed server erlang package dir to "rabbitmq_server-<version>", to
+ comply with Erlang/OTP conventions
+
+
+Upgrading
+=========
+
+Upgrading to this release from RabbitMQ 1.1.0 requires no special
+steps at the server end. There have been some minor changes to the
+Java client API. Most client code is unlikely to be affected by these,
+and is easily changed if it is.
+
+If you are upgrading from an earlier release of RabbitMQ, note that
+RabbitMQ's internal database schema has changed, and hence the
+MNESIA_BASE directory should be cleared before starting the new
+server. This wipes out any configuration information and persisted
+messages.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Ben Hood
+James Wolstenholme
+Jeff Rogers
+Maximillian Dornseif
+Michael Arnoldus
+Steve Jenson
+Tanmay Goel
diff --git a/release-notes/README-1.2.0.txt b/release-notes/README-1.2.0.txt
new file mode 100644
index 0000000000..fea8e5b203
--- /dev/null
+++ b/release-notes/README-1.2.0.txt
@@ -0,0 +1,63 @@
+Release: RabbitMQ 1.2.0
+Status : beta
+
+Release Highlights
+==================
+
+RabbitMQ server
+---------------
+- introduced internal flow control to prevent performance drops when
+ running a server near capacity
+- simplified cluster configuration and added "automatic" clustering
+- made rabbitmqctl command line syntax less confusing
+- fixed a couple of race conditions that could result in a client
+ receiving unexpected sequences of command replies and messages
+- refactored internals to make it easier to construct handlers for
+ transports other than raw TCP/IP
+
+Java client
+-----------
+- fixed a race condition between invocation of a Consumer's
+ handle{Consume,Cancel}Ok and handleDelivery methods; the former are
+ now called inside the connection's thread, just like the latter
+
+Packaging
+---------
+- simplified rabbitmqctl invocation under Debian
+- moved default location of the log and mnesia dirs under Windows to
+ sub directories of the RABBITMQ_BASE directory
+- changed startup scripts to allow the rabbitmq_server package to
+ reside outside the OTP library directory
+
+
+Upgrading
+=========
+
+Under Windows the default location of the mnesia directory has changed
+from %RABBITMQ_BASE% to %RABBITMQ_BASE%\db. If you have an existing
+installation that uses the old default location and you would like to
+retain the server state (including persisted messages) then just move
+the *.DAT, *.DCD, *.DCL and *.LOG files from that directory to the new
+location.
+
+There have been some minor changes to the Java client API. Most client
+code is unlikely to be affected by these, and is easily changed if it
+is.
+
+If you are upgrading from RabbitMQ-1.0.0 note that RabbitMQ's internal
+database schema has changed, and hence the MNESIA_BASE directory
+should be cleared before starting the new server. This wipes out any
+configuration information and persisted messages.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Ben Hood
+Emmanuel Okyere
+Holger Hoffstätte
+Jodi Moran
+Robert Greig
diff --git a/release-notes/README-1.3.0.txt b/release-notes/README-1.3.0.txt
new file mode 100644
index 0000000000..18418a6fed
--- /dev/null
+++ b/release-notes/README-1.3.0.txt
@@ -0,0 +1,96 @@
+Release: RabbitMQ 1.3.0
+Status : beta
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- eliminate a number of race conditions that could result in message
+ loss and other incorrect or unusual behaviour
+- eliminate duplication of messages when bindings overlap
+- prevent unbounded memory usage when topic exchanges encounter
+ messages with highly variable routing keys
+- redesigned persister so it works properly in a clustered broker
+- fix a couple of bugs that could cause persisted messages to stick
+ around forever, resulting in an unbounded memory usage
+- prevent performance drop under high load
+- do not requeue messages on tx.rollback
+- fix bug in heartbeat logic that could result in a connection
+ remaining alive even though the client had stopped sending any data
+- correct handling of queue.bind with empty routing key and queue name
+- complain about acks with an unknown delivery tag
+- prevent sending of zero-length content body frames
+
+enhancements
+- improve error reporting for various framing-related errors
+- improve rabbitmq-multi robustness and error reporting
+- identify log locations in startup message
+- keep log file contents on server restart
+- support QPid's extended field types
+- improve performance, particularly for persistent messaging
+- re-architect internals to eliminate some code duplication, reduce
+ component dependencies, and construct cleaner internal APIs
+
+Java client
+-----------
+bug fixes
+- eliminate edge case that could result in stuck AMQConnection.close
+- use linear timers to prevent heartbeat timeouts on system clock
+ adjustment, which happens in some virtualisation platforms
+- eliminate a race condition that could result in an exception when
+ establishing a connection
+
+enhancements
+- add SSL support
+- improve error reporting for various framing-related errors
+- add new FileProducer/Consumer example
+- make MulticastMain example more versatile, with improved command
+ line options
+- improve performance
+
+packaging
+---------
+bug fixes
+- fix broken 'rabbitmqctl -n' on Debian
+- fix broken removal of the rabbitmq-server Debian package
+- fix broken Erlang library installation on 64bit RPM-based systems
+- fix failure of server shutdown when started at boot time on Debian
+- fix various problems with RPMs
+
+improvements
+- better compliance with debian packaging policies
+
+
+Upgrading
+=========
+
+Care must be taken when upgrading a server that contains persisted
+messages. The persister log format has changed between RabbitMQ-1.2.0
+and this release. When RabbitMQ-1.3.0 first starts following an
+upgrade it will move the existing persister log to a backup file -
+check the log files for details. Thus the previously persisted
+messages are not lost, but neither are they replayed. Therefore it is
+recommended that the upgrade is performed only when there are no
+important persistent messages remaining.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Andrew Munn
+Barry Pederson
+Ben Hood
+David Pollak
+Emmanuel Okyere
+Joe Lee
+John Leuner
+Matt Darling
+Michael Arnoldus
+Nick Levine
+Tom Samplonius
+Willem van Heemstra
diff --git a/release-notes/README-1.4.0.txt b/release-notes/README-1.4.0.txt
new file mode 100644
index 0000000000..0127bfa467
--- /dev/null
+++ b/release-notes/README-1.4.0.txt
@@ -0,0 +1,108 @@
+Release: RabbitMQ 1.4.0
+Status : beta
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- maintain message order on persister replay
+- do not throw away work on connection.close
+- eliminate possibility of generating duplicate message ids when
+ broker is restarted
+- deal with race conditions during queue creation that could result in
+ a queue being reported as 'not_found' when it did in fact exist, and
+ the converse, or multiple queue processes being created per queue.
+- suppress a few errors that would be logged in various connection
+ shutdown scenarios but turn out to be harmless
+- ensure preservation of content properties during persistence - this
+ was working fine for the AMQP transport, but not the STOMP gateway
+- fix various other small bugs
+
+enhancements
+- improve performance of queue creation
+- add explanatory text to errors returned to the client and reported
+ in the logs
+- rationalise severities of logged errors, and log information
+ allowing the correlation of log events with connections
+- return 'connection_forced' error to clients on broker shutdown
+- supervise queue processes
+- improve/refactor internal APIs to assist in creation of extensions
+- add type signature for all exported functions, and type check code
+ with dialyzer
+- generate AMQP codec from JSON representation of protocol spec
+
+Java client
+-----------
+bug fixes
+- completely revamp connection and channel closure handling, resolving
+ a number race conditions and other bugs in the process and resulting
+ in a cleaner, more comprehensive and consistent API
+- correct a few minor errors in the javadocs
+
+enhancements
+- generate AMQP codec from JSON representation of protocol spec
+
+building & packaging
+--------------------
+bug fixes
+- only source /etc/default/rabbitmq in init.d scripts, thus stopping
+ it from overriding env var settings
+- pay attention to NODE* env vars in rabbitmq-multi script, thus
+ allowing users to easily start multiple nodes with non-default
+ settings for the node name, ip and port.
+- make rpm update work
+
+enhancements
+- on Windows, place the server logs and db in a dir under the per-user
+ %APPDATA% directory
+- display names of nodes started by rabbitmq-multi
+- migrate from cvs to hg, and split into separate repositories for
+ server, java client, etc.
+- clean up and refactor Makefiles
+- avoid hanging for 30s when an invalid database schema is detected
+
+
+Upgrading
+=========
+
+The database schema has changed in this version of RabbitMQ. If you
+attempt to start RabbitMQ-1.4.0 over top of a previous installation,
+it will fail, citing "schema_integrity_check_failed". To correct this,
+delete your mnesia directory (on most platforms,
+/var/lib/rabbitmq/mnesia) and restart the server. Note that this will
+destroy all your durable exchanges and queues, and all your persisted
+messages!
+
+Care must be taken when upgrading a server that contains persisted
+messages. The persister log format has changed between RabbitMQ-1.3.0
+and this release. When RabbitMQ-1.4.0 first starts following an
+upgrade it will move the existing persister log to a backup file -
+check the log files for details. Thus the previously persisted
+messages are not lost, but neither are they replayed. Therefore it is
+recommended that the upgrade is performed only when there are no
+important persistent messages remaining.
+
+Due to a bug in the rpm packaging, which has now been fixed, users
+with an existing rpm-based installation of the RabbitMQ server should
+first remove the rabbitmq-server package ('rpm -e rabbitmq-server')
+before proceeding with the normal upgrade.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Andrew Statsenko
+David Corcoran
+Dmitriy Samovskiy
+Holger Hoffstaette
+John Leuner
+Kyle Salasko
+Lars Bachmann
+Michael Arnoldus
+Petr Sturc
+Sean Treadway
diff --git a/release-notes/README-1.5.0.txt b/release-notes/README-1.5.0.txt
new file mode 100644
index 0000000000..22d51be400
--- /dev/null
+++ b/release-notes/README-1.5.0.txt
@@ -0,0 +1,143 @@
+Release: RabbitMQ 1.5.0
+Status : beta
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- support running on top of the latest Erlang/OTP release (R12B-5)
+- maintain effect visibility guarantees in cross-node routing
+- reduce likelihood of timeouts when channels interact with a large
+ number of queues
+- graceful handling of some corner cases in abrupt client disconnect
+
+enhancements
+- remove tickets and realms
+- improve scalability of queue and binding creation and deletion
+- add 'queue.unbind' command to protocol
+- disable Nagle for more consistent latency
+- throttle producers with 'channel.flow' when running low on memory
+ Note that this feature is disabled by default; please see
+ https://www.rabbitmq.com/admin-guide.html#memsup for details.
+- remove a few spurious errors in the logs
+- show the actual listening IP & port in logs
+- improve rabbitmqctl:
+ - add a few useful info commands
+ - add a 'reopen_logs' command to assist in log management
+ - add a '-q' flag to suppress informational messages and thus
+ facilitate post-processing of the output
+ - write errors to stderr instead of stdout
+
+Java client
+-----------
+bug fixes
+- eliminate several race condition in connection and channel closure
+ that could result in deadlock
+- always respond to a server's 'connection.close' and 'channel.close'
+- prevent interference between interal locking on channels and
+ application-level locking
+
+enhancements
+- remove tickets and realms
+- support 'queue.unbind'
+- disable Nagle for more consistent latency
+- react to server-issued 'channel.flow' by (un)blocking producers
+- add channel.abort method to unconditionally and idempotently close a
+ channel
+- complete the set of channel and connection close and abort methods
+
+.net client
+-----------
+bug fixes
+- eliminate "Cannot access a disposed object" exception in connection
+ closure and disposal
+- correct heartbeat logic to prevent spurious timeouts when not idling
+
+enhancements
+- remove tickets and realms
+- support 'queue.unbind'
+- disable Nagle for more consistent latency
+- react to server-issued 'channel.flow' by (un)blocking producers
+- add IModel.abort method to unconditionally and idempotently close a
+ channel
+- complete the set of channel and connection close and abort methods
+
+building & packaging
+--------------------
+bug fixes
+- correct locations of libraries et al on 64bit rpm systems
+
+enhancements
+- detect upgrade from pre-1.5.0 and warn/ask user (under debian & rpm)
+- comply with debian and rpm packaging policies and guidelines
+- prevent accidental executing of scripts as non-root user under
+ debian & rpm
+- read /etc/default/rabbitmq in scripts on Unix-y systems, with env
+ vars taking precedence over vars set in that file and the defaults
+ used by the scripts
+- prefix env vars with 'RABBITMQ_'
+- allow script execution from anywhere (not just the scripts' dir)
+- add script & instructions to start RabbitMQ as a Windows service
+- add 'status' command to init.d script under debian & rpm
+- automatic log rotation under debian & rpm
+- use simplejson.py instead of json.py in code generation, thus
+ allowing use of Python 2.6
+
+
+Upgrading
+=========
+
+The database schema has changed between RabbitMQ-1.4.0 and this
+release. When the RabbitMQ server detects the presence of an old
+database, it moves it to a backup location, creates a fresh, empty
+database, and logs a warning.
+
+If your RabbitMQ installation contains important data, such as user
+accounts, durable exchanges and queues, or persistent messages, then
+we recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Alister Morton
+Aman Gupta
+Andrius Norkaitis
+Barry Pedersen
+Benjamin Black
+Benjamin Polidore
+Brian Sullivan
+David Corcoran
+Dmitriy Samovskiy
+Edwin Fine
+Eran Sandler
+Esteve Fernandez
+Ezra Zygmuntowicz
+Ferret
+Gavin Bong
+Geoffrey Anderson
+Holger Hoffst�tte
+Jacek Korycki
+John Leuner
+Jonatan Kallus
+Jonathan McGee
+Kyle Sampson
+Leo Martins
+Maarten Engelen
+Nathan Woodhull
+Nigel Verdon
+Paul Jones
+Pete Kay
+Peter Kieltyka
+Sarah Jelinek
+Sean Treadway
+Steve Jenson
+Terry Jones
+Vadim Zaliva
+Valentino Volonghi
diff --git a/release-notes/README-1.5.1.txt b/release-notes/README-1.5.1.txt
new file mode 100644
index 0000000000..006eef4d98
--- /dev/null
+++ b/release-notes/README-1.5.1.txt
@@ -0,0 +1,81 @@
+Release: RabbitMQ 1.5.1
+Status : final
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- handle race condition between routing and queue deletion that could
+ cause errors on message publication
+- the default settings for RABBITMQ_SERVER_ERL_ARGS were not taken
+ into account, resulting in decreased network performance
+- add workaround for the Erlang/OTP bug OTP-7025, which caused errors
+ in topic routing in Erlang/OTP versions older than R12B-1
+- display the nodes of queue and connection processes in rabbitmqctl's
+ list_{queues,connections} command. Previously we displayed pids,
+ which was broken and not particularly useful.
+
+enhancements
+- enable 'channel.flow'-based producer throttling by default on Linux
+- include stack traces in error reports in rabbit.log
+- speed up rabbitmqctl and rabbitmq-multi
+
+Java client
+-----------
+no significant changes
+
+.net client
+-----------
+bug fixes
+- handle race condition in client-initiated connection closure that
+ could result in an OperationInterruptedException
+
+enhancements
+- re-enable heartbeating by default
+
+building & packaging
+--------------------
+bug fixes
+- fix bug that caused removal of RPMs to be incomplete
+- produce separate RPMs for SuSE-like systems to resolve various
+ incompatibilities
+- rename BUILD to README in order to prevent build failures on systems
+ with case-insensitive file naming (such as OS X)
+
+enhancements
+- minor tweaks in Debian and RPM packaging for better compliance with
+ packaging guidelines
+- better handling of errors encountered during code generation
+
+
+Upgrading
+=========
+
+No special precautions are necessary when upgrading from
+RabbitMQ-1.5.0.
+
+When upgrading from earlier releases, note that the database schema
+has changed in RabbitMQ-1.5.x. When the RabbitMQ server detects the
+presence of an old database, it moves it to a backup location, creates
+a fresh, empty database, and logs a warning.
+
+If your RabbitMQ installation contains important data, such as user
+accounts, durable exchanges and queues, or persistent messages, then
+we recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Aymerick Jéhanne
+Chuck Remes
+Ezra Zygmuntowicz
+Glenn Robuck
+Mathias Gug
+Michael Barker
diff --git a/release-notes/README-1.5.2.txt b/release-notes/README-1.5.2.txt
new file mode 100644
index 0000000000..22acf3b74d
--- /dev/null
+++ b/release-notes/README-1.5.2.txt
@@ -0,0 +1,79 @@
+Release: RabbitMQ 1.5.2
+Status : final
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- prevent the shell from attempting to perform path expansion on vars
+ in the startup scripts, which was resulting in errors when starting
+ rabbit on some systems.
+- make guid generation independent of persister, thus preventing
+ timeouts when the persister is busy
+- get scripts to source configuration from /etc/rabbitmq/rabbitmq.conf
+ rather than /etc/default/rabbitmq, since the latter is reserved for
+ init.d scripts.
+
+Java client
+-----------
+bug fixes
+- eliminate race condition in server-initiated channel closure that
+ could lead to deadlock
+
+.net client
+-----------
+bug fixes
+- eliminate race condition in server-initiated channel closure that
+ could lead to deadlock
+
+building & packaging
+--------------------
+enhancements
+- minor tweaks in Debian and RPM packaging for better compliance with
+ packaging guidelines
+- place wrapper scripts for rabbitmq-server and rabbitmq-multi
+ alongside the rabbitmqctl wrapper in /usr/sbin
+- do not start the server by default on RPM-based systems, in order to
+ comply with common practice and guidelines
+- suppress stdout in logrotate scripts, to keep cron et al happy
+
+Upgrading
+=========
+
+The place from which the server startup and control scripts source
+configuration information on Unix systems has changed from
+/etc/default/rabbitmq to /etc/rabbitmq/rabbitmq.conf. If you have been
+using the former, just move the file to the latter location. The
+/etc/default/rabbitmq file (/etc/sysconfig/rabbitmq on RPM-based
+systems) is still being sourced by the init.d script, but it should
+only contain settings directly affecting the behaviour of the init.d
+script, such as NODE_COUNT.
+
+When upgrading from releases earlier than RabbitMQ-1.5.x, note that
+the database schema has changed. When the RabbitMQ server detects the
+presence of an old database, it moves it to a backup location, creates
+a fresh, empty database, and logs a warning.
+
+If your RabbitMQ installation contains important data, such as user
+accounts, durable exchanges and queues, or persistent messages, then
+we recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Billy Chasen
+Charl Matthee
+Christopher Hoover
+Darien Kindlund
+Dmitriy Samovskiy
+Jason Williams
+Mathias Gug
+Peter Lemenkov
+Phil Stubbings
diff --git a/release-notes/README-1.5.3.txt b/release-notes/README-1.5.3.txt
new file mode 100644
index 0000000000..996cd057f3
--- /dev/null
+++ b/release-notes/README-1.5.3.txt
@@ -0,0 +1,79 @@
+Release: RabbitMQ 1.5.3
+Status : final
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- prevent the shell from attempting to perform path expansion on vars
+ in the startup scripts, which was resulting in errors when starting
+ rabbit on some systems.
+- make guid generation independent of persister, thus preventing
+ timeouts when the persister is busy
+- get scripts to source configuration from /etc/rabbitmq/rabbitmq.conf
+ rather than /etc/default/rabbitmq, since the latter is reserved for
+ init.d scripts.
+
+Java client
+-----------
+bug fixes
+- eliminate race condition in server-initiated channel closure that
+ could lead to deadlock
+
+.net client
+-----------
+bug fixes
+- eliminate race condition in server-initiated channel closure that
+ could lead to deadlock
+
+building & packaging
+--------------------
+enhancements
+- minor tweaks in Debian and RPM packaging for better compliance with
+ packaging guidelines
+- place wrapper scripts for rabbitmq-server and rabbitmq-multi
+ alongside the rabbitmqctl wrapper in /usr/sbin
+- do not start the server by default on RPM-based systems, in order to
+ comply with common practice and guidelines
+- suppress stdout in logrotate scripts, to keep cron et al happy
+
+Upgrading
+=========
+
+The place from which the server startup and control scripts source
+configuration information on Unix systems has changed from
+/etc/default/rabbitmq to /etc/rabbitmq/rabbitmq.conf. If you have been
+using the former, just move the file to the latter location. The
+/etc/default/rabbitmq file (/etc/sysconfig/rabbitmq on RPM-based
+systems) is still being sourced by the init.d script, but it should
+only contain settings directly affecting the behaviour of the init.d
+script, such as NODE_COUNT.
+
+When upgrading from releases earlier than RabbitMQ-1.5.x, note that
+the database schema has changed. When the RabbitMQ server detects the
+presence of an old database, it moves it to a backup location, creates
+a fresh, empty database, and logs a warning.
+
+If your RabbitMQ installation contains important data, such as user
+accounts, durable exchanges and queues, or persistent messages, then
+we recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Billy Chasen
+Charl Matthee
+Christopher Hoover
+Darien Kindlund
+Dmitriy Samovskiy
+Jason Williams
+Mathias Gug
+Peter Lemenkov
+Phil Stubbings
diff --git a/release-notes/README-1.5.4.txt b/release-notes/README-1.5.4.txt
new file mode 100644
index 0000000000..47d52cccae
--- /dev/null
+++ b/release-notes/README-1.5.4.txt
@@ -0,0 +1,81 @@
+Release: RabbitMQ 1.5.4
+Status : final
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- starting a RabbitMQ instance that contains a large number
+ (thousands) durable exchanges, queues or bindings now takes just a
+ few seconds instead of several minutes.
+- on Windows, rabbitmq-multi.bat can now start RabbitMQ even when the
+ path to the startup script contains spaces, whereas previously that
+ would fail.
+- on Windows, the rabbitmqctl.bat and rabbitmq-multi.bat scripts now
+ report errors correctly instead of swallowing them.
+
+enhancements
+- make the default settings of the various env vars which can be set
+ in rabbitmq.conf visible to that script, thus permitting more
+ advanced manipulation of the settings than was previously possible.
+- permit configuration of rabbitmqctl's Erlang start parameters by
+ sourcing rabbitmq.conf from the script and adding some env vars.
+- on Windows, rabbitmq-server.bat and rabbitmq-multi.bat can now be
+ configured with the RABBITMQ_{SERVER,MULTI}_{ERL,START}_ARGS env
+ vars.
+
+Java client
+-----------
+no changes
+
+.net client
+-----------
+no changes
+
+building & packaging
+--------------------
+bug fixes
+- correct paths in 64-bit RPMs; the paths got broken in the 1.5.3
+ release, preventing the server from starting
+- in the Debian and RPM packages, set the current working dir of the
+ various scripts to /var/lib/rabbitmq instead of /. The latter was
+ preventing crash dumps from being written.
+- fix BSD incompatibility in 'make srcdist'
+
+enhancements
+- minor tweaks in Debian and RPM packaging for better compliance with
+ packaging guidelines
+
+
+Upgrading
+=========
+
+When upgrading from releases earlier than 1.5.3, note that the place
+from which the server startup and control scripts source configuration
+information on Unix systems has changed from /etc/default/rabbitmq to
+/etc/rabbitmq/rabbitmq.conf. If you have been using the former, just
+move the file to the latter location. The /etc/default/rabbitmq file
+(/etc/sysconfig/rabbitmq on RPM-based systems) is still being sourced
+by the init.d script, but it should only contain settings directly
+affecting the behaviour of the init.d script, such as NODE_COUNT.
+
+When upgrading from releases earlier than 1.5.x, note that the
+database schema has changed. When the RabbitMQ server detects the
+presence of an old database, it moves it to a backup location, creates
+a fresh, empty database, and logs a warning. If your RabbitMQ
+installation contains important data, such as user accounts, durable
+exchanges and queues, or persistent messages, then we recommend you
+contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Alex Clemesha
+Aymerick Jehanne
+John Leuner
diff --git a/release-notes/README-1.5.5.txt b/release-notes/README-1.5.5.txt
new file mode 100644
index 0000000000..0e2fe4ed67
--- /dev/null
+++ b/release-notes/README-1.5.5.txt
@@ -0,0 +1,91 @@
+Release: RabbitMQ 1.5.5
+Status : final
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- in a clustered setup, bindings to durable queues are now correctly
+ recovered when a queue's node restarts.
+- node failure in a clustered setup could trigger premature exchange
+ auto-deletion
+- the cluster config file name was inadvertently changed from
+ rabbitmq_cluster.config to cluster.config in release 1.5.4. It has
+ now been changed back.
+- when attempting to delete a non-existing exchange, return 404 (not
+ found), as defined by the spec, rather than 541 (internal error)
+- correct some type specs to keep dialyzer happy
+
+enhancements
+- display the node name and database dir on startup
+
+Java client
+-----------
+bug fixes
+- correct semantics of connection.tune's channel-max parameter - it
+ determines the range of usable channel numbers - from 1 to
+ channel-max, inclusive. Previously the highest channel number we
+ allowed was channel-max - 1.
+- correct misleading javadoc for GetResponse.getMessageCount().
+
+enhancements
+- improve error reporting
+
+.net client
+-----------
+bug fixes
+- correct semantics of connection.tune's channel-max parameter - it
+ determines the range of usable channel numbers - from 1 to
+ channel-max, inclusive. Previously the highest channel number we
+ allowed was channel-max - 1.
+
+building & packaging
+--------------------
+bug fixes
+- work around absence of escript in path on some Fedora/EPEL
+ installations
+- make build work with python 2.4, which Fedore/EPEL 5 is on
+- work around possible bug in Debian packaging of Erlang OTP R13,
+ which misses a dependency on os-mon in erlang-nox
+
+enhancements
+- minor tweaks in RPM packaging for better compliance with packaging
+ guidelines
+
+
+Upgrading
+=========
+
+When upgrading from releases earlier than 1.5.3, note that the place
+from which the server startup and control scripts source configuration
+information on Unix systems has changed from /etc/default/rabbitmq to
+/etc/rabbitmq/rabbitmq.conf. If you have been using the former, just
+move the file to the latter location. The /etc/default/rabbitmq file
+(/etc/sysconfig/rabbitmq on RPM-based systems) is still being sourced
+by the init.d script, but it should only contain settings directly
+affecting the behaviour of the init.d script, such as NODE_COUNT.
+
+When upgrading from releases earlier than 1.5.x, note that the
+database schema has changed. When the RabbitMQ server detects the
+presence of an old database, it moves it to a backup location, creates
+a fresh, empty database, and logs a warning. If your RabbitMQ
+installation contains important data, such as user accounts, durable
+exchanges and queues, or persistent messages, then we recommend you
+contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
+
+
+Credits
+=======
+
+We would like to thank the following individuals for submitting bug
+reports and feedback that we incorporated into this release:
+
+Aaron Cline
+Bradford Cross
+John Leuner
+Levi Greenspan
+Peter Lemenkov
+Rob Golkosky
+Steve Marah
diff --git a/release-notes/README-1.6.0.txt b/release-notes/README-1.6.0.txt
new file mode 100644
index 0000000000..7f224630c5
--- /dev/null
+++ b/release-notes/README-1.6.0.txt
@@ -0,0 +1,86 @@
+Release: RabbitMQ 1.6.0
+Status : final
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- eliminate potential memory leak of transactionally published
+ messages in certain system errors
+- prevent possible starvation of some consumers on channels that get
+ temporarily blocked due to backlogs
+- do not send more messages to backlogged channels when accepting a
+ new consumer
+- prevent possible message reordering in the event of temporary node
+ failure in a clustered setup
+- return 'not_found' error in all cases of 'queue.unbind' attempting
+ to remove a non-existing binding
+
+enhancements
+- implement AMQP's basic.qos' channel prefetch count limiting
+- implement AMQP 0-9/0-9-1's headers exchange type
+- introduce a permissions system which allows fine-grained access
+ control on resources involved in AMQP operations. See
+ https://www.rabbitmq.com/admin-guide.html#access-control for details
+- introduce 'alternate exchanges' to handle messages which are
+ otherwise unroutable. See
+ https://www.rabbitmq.com/extensions.html#alternate-exchange for
+ details
+- improve performance and stability under high load
+- reduce memory consumption
+- prefix all mnesia tables with "rabbit_" in order to prevent name
+ clashes with other Erlang applications, in particular ejabberd
+- handle rabbitmqctl commands with higher priority, thus ensuring that
+ answers are returned promptly even under high load
+- reduce severity of "connection closed abruptly" log event from
+ 'error' to 'warning'
+
+Java client
+-----------
+enhancements
+- support extended list of table field types
+
+.net client
+-----------
+bug fixes
+- make unit tests work under .NET 2.0
+
+enhancements
+- rename public fields to avoid name clashes with properties that trip
+ up tools like Powershell
+- suppress inclusion of spec comments in generated code due to
+ licensing issues
+- generate strong named (i.e. signed) assemblies. See the bottom of
+ https://www.rabbitmq.com/dotnet.html for details
+
+building & packaging
+--------------------
+enhancements
+- introduce wrapper scripts in macports, as in the Debian and RPM
+ packaging, which ensure the real scripts are run as the right
+ ('rabbitmq') user
+- remove build-time dependency on mnesia
+- trim Debian Erlang package dependencies
+- auto-generate the module list in rabbit.app, thus ensuring it is
+ always up to date
+
+Upgrading
+=========
+
+When upgrading from releases earlier than 1.5.3, note that the place
+from which the server startup and control scripts source configuration
+information on Unix systems has changed from /etc/default/rabbitmq to
+/etc/rabbitmq/rabbitmq.conf. If you have been using the former, just
+move the file to the latter location. The /etc/default/rabbitmq file
+(/etc/sysconfig/rabbitmq on RPM-based systems) is still being sourced
+by the init.d script, but it should only contain settings directly
+affecting the behaviour of the init.d script, such as NODE_COUNT.
+
+The database schema has changed. When the RabbitMQ server detects the
+presence of an old database, it moves it to a backup location, creates
+a fresh, empty database, and logs a warning. If your RabbitMQ
+installation contains important data, such as user accounts, durable
+exchanges and queues, or persistent messages, then we recommend you
+contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
diff --git a/release-notes/README-1.7.0.txt b/release-notes/README-1.7.0.txt
new file mode 100644
index 0000000000..738ae128f8
--- /dev/null
+++ b/release-notes/README-1.7.0.txt
@@ -0,0 +1,105 @@
+Release: RabbitMQ 1.7.0
+Status : beta
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- prevent timeouts of rabbitmqctl when the server is busy
+- prevent load avg calculation from failing under high load, which
+ could cause connection establishment to break
+- remove channel closing timeout since it can cause a protocol
+ violation
+- prevent client disconnects from sometimes resulting in enormous
+ error log entries and causing considerable CPU and memory pressure
+
+enhancements
+- support SSL natively - see <https://www.rabbitmq.com/ssl.html>
+- add a plugin mechanism to provide a framework for developing rabbit
+ extensions and managing their installation - see
+ <https://www.rabbitmq.com/plugin-development.html>
+- support configuration via erlang config file, which has fewer
+ escaping and formatting requirements than the other configuration
+ mechanisms - see <https://www.rabbitmq.com/install.html#configfile>
+- display diagnostics when rabbitmqctl fails with a badrpc error,
+ making it easier to track down the cause
+- improve queue hibernation logic to reduce system load in
+ pathological scenarios, like invocations of 'rabbitmqctl
+ list_queues' at one second intervals
+- increase consumer throughput under high load
+- improve performance of channel and connection termination
+- escape output of all rabbitmqctl commands
+- react to memory pressure more quickly
+- more graceful handling of some rare error conditions during
+ connection establishment, preventing spurious error log entries
+- display location of application descriptor on startup, to make it
+ easy to locate rabbit installations
+- in 'rabbitmqctl list_connections', display the connection state by
+ default, and no longer shows absent usernames as 'none', thus
+ avoiding possible confusion
+- add hook mechanism for altering/augmenting broker behaviour
+- add cute banner :)
+
+Java client
+-----------
+bug fixes
+- work around Java Hotspot bug that could cause channel number
+ allocation to return null
+
+enhancements
+- disable heartbeats by default
+- add queuePurge to API
+- make content properties (deep) cloneable
+
+.net client
+-----------
+bug fixes
+- fix a number of race conditions in the Subscription close/shutdown
+ logic, making it safe to close Subscriptions from any thread
+- allow SharedQueues (and thus QueuingBasicConsumer and Subscription)
+ to drain messages after close
+
+enhancements
+- disable heartbeats by default
+- make content properties (deep) cloneable
+- add some more AmqpTcpEndpoint constructors to API
+
+building & packaging
+--------------------
+bug fixes
+- prevent purging of server debian and RPM packages from failing due
+ to epmd still running
+- fix escaping/quoting corner cases in server control wrapper scripts
+- in RPM packages, eliminate spurious removal of server startup from
+ all run levels during upgrade
+
+enhancements
+- install server Erlang app in RabbitMQ-specific directory tree
+ (e.g. /usr/lib/rabbitmq) rather than the Erlang/OTP tree. This
+ allows OTP to be upgraded w/o breaking rabbit.
+- package .net client in Windows installer
+- include .net client in complete windows bundle
+- switch .net client build from nant to msbuild and include VS
+ solution
+- update complete windows bundle from Erlang/OTP R11B5 to R12B5
+- make installation work under MacPorts 1.8.0
+- make server buildable under freebsd
+- permit configuration of server startup log locations in
+ /etc/default/rabbitmq
+- improve formatting of man pages
+- do not stomp on RABBITMQ_* environment variables in server Makefile
+
+Upgrading
+=========
+The database schema has not changed since the 1.6.0 release, so user
+accounts, durable exchanges and queues, and persistent messages will
+all be retained during the upgrade.
+
+If, however, you are upgrading from a release prior to 1.6.0, when the
+RabbitMQ server detects the presence of an old database, it moves it
+to a backup location, creates a fresh, empty database, and logs a
+warning. If your RabbitMQ installation contains important data then we
+recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
diff --git a/release-notes/README-1.7.1.txt b/release-notes/README-1.7.1.txt
new file mode 100644
index 0000000000..e2b0835498
--- /dev/null
+++ b/release-notes/README-1.7.1.txt
@@ -0,0 +1,123 @@
+Release: RabbitMQ 1.7.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- correct various quoting errors in the Windows scripts that caused
+ them to fail
+- ensure that stalled ssl negotiation do not block further ssl
+ connection acceptance
+- prohibit the (re)declaration of queues that reside on node that is
+ currently stopped, thus preventing message loss or duplication when
+ that node recovers
+- eliminate race condition in queue auto-deletion, ensuring that it
+ has completed before channel/connection closure completes
+- ensure that ack processing cannot stall under heavy load when using
+ basic.qos
+- make plug-ins and config files work when running as a Windows
+ service
+- write crash dumps to a sensible location
+ (%APPDATA%\RabbitMQ\erl_crash.dump by default) when running as a
+ Windows service
+- get the Windows service to use Erlang/OTP R12B-5 by default, since
+ that, rather than R11B-5, is what we ship in the Windows bundle
+- correct formatting of plug-in activation errors
+- make column order of 'rabbitmqctl list_bindings' match the
+ documentation
+- do not escape spaces in rabbitmqctl output
+- prevent vars declared in Windows scripts from polluting the
+ environment
+- clean up properly when the rabbit Erlang application is stopped,
+ thus making it more well-behaved and easier to embed
+
+enhancements
+- make the various scripts work with complete short node names
+- improve memory monitoring and producer throttling. See the updated
+ documentation at https://www.rabbitmq.com/extensions.html#memsup.
+- make tcp_listeners configurable via the rabbitmq.config file
+- use the base64 module instead of ssl_base64 if we can, since the
+ latter is sometimes missing from Erlang installations
+- display pids instead of just nodes in 'rabbitmqctl list_connections'
+ and 'rabbitmqctl list_queues', to aid troubleshooting
+- add capability to display the transmitted client_properties in
+ 'rabbitmqctl list_connections'
+- extend codec with array type ('A')
+- add proper headers to auto-generated code
+
+Java client
+-----------
+bug fixes
+- eliminate race in connection establishment that could cause errors
+ to be reported in different ways
+- fix quoting in runjava.bat to stop it from tripping over exotic
+ Windows paths
+
+enhancements
+- enforce codec size limits, specifically on AMQP's shortstr type,
+ thus preventing the creation of invalid AMQP protocol frames
+- add support for basic.recover in the API
+- name threads, to aid troubleshooting
+- allow applications to adjust socket configuration, e.g. buffer sizes
+- extend codec with array type ('A')
+- throw a more informative exception (UnknownChannelException) when
+ receiving a frame for an unknown channel
+- add proper headers to auto-generated code
+
+.net client
+-----------
+bug fixes
+- close connections on app domain unload, thus preventing spurious
+ errors and possible connection leaks when the client is run in
+ certain app containers, e.g. IIS
+- close socket on ssl upgrade error, thus plugging a socket leak
+- resolve various bugs in the ssl negotiation code that cause it to
+ fail on .Net proper (though not mono)
+
+enhancements
+- improve performance by introducing I/O buffering
+- permit ssl connections that do not validate the server certificate
+- improve standard display of BrokerUnreachableException
+- make SharedQueue implement IEnumerable and allow multiple concurrent
+ enumerators per instance
+- switch the code gen to the BSD-licensed version of the AMQP spec
+- extend codec with array type ('A')
+- add proper headers to auto-generated code
+
+building & packaging
+--------------------
+bug fixes
+- stop Debian package purge from failing after plug-in (de)activation
+- when upgrading the rpm package, do not remove rabbit from any
+ runlevels
+- fix error handling in rabbit.app generation, ensuring that errors
+ are reported rather than written to the generated file
+- during Debian package removal, only kill epmd if it was started by
+ the rabbitmq user, in order to reduce the likelihood of interference
+ with other Erlang applications
+- resolve minor incompatibility with some versions of 'echo' that
+ could result in spurious '-e's appearing in script error messages
+
+enhancements
+- make MacPorts package work on Snow Leopard
+- streamline dependencies in MacPorts package
+- automate generation of MacPorts package and create a RabbitMQ
+ MacPorts repository - see https://www.rabbitmq.com/macports.html
+- mirror downloads onto Amazon Cloudfront, for better availability and
+ download speed
+- allow 'rabbitmq' user to execute the various wrapper scripts
+
+Upgrading
+=========
+The database schema has not changed since the 1.6.0 release, so user
+accounts, durable exchanges and queues, and persistent messages will
+all be retained during the upgrade.
+
+If, however, you are upgrading from a release prior to 1.6.0, when the
+RabbitMQ server detects the presence of an old database, it moves it
+to a backup location, creates a fresh, empty database, and logs a
+warning. If your RabbitMQ installation contains important data then we
+recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
diff --git a/release-notes/README-1.7.2.txt b/release-notes/README-1.7.2.txt
new file mode 100644
index 0000000000..a4c66001fd
--- /dev/null
+++ b/release-notes/README-1.7.2.txt
@@ -0,0 +1,75 @@
+Release: RabbitMQ 1.7.2
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- fix a number of problems with memory monitoring under Windows,
+ including compatibility issues with versions of Erlang/OTP older
+ than R13, and 64-bit versions of Windows. See the updated
+ documentation at https://www.rabbitmq.com/extensions.html#memsup
+- correct various path escaping bugs under Windows that could result
+ in RabbitMQ failing to start
+- make 'rabbitmq-multi start_all <n>' work again for n>1
+- issuing a basic.qos when there are outstanding acks can no longer
+ result in a higher limit than requested
+- enforce codec size limits, thus preventing the server from sending
+ invalid AMQP frames
+
+enhancements
+- add rabbitmqctl list_channels and list_consumers commands, and add
+ exclusivity information to list_queues. Also introduce a
+ close_connection command to allow an administrator to selectively
+ terminate client connections. See the updated admin guide at
+ https://www.rabbitmq.com/admin-guide.html for details on these new
+ features.
+- remove the explicit setting of TCP buffer sizes in the server, thus
+ allowing auto-(re)sizing to occur. This generally results in
+ substantially improved throughput over high-latency links, and makes
+ manual fine-tuning easier.
+- introduce declarative boot sequencing, which allows plugins to be
+ started at arbitrary chosen points during the sequence
+
+Java client
+-----------
+bug fixes
+- ensure that QueuingConsumer throws an ShutdownSignalException in
+ *all* consuming threads, not just one
+- fix race conditions in 'tracer' tool that could cause it to fail
+
+enhancements
+- make exception stack traces more meaningful
+- allow overriding of several RpcClient methods, for easier extension
+ and re-use
+- improve performance of channel creation for high channel counts
+- improve performance of 'tracer' tool
+- add option to 'tracer' tool to suppress content bodies, which is
+ useful for tracing connections carrying a high data volume
+- better exception reporting in 'tracer' tool
+
+.net client
+-----------
+enhancements
+- improve performance of channel creation for high channel counts
+
+building & packaging
+--------------------
+bug fixes
+- under macports, ensure env var settings are passed to the various
+ startup and control scripts
+
+
+Upgrading
+=========
+The database schema has not changed since the 1.6.0 release, so user
+accounts, durable exchanges and queues, and persistent messages will
+all be retained during the upgrade.
+
+If, however, you are upgrading from a release prior to 1.6.0, when the
+RabbitMQ server detects the presence of an old database, it moves it
+to a backup location, creates a fresh, empty database, and logs a
+warning. If your RabbitMQ installation contains important data then we
+recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
diff --git a/release-notes/README-1.8.0.txt b/release-notes/README-1.8.0.txt
new file mode 100644
index 0000000000..344e558acc
--- /dev/null
+++ b/release-notes/README-1.8.0.txt
@@ -0,0 +1,208 @@
+Release: RabbitMQ 1.8.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- prevent a change in host name from preventing RabbitMQ from being
+ restarted.
+- ensure that durable exclusive queues do not survive a restart of the
+ broker.
+- fix a race condition that could occur when concurrently declaring
+ exclusive queues.
+- ensure that queues being recovered by a node in a cluster cannot be
+ accessed via other nodes until the queue is fully initialised.
+- prevent bursts of declarations or deletions of queues or exchanges
+ from exhausting mnesia's transactional capacity.
+- prevent bursts of connections from exhausting TCP backlog buffers.
+- various corrections to documentation to correct discrepancies
+ between the website, the man pages, and the commands' usage outputs.
+
+enhancements
+------------
+- introduce a pluggable exchange type API permitting plugins to the
+ broker to define new exchange types which can then be used by
+ clients.
+- introduce a backing queue API permitting plugins to the broker to
+ define new ways in which messages can be stored.
+- several semantic changes to bring the behaviour inline with the AMQP
+ 0-9-1 spec:
+ + honour many of the queue exclusivity requirements for AMQP 0-9-1,
+ such as queue redeclaration, basic.get, queue.bind and
+ queue.unbind.
+ + honour exchange and queue equivalence requirements for AMQP 0-9-1,
+ especially for queue and exchange redeclaration.
+ + ensure that exclusive queues are synchronously deleted before the
+ connection fully closes.
+ + permit durable queues to be bound to transient exchanges.
+ + enforce detection and raising exceptions due to invalid and reused
+ delivery-tags in basic.ack rigorously
+ + queue.purge now does not remove unacknowledged messages.
+- require clients to respond to channel.flow messages within 10
+ seconds to avoid an exception being raised and more rigorously deal
+ with clients that disobey channel.flow messages. See
+ https://www.rabbitmq.com/extensions.html#memsup
+- the server now supports the client sending channel.flow messages to
+ temporarily halt the flow of deliveries to the client.
+- optimise cross-node routing of messages in a cluster scenario whilst
+ maintaining visibility guarantees.
+- ensure that clients who present invalid credentials cannot flood the
+ broker with requests.
+- drop support for versions of Erlang older than R12B-3.
+- ensure that the minimum number of frames are used to deliver
+ messages, regardless of incoming and outgoing frame sizes.
+- display the current version of Erlang when booting Rabbit, and
+ ensure the version is sufficiently youthful.
+- work around some name resolver issues, especially under Windows.
+- introduce a Pacemaker OCF script (and then fix it, thanks to patches
+ by Florian Haas) to permit RabbitMQ to be used in basic
+ active/passive HA scenarios (see
+ https://www.rabbitmq.com/pacemaker.html).
+
+
+java client
+-----------
+bug fixes
+- fix a race condition when closing channels which could lead to the
+ same channel being closed twice.
+- MulticastMain could calculate negative rates, due to integer
+ wrapping.
+- be consistent about naming conventions.
+
+enhancements
+- Java client is now available via Maven Central.
+- redesign the ConnectionFactory to be more idiomatic.
+- expose server properties in connection.start.
+- allow additional client properties to be set in connection.start_ok.
+- attempt to infer authentication failures and construct appropriate
+ exceptions.
+- MulticastMain now logs returned publishes.
+
+
+.net client
+-----------
+bug fixes
+- prevent memory leak due to DomainUnload event handler.
+- improvements to catching connections which are timing out.
+- ensure explicitly numbered closed channels return their channel
+ number to the pool correctly.
+- removed artificial limitation on maximum incoming message size.
+
+enhancements
+- expose server properties in connection.start.
+- allow additional client properties to be set in connection.start_ok.
+- attempt to infer authentication failures and construct appropriate
+ exceptions.
+
+
+code generation
+---------------
+enhancements
+- permit multiple specifications to easily be combined and merged.
+- permit any number of different "actions" in code generation.
+
+
+building & packaging
+--------------------
+bug fixes
+- stop the INSTALL file from being installed in the wrong place by the
+ Debian packages.
+
+enhancements
+- source rpm (.src.rpm) packages are now available
+- rpm packages are now noarch, matching the debs
+
+
+Upgrading
+=========
+The database schema and the format in which persistent messages are
+stored have both changed since the last release (1.7.2). When
+starting, the RabbitMQ server will detect the existence of an old
+database and will move it to a backup location, before creating a
+fresh, empty database, and will log a warning. If your RabbitMQ
+installation contains important data then we recommend you contact
+rabbitmq-sales@pivotal.io for assistance with the upgrade.
+
+
+Important notes on the AMQP 0-9-1 semantic changes
+==================================================
+
+This release incorporates a number of semantic changes to the broker
+behaviour which bring the broker more in-line with the AMQP 0-9-1
+specification. We don't think any of these changes are going to be a
+big problem for anyone, and will probably be irrelevant for most
+people. In almost all cases they're tightening up or tidying up edge
+cases where the 0-8 spec was incomplete or specified something
+unhelpful. However, it's probably worth reading the list below to make
+absolutely sure you're not depending on any of our existing weird
+behaviour.
+
+
+Reuse of delivery tags
+----------------------
+
+In previous versions of RabbitMQ, you could ack the same message with
+the same delivery tag multiple times. In 1.8.0 this will cause a
+not-found exception. Note that if a message is redelivered for any
+reason it will get a new delivery tag so you can ack it again.
+
+
+Exchange equivalence
+--------------------
+
+In previous versions of RabbitMQ you could actively declare an
+exchange with one set of durable and auto-delete parameters, then
+actively declare it again with different parameters and get the same
+exchange back. This now causes a precondition_failed exception, as it
+would if the type does not match. Note that with the old behaviour the
+exchange did not actually change to match the new parameters; you just
+got back something that was not what you asked for.
+
+In previous versions, when passively declaring an exchange, the type
+parameter was checked (but not the durable and auto-delete
+parameters). Now only the name is checked. Passive declaration cannot
+create an exchange, and exchanges are only identified by their
+name. Therefore it does not make sense to require the other parameters
+of exchange.declare to match the exchange declaration in the passive
+case.
+
+
+Queue equivalence
+-----------------
+
+Similarly, when actively redeclaring a queue you could vary the
+durable and auto-delete parameters and get back a queue which did not
+match what you asked for. Again, this is now causes a
+precondition_failed exception. Likewise, passive declaration of
+queues only needs to match on the queue name, not any other
+parameters.
+
+
+Purging unacknowledged messages
+-------------------------------
+
+When queue.purge is called, messages which had been send but not
+acknowledged used to be purged. Now they are not. This makes much more
+sense as consumers from a queue may have no idea whether or not a
+queue has been purged by some other client.
+
+
+Binding durable queues to transient exchanges
+---------------------------------------------
+
+This used not to be permitted. Now it is. The binding is considered
+transient.
+
+
+Queue exclusivity enforcement
+-----------------------------
+
+In previous versions of RabbitMQ, an exclusive queue could still be
+accessed by other connections for (un)binding or basic.get. This is now
+not permitted.
+
+Also, an exclusive queue would continue to exist for a short time after
+the connection was closed. It's now deleted while the connection is
+being closed (assuming that's happening in an orderly manner).
diff --git a/release-notes/README-1.8.1.txt b/release-notes/README-1.8.1.txt
new file mode 100644
index 0000000000..382d758a36
--- /dev/null
+++ b/release-notes/README-1.8.1.txt
@@ -0,0 +1,69 @@
+Release: RabbitMQ 1.8.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+ - unbinding from an auto-delete exchange produced an error
+ - the message count reported when declaring a queue was incorrect under rare
+ conditions
+ - it was possible for a channel.close_ok message to get lost in rare
+ circumstances
+
+enhancements
+------------
+ - clustering produces better error messages when clustering fails
+ - the AMQP 0.8 specification permitted a rare case of deadlock while closing
+ channels and connections. AMQP 0.9.1 forbids this condition and RabbitMQ now
+ implements the correction
+ - the AMQP basic.recover method is now synchronous by default - the
+ asynchronous version is still available, but deprecated
+ - the AMQP basic.recover method is now permitted in transacted channels, where
+ this was previously forbidden
+ - maximum AMQP frame size is specified more rigorously in AMQP 0.9.1 - RabbitMQ
+ now enforces the negotiated maximum frame size
+ - AMQP 0.9.1 guidance on error constants is now followed more closely and
+ 0.9.1 error codes are produced in more situations
+ - SSL compatiblity under R14A has been improved
+
+java client
+-----------
+enhancements
+ - the API can now report on channel flow events
+ - better handling of unsolicited messages and unknown consumer tags, by adding
+ a default consumer
+ - documentation enhancements around the use of AMQConnection
+
+.net client
+-----------
+enhancements
+ - better handling of unsolicited messages and unknown consumer tags, by adding
+ a default consumer
+ - documentation enhancements around the use of ConnectionFactory
+
+building & packaging
+--------------------
+bug fixes
+ - fix permission errors for commandline utilities in MacPorts
+
+enhancements
+ - compiles under Erlang R14A
+ - builds using GNU Make 3.80 - previously version 3.81 was required
+ - error output when using old versions of GNU Make has been added
+ - builds under RHEL5 and distributions with xmlto version 0.0.18
+ - better type-checking, making use of recent features in Dialyzer
+
+Upgrading
+=========
+The database schema has not changed since version 1.8.0, so user accounts,
+durable exchanges and queues, and persistent messages will all be retained
+during the upgrade.
+
+If, however, you are upgrading from a release prior to 1.8.0, when the
+RabbitMQ server detects the presence of an old database, it moves it to a
+backup location, creates a fresh, empty database, and logs a warning. If
+your RabbitMQ installation contains important data then we recommend you
+contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
+
diff --git a/release-notes/README-2.0.0.txt b/release-notes/README-2.0.0.txt
new file mode 100644
index 0000000000..8128240016
--- /dev/null
+++ b/release-notes/README-2.0.0.txt
@@ -0,0 +1,98 @@
+Release: RabbitMQ 2.0.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- correct file descriptor limits on Windows, preventing crashes due to
+ exceeding the limit
+- fix bug that resulted in 'rabbitmqctl status' reporting disk nodes
+ as ram nodes
+- tx.commit no longer fails when participating queues are deleted
+ during the lifetime of the transaction
+- more robust logic to detect changes in the data layout between
+ rabbit versions and thus guard against upgrade failures
+
+enhancements
+- new persister
+ - the volume of messages rabbit can hold on to is bounded by disk
+ space (in previous versions it was bounded by memory)
+ - rabbit optimises memory usage by paging messages out to / in from
+ disk as needed
+ - consistently high performance regardless of retained message
+ volume (previous versions would slow down considerably as the
+ persisted message volume grew)
+ - consistently fast startup regardless of volume of persisted data
+ (previous versions would require time proportional to the amount
+ of data)
+ - better performance for concurrent transactions (in previous
+ version the rate at which queues could handle transactions
+ involving persistent messages was fixed)
+- implement AMQP 0-9-1, in addition to 0-8 - see
+ https://www.rabbitmq.com/specification.html
+- instrumentation for asynchronous statistics events, emitting more
+ stats than currently available and laying the foundation for
+ monitoring a busy broker without crippling performance -
+ see https://blog.rabbitmq.com/posts/2010/08/management-monitoring-and-statistics/
+- more effective flow control mechanism that does not require
+ cooperation from clients and reacts quickly to prevent the broker
+ from exhausing memory - see https://www.rabbitmq.com/extensions.html#memsup
+- implement basic.reject - see
+https://blog.rabbitmq.com/posts/2010/08/well-ill-let-you-go-basicreject-in-rabbitmq/
+- simplify plugin activation by moving it into the server startup
+- permit upgrades of Erlang w/o breaking rabbit servers with activated
+ plugins
+- introduce support for queue leases - see https://www.rabbitmq.com/extensions.html#queue-leases
+- improve the setting of permissions, making it easer to use and
+ introducing a way to grant no permissions at all - see https://www.rabbitmq.com/admin-guide.html#management
+- delete exclusive queues synchronously on server-initiated connection
+ close (rather than just client-initiated)
+
+java client
+-----------
+bug fixes
+- prevent spurious timeout exceptions that theoretically could have
+ arisen due to spurios thread wake-ups
+
+enhancements
+- switch to AMQP 0-9-1 - see
+ https://www.rabbitmq.com/specification.html
+
+.net client
+-----------
+bug fixes
+- fix bug that caused incorrect responses to server-issued
+ channel.flow commands, which in turn resulted in connections getting
+ closed with an error.
+- make SSL connections work in Mono
+
+enhancements
+- implement AMQP 0-9-1, in addition to 0-8 and 0-9 - see
+ https://www.rabbitmq.com/specification.html
+- simplify the Subscription class and make it more versatile
+- improve documentation
+
+building & packaging
+--------------------
+bug fixes
+- correct location of rabbitmq.config file under macports - it now
+ lives in /opt/local/etc/rabbitmq/
+- "make docs_all" now works on more platforms
+
+enhancements
+- portable, binary plugin releases to simplify plugin installation -
+ see https://www.rabbitmq.com/plugins.html
+- automatically create plugin directory, to streamline plugin
+ installation
+
+Upgrading
+=========
+The database schema and the format in which persistent messages are
+stored have both changed since the last release (1.8.1). When
+starting, the RabbitMQ server will detect the existence of an old
+database and will move it to a backup location, before creating a
+fresh, empty database, and will log a warning. If your RabbitMQ
+installation contains important data then we recommend you contact
+rabbitmq-sales@pivotal.io for assistance with the upgrade.
diff --git a/release-notes/README-2.1.0.txt b/release-notes/README-2.1.0.txt
new file mode 100644
index 0000000000..0a5e70d45c
--- /dev/null
+++ b/release-notes/README-2.1.0.txt
@@ -0,0 +1,53 @@
+Release: RabbitMQ 2.1.0
+
+Release Highlights
+==================
+
+server
+------
+enhancements
+ - detects incorrect nodename in rabbitmq_multi
+ - extend supported timeout types for queue lease, see
+ https://www.rabbitmq.com/extensions.html#queue-leases
+ - print plugin versions on startup
+ - extend permissions system - add 'is_admin' field; useful for
+ the management plugin
+ - queue.declare and queue.delete should always work quickly, even
+ if the broker is busy
+
+bug fixes
+ - the 'client' permission scope wasn't working correctly
+ - in the presence of 'verify_peer' option broker will now not accept
+ self-signed ssl certificates
+ - fixed sasl logging to terminal
+ - fixed 'rabbitmq_multi stop_all' on freebsd
+ - fixed race condition which might result in a message being lost when
+ the broker is quitting
+ - fixed race condition in heartbeat handling, which could result
+ in a connection being dropped without logging the reason for that
+
+java client
+-----------
+enhancements
+ - basic.consume 'filter' argument is now called 'arguments'
+ - dropped Channel.queuePurge/2 method
+ - added --help flag to MulticastMain
+
+.net client
+-----------
+enhancements
+ - basic.consume 'filter' argument is now called 'arguments'
+
+bug fixes
+ - fixed race condition in synchronous basic.recover
+ - codegen was generating incorrect code for nowait parameter
+
+
+Upgrading
+=========
+The database schema has changed since the last release (2.0.0). When
+starting, the RabbitMQ server will detect the existence of an old
+database and will move it to a backup location, before creating a
+fresh, empty database, and will log a warning. If your RabbitMQ
+installation contains important data then we recommend you contact
+rabbitmq-sales@pivotal.io for assistance with the upgrade.
diff --git a/release-notes/README-2.1.1.txt b/release-notes/README-2.1.1.txt
new file mode 100644
index 0000000000..4203f8905a
--- /dev/null
+++ b/release-notes/README-2.1.1.txt
@@ -0,0 +1,60 @@
+Release: RabbitMQ 2.1.1
+
+Release Highlights
+==================
+
+server
+------
+enhancements
+ - add exchange to exchange bindings. See
+ www.rabbitmq.com/extensions.html#exchange-bindings. Blog post forthcoming.
+ - reduce disk use when creating and deleting queues
+ - faster connection termination and queue deletion for connections
+ that use exclusive queues
+ - miscellaneous persister performance improvements
+ - extend queue leases on declaration
+ - add 'client_flow' channel info item for 'rabbitmqctl list_channels'
+ - add SSL information for 'rabbitmqctl list_connections'
+ - enforce restrictions regarding the default exchange
+ - add version information to database - for future upgrades
+ - better memory detection on AIX
+
+bug fixes
+ - fix a bug that could kill rabbit after a queue.purge
+ - fix a bug which could cause 'rabbitmqctl list_connections' to crash
+ some of the connection handlers
+ - reduce per-queue memory back to expected levels
+ - don't ignore channel.flow when there were no consumers
+ - fix some bugs that caused too few or too many stats to be emitted
+
+java client
+-----------
+bug fixes
+ - eliminate the possibility of deadlock when opening channels at the
+ same times as others are being closed
+ - move heartbeat sender into a separate thread to ensure that missing
+ heartbeats are detected promptly in all cases
+
+.net client
+-----------
+enhancements
+ - added a means to detect when channel.flow is active
+
+building & packaging
+--------------------
+enhancements
+ - better use of dialyzer: report more warnings
+ - better dependency handling in server build, reducing rebuilds
+
+
+Upgrading
+=========
+The database schema has not changed since version 2.1.0, so user accounts,
+durable exchanges and queues, and persistent messages will all be retained
+during the upgrade.
+
+If, however, you are upgrading from a release prior to 2.1.0, when the
+RabbitMQ server detects the presence of an old database, it moves it to a
+backup location, creates a fresh, empty database, and logs a warning. If
+your RabbitMQ installation contains important data then we recommend you
+contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
diff --git a/release-notes/README-2.2.0.txt b/release-notes/README-2.2.0.txt
new file mode 100644
index 0000000000..88231a0f20
--- /dev/null
+++ b/release-notes/README-2.2.0.txt
@@ -0,0 +1,106 @@
+Release: RabbitMQ 2.2.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- fix issue that causes cross-cluster communication to deadlock after
+ sustained cluster activity
+- fix queue memory leak when using the management plugin or other
+ consumers of queue statistics
+- brokers started with rabbitmq_multi.bat are now restartable
+- clustering reset no longer destroys installed plugins
+- fix race condition between queue declaration and connection
+ termination that causes spurious noproc errors to appear in the log
+- fix memory leak when long-running channels consume and cancel on
+ many queues
+- queue.declare and exchange.declare raise precondition_failed rather
+ than not_allowed when attempting to redeclare a queue or exchange
+ with parameters different than those currently known to the broker
+
+enhancements
+- automatic, lossless upgrade to new versions of RabbitMQ
+ (when not clustered)
+- support per-queue message TTL. See:
+ https://www.rabbitmq.com/extensions.html#queue-ttl
+- the volume of pending acks is now bounded by disk space rather
+ than by memory
+- store passwords as hashes
+- allow server properties to be configured in the RabbitMQ config file
+- SSL connections are listed as such by rabbitmqctl
+- simplify permission configuration by removing the client
+ permission scope
+- improve performance of message routing
+- removed support for basic.recover with requeue=false
+
+java client
+-----------
+enhancements
+- 'noAck' argument renamed to 'autoAck'
+- add PossibleAuthenticationFailureException and
+ ProtocolVersionMismatchException to match up with the .net client.
+
+.net client
+-----------
+bug fixes
+- fix race condition that can cause spurious SocketErrors to be thrown
+ during connection.close
+- fix WCF support to use 'amq.direct' exchange instead of default
+ exchange
+
+management plugin
+-----------------
+bug fixes
+- fix issue preventing user authentication when using Safari
+- backing queue stats now display correctly
+
+enhancements
+- the management plugin is now fully cluster-aware
+- show detailed incoming/outgoing message rates per channel, exchange
+ and queue
+- show active/idle state for channels and queues
+- show node uptime, rabbit version, erlang version and total queued
+ messages
+- add tab completion to rabbitmqadmin
+
+STOMP plugin
+------------
+enhancements
+- overhaul the destination selection process to use only the
+ 'destination' header
+- add support for /queue and /topic destinations
+- remove support for custom 'routing_key' and 'exchange headers' and
+ introduce /exchange/<name>/<key> destination type
+- the order of SEND and SUBSCRIBE frames is no longer important
+- STOMP listeners show up as such in the management plugin
+
+build and packaging
+-------------------
+bug fixes
+- remove build-time dependency on OTP source to allow users to
+ build without the OTP source present
+- eliminate all valid dialyzer errors
+
+enhancements
+- include pre-compiled man pages in the MacPorts distribution,
+ drastically reducing the number of dependencies required.
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
+the RabbitMQ installation does not contain any important data then
+simply install the new version. RabbitMQ will move the existing data
+to a backup location before creating a fresh, empty database. A
+warning is recorded in the logs. If your RabbitMQ installation
+contains important data then we recommend you contact
+rabbitmq-sales@pivotal.io for assistance with the upgrade.
diff --git a/release-notes/README-2.3.0.txt b/release-notes/README-2.3.0.txt
new file mode 100644
index 0000000000..54de49e4c4
--- /dev/null
+++ b/release-notes/README-2.3.0.txt
@@ -0,0 +1,163 @@
+Release: RabbitMQ 2.3.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- prevent message store deleting open files leading to eaccess on Windows
+ and potential disk space leak
+- various bugs in delegate leading to poor cluster performance and
+ nodes blocking if other nodes are down
+- ensure regular flushes of queue index data to disk resulting in better
+ data retention in the event of a broker failure
+- prevent queues from hibernating indefinitely on startup under memory
+ pressure
+- prevent message store in-memory cache from becoming too large
+- prevent infinite loop after certain types of queue process crash,
+ and prevent such a crash during queue deletion on Erlang R12B3
+- make SASL PLAIN parser more robust
+- fix startup scripts to work on Solaris 10
+- prevent delivery of large messages to consumers from blocking deliveries
+ on other channels
+- basic.recover affects prefetch count
+- prevent channel crash on basic.recover to a deleted queue
+- correct serialisation of PIDs in clusters, without which the
+ management plug-in failed to display some detailed stats
+- prevent potential crash of queues in clusters in the event of
+ improbable ordering of events upon the death of a channel
+- add missing failure diagnostics on rabbitmqctl list_consumers
+- fix truncated failure diagnostics for rabbitmqctl under Windows
+
+enhancements
+- add confirm mode - an extension to the AMQP 0-9-1 spec allowing
+ clients to receive streaming receipt confirmations for the messages
+ they publish. See
+ https://www.rabbitmq.com/extensions.html#confirms for more information.
+- add a basic.nack method. See
+ https://www.rabbitmq.com/extensions.html#negative-acknowledgements
+- add an unforgeable user-id header. See
+ https://www.rabbitmq.com/extensions.html#validated-user-id
+- pluggable SASL authentication mechanisms, and a new plugin
+ to authenticate using SSL (see below)
+- pluggable authentication / authorisation backends, and a new plugin
+ to authenticate and authorise using LDAP (see below)
+- internal exchanges (cannot be published to directly,
+ typically used with exchange-to-exchange bindings)
+- users can be made unable to log in with a password
+- IPv6 support. RabbitMQ will listen on IPv4 and IPv6 by default.
+- list SSL algorithm information in rabbitmqctl
+- improved diagnostic error messages in common startup error cases
+- allow node name to be specified without a host
+- persister optimisation - eliminate unnecessary pending actions upon
+ queue deletion (pseudo pipeline flush)
+- improve pluggable exchange type API to allow better handling of race
+ conditions
+
+
+java client
+-----------
+bug fixes
+- fix for compilation under Java 1.5
+- remove support for Java 1.4
+
+enhancements
+- confirm mode
+- pluggable SASL authentication mechanisms
+- include generated source in Maven source bundle
+
+
+.net client
+-----------
+bug fixes
+- noAck set correctly in Subscription class
+
+enhancements
+- confirm mode
+- pluggable SASL authentication mechanisms
+- API tidied up to more closely resemble that of the Java client
+- distribute XML documentation with binary release
+
+
+management plugin
+-----------------
+bug fixes
+- race condition that can lead to stats db failing on queue deletion
+- closing connections on remote cluster nodes
+- fix web UI memory leaks in Chrome
+- mitigate web UI memory leaks in all browsers
+
+enhancements
+- command line tool rabbitmqadmin can display overview statistics and
+ filter columns
+- context-sensitive help
+- web UI state is persistent
+- display statistics for confirms
+- API: empty fields can be omitted on PUT
+- no longer depends on the crypto application, simplifying installation
+ for some users
+
+
+STOMP plugin
+------------
+bug fixes
+- plug channel leak on UNSUBSCRIBE
+- fix breakage of SEND after UNSUBSCRIBE
+- gracefully handle SUBSCRIBE to non-existent exchange
+- correct semantics of UNSUBSCRIBE receipts
+
+enhancements
+- updates to support the draft STOMP 1.1 spec
+- major refactoring to use OTP behaviours
+- enhanced and fixed examples
+- IPv6 support
+
+
+build and packaging
+-------------------
+
+enhancements
+- Windows bundle now includes Erlang R14B01
+
+
+shovel plugin
+-------------
+bug fixes
+- close client connections properly if failure occurs during startup
+
+enhancements
+- allow specification of heartbeat, frame_max and channel_max in
+ connection URI
+
+
+ssl authentication mechanism plugin
+-----------------------------------
+Experimental plugin allowing clients to authenticate with the SASL
+EXTERNAL mechanism and client SSL certificates. A password is not
+required.
+
+
+ldap authentication backend plugin
+----------------------------------
+Experimental plugin allowing the authentication / authorisation
+database to be hosted in an LDAP server.
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
+the RabbitMQ installation does not contain any important data then
+simply install the new version. RabbitMQ will move the existing data
+to a backup location before creating a fresh, empty database. A
+warning is recorded in the logs. If your RabbitMQ installation
+contains important data then we recommend you contact
+rabbitmq-sales@pivotal.io for assistance with the upgrade.
diff --git a/release-notes/README-2.3.1.txt b/release-notes/README-2.3.1.txt
new file mode 100644
index 0000000000..7d62429044
--- /dev/null
+++ b/release-notes/README-2.3.1.txt
@@ -0,0 +1,36 @@
+Release: RabbitMQ 2.3.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- fix critical bug causing queue processes to sometimes crash when
+ using transactions or confirms
+- improve error message when failing to declare a queue or exchange due
+ to argument equivalence
+
+java client
+-----------
+bug fixes
+- fix race condition closing a channel
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
+the RabbitMQ installation does not contain any important data then
+simply install the new version. RabbitMQ will move the existing data
+to a backup location before creating a fresh, empty database. A
+warning is recorded in the logs. If your RabbitMQ installation
+contains important data then we recommend you contact
+rabbitmq-sales@pivotal.io for assistance with the upgrade.
diff --git a/release-notes/README-2.4.0.txt b/release-notes/README-2.4.0.txt
new file mode 100644
index 0000000000..0724be09d4
--- /dev/null
+++ b/release-notes/README-2.4.0.txt
@@ -0,0 +1,143 @@
+Release: RabbitMQ 2.4.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- in a cluster, don't fail with an internal-error when re-declaring a
+ queue on a connection to a node other than the queue's "home" node
+- in a cluster, report a not-found error instead of internal-error
+ when attempting to re-declare a durable queue whose node is
+ unavailable
+- do not ignore the RABBITMQ_LOG_BASE variable on Windows
+- fix a bug causing SSL connections to die on Erlang prior to R14
+ when using "rabbitmqctl list_connections" with the SSL options
+- various minor fixes
+
+enhancements
+- greatly speed up routing for topic exchanges with many bindings
+- propagate memory alarms across cluster, thus reacting better to
+ memory pressure on individual nodes.
+- sender-selected distribution (i.e. add support for the CC and BCC
+ headers). See
+ https://www.rabbitmq.com/extensions.html#sender-selected-distribution
+ for more information.
+- server-side consumer cancellation notifications. See
+ https://www.rabbitmq.com/extensions.html#consumer-cancel-notify
+ for more information.
+- have the server present its AMQP extensions in a "capabilities"
+ field in server-properties. See
+ https://www.rabbitmq.com/extensions.html#capabilities
+ for more information.
+- determine file descriptor limits accurately on Windows, usually
+ resulting in much higher limits than previously, which allows more
+ connections and improves performance
+- indicate in the logs when the file descriptor limit has been reached
+ (causing the server to not accept any further connections)
+- allow SASL mechanisms to veto themselves based on socket type
+- rename rabbitmq.conf to rabbitmq-env.conf, to avoid confusion with
+ rabbitmq.config
+- improve performance of publisher confirms
+- various other minor enhancements and performance improvements
+
+
+java client
+-----------
+bug fixes
+- prevent stack overflow when connections have large numbers channels
+- do not require a working reverse DNS when establishing connections
+
+enhancements
+- ConnectionFactory accepts a connection timeout parameter
+- allow prioritisation of SASL mechanisms
+- support for server-side consumer cancellation notifications
+- have the client present its AMQP extensions in a "capabilities"
+ field in client-properties
+- rename ReturnListener.handleBasicReturn to handleReturn
+
+
+.net client
+-----------
+bug fixes
+- WCF bindings specified in configuration files are no longer ignored
+
+enhancements
+- support for server-side consumer cancellation notifications
+- have the client present its AMQP extensions in a "capabilities"
+ field in client-properties
+- support IPv6
+
+
+management plugin
+-----------------
+bug fixes
+- hide passwords in the web UI
+- fix rabbitmqadmin's handling of Unicode strings
+
+enhancements
+- present the managed socket and open file counts and respective limits
+- better memory usage reporting for hibernating queues
+- better support for serving the web interface through a proxy
+- allow users to choose which node a queue is declared on
+- show memory alarm states for nodes
+- show statistics for basic.returns
+- publish/receive messages via HTTP; this is intended for testing /
+ learning / debugging, not as a general solution for HTTP messaging
+
+
+STOMP plugin
+------------
+bug fixes
+- prevent crash when publishing from STOMP, but subscribing from
+ non-STOMP
+- correctly process publishes spanning multiple network packets
+- do not crash when publishing with undefined headers
+- receipts for SEND frames wait on confirms
+- do not issue a DISCONNECT with receipt when a clean shutdown has
+ *not* occurred
+
+enhancements
+- add documentation. See https://www.rabbitmq.com/stomp.html
+- significant performance improvements
+- extend flow-control on back pressure through the STOMP gateway
+ preventing the STOMP from overloading the server
+- support for the "persistent" header
+- support for multiple NACK
+
+
+SSL authentication mechanism plugin
+-----------------------------------
+enhancements
+- only offer this mechanism on SSL connections
+
+
+build and packaging
+-------------------
+enhancements
+- Windows installer for the broker
+- remove the rabbitmq-multi script in order to simplify startup and
+ improve error reporting
+- add the "cond-restart" and "try-restart" options to the init script
+- specify runlevels in the rabbitmq-server.init script
+- make the java client jar an OSGi bundle
+- Debian package only depends on erlang-nox
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
+the RabbitMQ installation does not contain any important data then
+simply install the new version. RabbitMQ will move the existing data
+to a backup location before creating a fresh, empty database. A
+warning is recorded in the logs. If your RabbitMQ installation
+contains important data then we recommend you contact
+rabbitmq-sales@pivotal.io for assistance with the upgrade.
diff --git a/release-notes/README-2.4.1.txt b/release-notes/README-2.4.1.txt
new file mode 100644
index 0000000000..bacad447d9
--- /dev/null
+++ b/release-notes/README-2.4.1.txt
@@ -0,0 +1,87 @@
+Release: RabbitMQ 2.4.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- fix breakage of upgrades when durable queues are present or
+ following a non-clean shutdown
+- prevent "rabbitmqctl wait" from waiting forever in certain
+ circumstances
+- the broker can be run on Erlang R12B-3 again
+- some other small bug fixes
+
+enhancements
+- upgrades in clusters. See
+ https://www.rabbitmq.com/clustering.html#upgrading
+- improve memory usage when dealing with persistent messages waiting
+ on acks from consumers
+- better error reporting for some startup problems
+- add timestamp to events published to the amq.rabbit.log exchange
+
+
+java client
+-----------
+enhancements
+- remove dependency on javax.security.sasl, thus improving
+ compatibility with Android and WebSphere
+
+
+.net client
+-----------
+bug fixes
+- the client can be built on .NET 2.0 again
+
+
+management plugin
+-----------------
+bug fixes
+- fix issue that would cause non-admin users to be repeatedly prompted
+ for their password when viewing the queues page
+
+
+STOMP plugin
+------------
+bug fixes
+- the plugin works on Erlang R12 again
+
+
+SSL authentication mechanism plugin
+-----------------------------------
+bug fixes
+- accept SSL certificates with fields containing characters
+ outside ASN.1 PrintableString (e.g. underscores)
+
+
+build and packaging
+-------------------
+bug fixes
+- the OCF script works correctly when specifying an alternative
+ configuration file
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
+the new version on all the nodes and follow these instructions:
+ https://www.rabbitmq.com/clustering.html#upgrading
+All configuration and persistent message data is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
+from releases prior to 2.1.0, if the RabbitMQ installation does not
+contain any important data then simply install the new
+version. RabbitMQ will move the existing data to a backup location
+before creating a fresh, empty database. A warning is recorded in the
+logs. If your RabbitMQ installation contains important data then we
+recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
diff --git a/release-notes/README-2.5.0.txt b/release-notes/README-2.5.0.txt
new file mode 100644
index 0000000000..c6495020c4
--- /dev/null
+++ b/release-notes/README-2.5.0.txt
@@ -0,0 +1,135 @@
+Release: RabbitMQ 2.5.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- reduce complexity of recovery, significantly improving startup times
+ when there are large numbers of exchanges or bindings
+- recover bindings between durable queues and non-durable exchanges
+ on restart of individual cluster nodes
+- do not read messages off disk in the x-message-ttl logic. This could
+ severely impact performance when many queues expired messages
+ (near)simultaneously.
+- resolve a timer issue that could impact performance when under high
+ load and memory pressure
+- make source code compilable with latest Erlang release (R14B03)
+- assert x-message-ttl equivalence on queue redeclaration
+
+enhancements
+- tracing facility for incoming and outgoing messages - see
+ https://www.rabbitmq.com/firehose.html
+- optionally serialise events for exchange types
+- detect available memory on OpenBSD
+- add Windows service description
+- improve inbound network performance
+- improve routing performance
+- new rabbitmqctl commands:
+ report - comprehensive report of server status for support purposes
+ environment - display application environment (such as config vars)
+ cluster_status - display cluster status (formerly part of 'status')
+
+java client
+-----------
+bug fixes
+- compile under Java 1.5 (again)
+
+enhancements
+- experimental API employing command objects and builders. See
+ http://hg.rabbitmq.com/rabbitmq-java-client/file/default/test/src/com/rabbitmq/client/test/AMQBuilderApiTest.java
+ for some examples. Feedback welcome!
+
+.net client
+-----------
+bug fixes
+- make method id of 'exchange.unbind-ok' match definition in the
+ broker, so the client lib can recognise that command.
+- WCF bindings specified in configuration files are no longer ignored
+
+enhancements
+- allow larger than default message sizes in WCF
+- updated documentation
+
+management plugin
+-----------------
+bug fixes
+- handle race between queue creation/deletion and stats reporting that
+ could result in errors in the latter, particularly when there are
+ large numbers of queues and/or high churn
+- handle race when starting the management plug-in on multiple cluster
+ nodes, which in some rare (but quite reproducible) circumstances
+ could cause some of the brokers to crash
+- remove duplicate 'messages' entry from queue stats JSON
+- make binding arguments optional in the HTTP API for binding creation
+- correct error handling in the HTTP API for binding creation
+- prevent spurious failures of aliveness test
+
+enhancements
+- performance improvements which significantly reduce the cost of
+ stats reporting, allowing the management plug-in to cope with much
+ higher numbers of queues, bindings, etc.
+- issue an alert when a configured user cannot access any vhost or a
+ vhost has no users
+- allow choice of which stats/info items to return in the HTTP API
+- include protocol adapter and direct connections in API and UI
+- full STOMP SSL information displayed
+
+rabbitmq-mochiweb
+-----------------
+
+enhancements
+- more flexible configuration permitting different services to run on
+ different ports, SSL support and interface-based restrictions. See
+ https://www.rabbitmq.com/mochiweb.html for more details. Note that by
+ default the JSON-RPC channel plugin will now listen on port 55670.
+
+STOMP plugin
+------------
+enhancements
+- support connections over SSL
+bug fixes
+- correct spelling of 'heart-beat' header
+- don't drop messages if producer hangs up quickly
+
+build and packaging
+-------------------
+bug fixes
+- fix breakage in /etc/init.d/rabbitmq-server rotate-logs command
+
+enhancements
+- plug-in build system: support the declaration of inter-plugin
+ dependencies, making development of plugins much easier.
+ Inter-module dependencies are calculated automatically for all
+ plugins. Note that some plugins and applications have been
+ renamed for consistency, which may require changes to any existing
+ `rabbitmq.config` to match.
+- do not require access to www.docbook.org when building the server
+ w/o docbook installed
+- get rid of some warnings in the .net client build
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
+the new version on all the nodes and follow these instructions:
+ https://www.rabbitmq.com/clustering.html#upgrading
+All configuration and persistent message data is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
+from releases prior to 2.1.0, if the RabbitMQ installation does not
+contain any important data then simply install the new
+version. RabbitMQ will move the existing data to a backup location
+before creating a fresh, empty database. A warning is recorded in the
+logs. If your RabbitMQ installation contains important data then we
+recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
diff --git a/release-notes/README-2.5.1.txt b/release-notes/README-2.5.1.txt
new file mode 100644
index 0000000000..442055a6cd
--- /dev/null
+++ b/release-notes/README-2.5.1.txt
@@ -0,0 +1,34 @@
+Release: RabbitMQ 2.5.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- fix bug preventing upgrades from 2.1.1 and 2.2.0.
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
+the new version on all the nodes and follow these instructions:
+ https://www.rabbitmq.com/clustering.html#upgrading
+All configuration and persistent message data is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
+from releases prior to 2.1.0, if the RabbitMQ installation does not
+contain any important data then simply install the new
+version. RabbitMQ will move the existing data to a backup location
+before creating a fresh, empty database. A warning is recorded in the
+logs. If your RabbitMQ installation contains important data then we
+recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
diff --git a/release-notes/README-2.6.0.txt b/release-notes/README-2.6.0.txt
new file mode 100644
index 0000000000..bcdb00cea6
--- /dev/null
+++ b/release-notes/README-2.6.0.txt
@@ -0,0 +1,181 @@
+Release: RabbitMQ 2.6.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- upgrading from RabbitMQ 2.1.1 to any later release could break if
+ there were durable queues with persistent messages present
+- on very slow machines, starting rabbit via the supplied init scripts
+ could fail with a timeout
+- rabbit could fail to stop (when asked to do so) in the presence of
+ some plug-ins (e.g. shovel)
+- 'ram' nodes in a cluster could consume ever increasing amounts of
+ disk space
+- the presence of fast consumers on a queue could significantly delay
+ the addition of new consumers
+- when a client was issuing a tx.commit in one channel, and
+ simultaneously, in another channel, deleted a durable queue with
+ persistent messages involved in that tx, rabbit could terminate with
+ an error
+- when a client was using both basic.qos and channel.flow, the latter
+ would fail to re-enable message flow
+- when using 'confirm' mode, the deletion of queues could cause nacks
+ to be issued (incorrectly)
+- in extremely rare circumstances (never observed in the wild), a
+ queue with a per-queue message ttl could break during sudden changes
+ in rabbit memory usage
+
+enhancements
+- introduce active-active HA, with queues getting mirrored on nodes in
+ a cluster. See https://www.rabbitmq.com/ha.html
+- revamp the handling of AMQP's tx (transaction) class and clarify its
+ behaviour See https://www.rabbitmq.com/specification.html#tx
+- replace the 'administrator' flag, as used by the management plugin,
+ with a more general 'user tags' mechanism. See
+ https://www.rabbitmq.com/man/rabbitmqctl.8.man.html#set_user_tags
+- do not require 'configure' permissions for passive queue/exchange
+ declaration
+- optimise of message delivery on channels with a basic.qos
+ prefetch limit that are consuming from many queues
+- in 'rabbitmqctl list_channels', do not show the tx mode by default
+- when a cluster 'degrades' to only containing ram nodes - through
+ 'rabbitmqctl' actions or node failure - display/log a warning.
+- eliminate some spurious errors from the sasl log
+
+java client
+-----------
+enhancements
+- allow response timeouts to be specified in the {Json}RpcClient
+- introduce Channel.waitForConfirms() helper method, to make usage of
+ 'confirm' mode more convenient in common cases.
+- re-introduce default constructor for BasicProperties
+- cater for multiple listeners in all APIs
+- eradicate use of impl types in public APIs
+- make Tracer embeddable
+
+.net client
+-----------
+enhancements
+- return the complete result of a QueueDeclare, rather than just the
+ queue name.
+- introduce IModel.WaitForConfirms() helper method, to make usage of
+ 'confirm' mode more convenient in common cases.
+- document 'confirms' in user guide
+
+management plugin
+-----------------
+bug fixes
+- listing/inspecting queues with exclusive consumers would trigger a
+ 500 error
+- lots of cookies would be created for recording implicit preferences
+- /api/aliveness-test could return a 500 error instead of 401
+- fix off-by-one error in used file descriptor count on some
+ platforms, and gracefully deal with absence of 'lsof' command
+
+enhancements
+- introduce a more advanced permissions model, allowing access to
+ information for monitoring purposes without the user needing to be a
+ rabbit administrator. See
+ https://www.rabbitmq.com/management.html#permissions
+- simplify changing the URL; shorter default URL
+- make the stats collection interval configurable, providing a way to
+ reduce the impact of stats collection on servers with many active
+ connections/channels/queues, and adjust the rate calculation
+ period. See
+ https://www.rabbitmq.com/management.html#statistics-interval
+- in a cluster, make the management stats db highly available; it
+ automatically fails over to a different node
+- get the management stats db to 'catch up' when it is started in a
+ cluster and there are existing nodes with queues etc
+- report file descriptor counts on more platforms
+- display message re-delivery rates
+- show (mochi)web listeners
+- handle encoding errors gracefully
+- add an extension mechanisms - plug-ins for the management
+ plug-in. The first of these is rabbitmq-shovel-management which
+ displays status information of the rabbitmq-shovel plugin
+- add fields for well-known arguments such as message TTL and alternate
+ exchange to queue and exchange forms
+
+
+mochiweb plugin
+---------------
+bug fixes
+- on slow machines a timeout could occur during startup
+
+enhancements
+- the '*' listener context no longer needs to be specified, thus
+ simplifying configuration
+
+auth-backend-ldap plugin
+------------------------
+enhancements
+- eliminate "undefined function" warning on startup
+
+shovel plugin
+-------------
+enhancements
+- support guaranteed delivery with 'confirm' mode
+- support the use of AMQP 0-9-1 methods in configuration
+
+STOMP plugin
+------------
+bug fixes
+- heartbeats were issued as a 0x0 byte instead of LF (0x0A)
+
+enhancements
+- provide a way to send & subscribe to existing AMQP queues
+- support temporary/reply queues
+- support durable subscriptions
+- set the default prefetch count for /queue destinations to
+ 'unlimited' instead of 1
+- optionally allow clients to omit the login & passcode in CONNECT
+ frames, using a configurable default user instead
+- optionally allow clients to omit the CONNECT frame altogether
+
+For more details on all the above see the STOMP plugin documentation
+at https://www.rabbitmq.com/stomp.html
+
+federation plugin
+-----------------
+First release of this plugin, which offers scalable publish /
+subscribe messaging across WANs and administrative domains. See
+http://hg.rabbitmq.com/rabbitmq-federation/file/default/README
+
+build and packaging
+-------------------
+bug fixes
+
+enhancements
+- make Windows Start menu entries more easily identifiable/searchable
+- stop producing the Windows bundle. The Windows installer has matured
+ sufficiently to take its place.
+- employ the same convention for plugin app source files as rebar
+- clean up some xref warnings in the plugin build
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
+the new version on all the nodes and follow these instructions:
+ https://www.rabbitmq.com/clustering.html#upgrading
+All configuration and persistent message data is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
+from releases prior to 2.1.0, if the RabbitMQ installation does not
+contain any important data then simply install the new
+version. RabbitMQ will move the existing data to a backup location
+before creating a fresh, empty database. A warning is recorded in the
+logs. If your RabbitMQ installation contains important data then we
+recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
diff --git a/release-notes/README-2.6.1.txt b/release-notes/README-2.6.1.txt
new file mode 100644
index 0000000000..c87e93be0f
--- /dev/null
+++ b/release-notes/README-2.6.1.txt
@@ -0,0 +1,59 @@
+Release: RabbitMQ 2.6.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- the broker failed to (re)start on reboot on systems that keep
+ /var/run on a temporary file systems, e.g. Ubuntu.
+- the Windows service failed to increase the Erlang process limit,
+ limiting the broker to a few thousand queues, connections and
+ channels.
+
+.net client
+-----------
+enhancements
+- add the "headers" exchange to RabbitMQ.Client.ExchangeType
+
+management plugin
+-----------------
+bug fixes
+- on a busy broker, /api/nodes could fail with a timeout, affecting
+ several management UI pages.
+
+topology visualiser
+-------------------
+First official release. See
+https://www.rabbitmq.com/plugins.html#rabbitmq_management_visualiser
+
+STOMP plugin
+------------
+enhancements
+- trim whitespace from headers when speaking STOMP 1.0
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
+install the new version. All configuration and persistent message data
+is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
+the new version on all the nodes and follow these instructions:
+ https://www.rabbitmq.com/clustering.html#upgrading
+All configuration and persistent message data is retained.
+
+To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
+to 2.1.1 (which retains all data), and then to the current version as
+described above.
+
+To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
+from releases prior to 2.1.0, if the RabbitMQ installation does not
+contain any important data then simply install the new
+version. RabbitMQ will move the existing data to a backup location
+before creating a fresh, empty database. A warning is recorded in the
+logs. If your RabbitMQ installation contains important data then we
+recommend you contact rabbitmq-sales@pivotal.io for assistance with the
+upgrade.
diff --git a/release-notes/README-2.7.0.txt b/release-notes/README-2.7.0.txt
new file mode 100644
index 0000000000..62da1f7b7a
--- /dev/null
+++ b/release-notes/README-2.7.0.txt
@@ -0,0 +1,142 @@
+Release: RabbitMQ 2.7.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- acknowledgements were not properly handled on transaction rollback
+- could not declare a mirrored queue with a policy of "nodes" and an explicit
+ list of node names
+- queues created by different client libraries could look inequivalent to the
+ broker, though they had equivalent properties
+- queue process monitors were not removed correctly
+- server start up could hang when trying to contact other Erlang nodes in some
+ network configurations
+- on Windows some batch file variables might pass unescaped backslashes to the
+ broker, causing it to crash
+
+enhancements
+- messages re-queued (as a result of a consumer dying, for example) have their
+ original order preserved
+- in large queues under load, reduce length of time messages already on disk are
+ retained in memory
+- on platforms which support the High Performance Erlang Compiler (HiPE), the
+ server can optionally (re)compile selected modules on startup for increased
+ run-time performance; see https://www.rabbitmq.com/configure.html
+- the server automatically adapts to changes to virtual memory resources, and to
+ the memory high-watermark
+- the rabbit logs are appended to on restart; log rotation is simplified
+- improved synchronisation between rabbitmqctl and the server when stopping
+- non-query actions initiated by rabbitmqctl are logged
+- creating a connection is faster
+- shutdown is more efficient, especially when there are many queues to delete
+- concurrent message storage operations for many queues are more efficient
+- durable queues are faster on first use, and faster to recover
+- messages removed before being written to disk have the writes eliminated,
+ increasing message throughput under load
+- performance improvements to queues with large numbers of consumers with
+ low prefetch counts
+- internal flow control is more consistent
+- various other general performance improvements
+
+clients
+-------
+bug fixes
+- connection and channel closes in the clients had internal timeouts which
+ could expire prematurely and spoil the client's view of the channel state
+
+enhancements
+- clients accept a new "amqp" URI scheme, which can describe all of the
+ information required to connect to an AMQP server in one URI; see
+ https://www.rabbitmq.com/uri-spec.html
+
+erlang client
+-------------
+bug fixes
+- under some circumstances wait_for_confirms/1 could fail to return
+
+enhancements
+- a connection timeout value can be set for Erlang client connections
+- socket options may be specified on connection start
+
+java client
+-----------
+enhancements
+- consumer callbacks, and channel operations are threadsafe; calls to channel
+ operations can be safely made from a Consumer method call; Consumer callback
+ work threads can be user-supplied
+- channel or connection errors that refer to another method frame provide the
+ method's AMQP name (if it has one) in the error message
+
+.net client
+-----------
+bug fixes
+- some client methods were not documented correctly
+
+plugins
+-------
+bug fixes
+- HTTP-based plugins did not shut down correctly when stopped independently of
+ the Erlang VM
+
+enhancements
+- plugins are included in the main rabbitmq-server release, simplifying server
+ configuration and upgrades; a new tool, rabbitmq-plugins, enables and
+ disables plugins; see https://www.rabbitmq.com/plugins.html
+- rabbitmq_federation is no longer considered experimental
+- new experimental plugin: rabbitmq_consistent_hash_exchange, useful for load
+ balancing very high message rates across multiple queues
+- new experimental plugin: rabbitmq_tracing, a management UI for the firehose
+
+management plugin
+-----------------
+bug fixes
+- queue details page failed to display on recent browsers (e.g. Firefox 6) for
+ High Availability queues
+
+enhancements
+- more detailed global memory statistics shown
+- "all configuration" is renamed to "definitions" to reduce confusion with
+ rabbitmq.config
+
+auth-backend-ldap plugin
+------------------------
+enhancements
+- the queries are extended to include attributes and allow pattern-matching
+
+mochiweb plugin
+---------------
+enhancements
+- the limit on upload size is increased to 100MB so that JSON-RPC channel can
+ publish larger messages
+
+STOMP adapter
+-------------
+bug fixes
+- the STOMP adapter could crash when exceeding the memory high watermark
+
+build and packaging
+-------------------
+bug fixes
+- on non-Windows platforms invoking rabbitmq as a daemon could leave standard
+ input and output streams permanently open
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-2.7.1.txt b/release-notes/README-2.7.1.txt
new file mode 100644
index 0000000000..1f56d1570c
--- /dev/null
+++ b/release-notes/README-2.7.1.txt
@@ -0,0 +1,105 @@
+Release: RabbitMQ 2.7.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- long-running brokers could crash due to global unique identifiers not being
+ unique enough
+- leader election of mirrored queues could fail when using confirms
+- there was a slow memory leak in HA queues with persistent and confirmed
+ messages
+- when using HA queues with policy of 'nodes', leader replica didn't recover
+ properly
+- HA queues could fail when nodes were restarting frequently
+- broker sometimes hung when closing channels and connection from multiple
+ threads
+- queue equivalence check did not properly detect different arguments under
+ some circumstances
+- the broker sometimes hung when recovering queues on startup
+- 'rabbitmqctl list_connections' could return incomplete information
+- broker-generated queue names did not conform to AMQP syntax rules
+- a (harmless) warning was emitted when running under Erlang R15B
+
+enhancements
+- deletion of exchanges or queues with many bindings is more efficient
+- 'rabbitmqctl eval <expr>' evaluates arbitrary Erlang expressions in the
+ broker node
+
+java client
+-----------
+bug fixes
+- resources were not recovered if ConnectionFactory failed to connect
+- defaults for the ConnectionFactory class were not public
+- part of the Java client API was hidden, causing application build errors
+- interrupts were mishandled in the Java threading logic
+
+.net client
+-----------
+bug fixes
+- session autoclose could fail with AlreadyClosedException
+
+plugins
+-------
+bug fixes
+- consistent-hash-exchange mis-routed messages when handling multiple exchanges
+
+management plugin
+-----------------
+bug fixes
+- statistics database could remain down after nodes were restarted
+- broker could fail to start if clients attempt to connect before the
+ management plugin is fully started
+- management plugin could fail to start if there were strange permissions
+ in /proc
+- overview could sometimes crash when another node starts up or shuts down
+- HA mirror synchronisation could sometimes be misrepresented on the
+ management UI
+- encoding of underscore in URL properties was incomplete
+- management interface could break if there were html syntax characters in names
+- shovels were not displayed if they were in an undefined state
+
+enhancements
+- rate of change of queue lengths added to the management API and UI
+- improvements to shovel information formatting
+
+auth-backend-ldap plugin
+------------------------
+bug fixes
+- made compatible with Erlang R15B
+enhancements
+- accept a broader class of group objects on in_group filter
+
+STOMP adapter
+-------------
+bug fixes
+- duplicate headers were generated in some MESSAGE frames
+- temporary reply-to queues were not re-usable
+- made compatible with Erlang R15B
+
+build and packaging
+-------------------
+bug fixes
+- rabbitmq-server Mac OS X portfile was incorrectly built
+- maven bundle for Java client was not published to maven central
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact <support at rabbitmq.com> for
+assistance with the upgrade.
diff --git a/release-notes/README-2.8.0.txt b/release-notes/README-2.8.0.txt
new file mode 100644
index 0000000000..ace510e875
--- /dev/null
+++ b/release-notes/README-2.8.0.txt
@@ -0,0 +1,202 @@
+Release: RabbitMQ 2.8.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- reduce idle CPU usage when there are lots of mirrored queues
+- fix a rare bug which could cause the server to stop accepting connections
+- ensure starting a ram node when all disk nodes are down fails, instead
+ of creating a blank ram node
+- fix a race in mirrored queues where one node could run two mirrors
+- improve internal accounting of file descriptors; make it harder to hit the
+ limit unexpectedly
+- rabbitmqctl <unknown-action> fixed on R15B
+- fix race condition leading to monitoring other cluster nodes twice
+- leave the Erlang distributed system, not just Mnesia, when resetting
+- more consistent handling of RABBITMQ_* environment variables
+
+enhancements
+- dead lettering - queues can specify an exchange to which messages should be
+ redirected when they are rejected or expire
+- internal flow control to limit memory use and make performance more
+ predictable if the server is overloaded
+- fsync after Mnesia transactions to ensure recently-created queues, exchanges
+ are not lost in the event of an unexpected shutdown
+- much more eager fsync when persistent messages are published without
+ confirms / transactions leading to far fewer messages lost in the event
+ of an unexpected shutdown
+- server no longer fails to start when a durable exchange is declared using
+ an exchange type plugin which is subsequently disabled. Instead the exchange
+ exists but routes no messages
+- better OpenBSD support (thanks to Piotr Sikora)
+- basic.reject and basic.nack now respect transactions
+- rabbitmq-echopid.bat introduced: allows obtaining the server PID on Windows
+- the start of logging configuration: initially just for per-connection logging
+- set SO_LINGER to 0 to prevent file descriptors being used by closed
+ connections
+- improve error reporting when AMQP ports are already used by non-RabbitMQ
+ brokers
+- improve error reporting when Mnesia times out waiting for tables
+- consistent naming of connections and channels across rabbitmqctl and the
+ management plugin
+- file descriptor statistics added to "rabbitmqctl status"
+- more robustness if rabbitmq-plugins cannot parse the enabled plugins file
+- don't start external cpu_sup process; we don't need it
+
+performance improvements
+- consuming has smarter flow control, leading to performance improvements in
+ many cases
+- deleting queues with many bindings to topic exchanges is no longer
+ O(binding_count^2)
+- message ID generation is somewhat faster
+
+
+packaging
+---------
+bug fixes
+- debian: add build dependency on erlang-nox
+- debian / rpm: don't start the server with "su", fixing inability to
+ shut down seen on Ubuntu
+- macports: fix plugins showing version as "0.0.0"
+- macports: create configuration directory if it does not already exist
+- windows: INSTALL file now contain Windows-style line endings
+
+enhancements
+- generic unix tarball: by default locate all log / db / conf files within
+ the unpacked tarball, simplifying installation
+
+
+erlang client
+-------------
+bug fixes
+- fix "make documentation"
+
+enhancements
+- wait_for_confirms() can now take a timeout
+
+
+java client
+-----------
+bug fixes
+- fix memory leak when channels were closed on a connection that stays open
+- fix display of message headers and content in the tracer
+- fix hang in ConnectionFactory when the first frame from the server is never
+ received
+- fix NullPointerException at ConsumerDispatcher.java:91
+
+enhancements
+- waitForConfirms() can now take a timeout
+- allow use of Java arrays in AMQP arrays (e.g. for arguments and headers)
+- don't depend on org.apache.commons classes except for tests
+- fire channel shutdown listeners on connection shutdown
+- show fractional message rates in MulticastMain
+- show aggregated producer rates in MulticastMain
+
+
+.net client
+-----------
+bug fixes
+- don't try to close the socket more than once if a heartbeat is missed
+
+enhancements
+- WaitForConfirms() can now take a timeout
+
+
+management plugin
+-----------------
+bug fixes
+- fix overview page in MSIE
+- escape HTML entities properly in the web UI
+- fix incorrect display of mirrored queues as unsynchronised after database
+ failover
+- give sensible error if user tags field is missing
+- fix [Admin] etc links which were broken in some browsers
+- fix wrong date in "last updated" in the web UI
+
+enhancements
+- add separate form to update users
+- add option to import file of entity definitions at startup
+- publish messages from the queue details page of the web UI
+- make "exchange type" into a select box in the web UI
+- show the connection heartbeat more clearly in the web UI
+
+
+json-rpc plugin
+---------------
+bug fixes
+- fix memory leak in ETS
+
+
+rabbitmqadmin
+-------------
+bug fixes
+- fix "rabbitmqadmin get"
+- display array info-items correctly
+- allow specifying node for queue declaration
+
+enhancements
+- configuration file for connections (thanks to Massimo Paladin)
+
+
+federation plugin
+-----------------
+enhancements
+- allow the queue declared upstream to be mirrored
+
+
+STOMP plugin
+------------
+bug fixes
+- fix invalid MESSAGE Frames for reply-to temporary queues
+- fix non-UTF-8 durable topic subscription queue names
+- behave sensibly on death of the internal AMQP connection / channel
+- prevent an infinite loop when implicit connect enabled with an invalid
+ username / password
+- allow more than one SSL handshake to happen at once
+
+enhancements
+- support client login via SSL certificate, similar to
+ rabbitmq_auth_mechanism_ssl for AMQP
+- performance improvement: don't declare a queue on every publish
+- support the server's new flow control mechanism
+- add "server" field to the "CONNECTED" frame
+
+
+auth backend LDAP plugin
+------------------------
+enhancements
+- optionally look up a user's DN after binding - useful for Microsoft
+ Active Directory
+- remove build time dependency on nmap
+- allow queries to run as the user we bound as
+
+
+auth mechanism SSL plugin
+-------------------------
+bug fixes
+- don't blow up if a certificate contains more than one Common Name
+
+enhancements
+- support obtaining the user name from the certificate's Distinguished Name
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-2.8.1.txt b/release-notes/README-2.8.1.txt
new file mode 100644
index 0000000000..73adfbd9b8
--- /dev/null
+++ b/release-notes/README-2.8.1.txt
@@ -0,0 +1,41 @@
+Release: RabbitMQ 2.8.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- fixed cluster upgrades for RAM nodes
+
+
+packaging
+---------
+bug fixes
+- remove use of runuser for the SUSE RPM
+- package rabbitmq-echopid.bat on Windows
+
+
+management plugin
+-----------------
+bug fixes
+- fixed web UI for users with only the 'management' tag
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-2.8.2.txt b/release-notes/README-2.8.2.txt
new file mode 100644
index 0000000000..616d04b4ec
--- /dev/null
+++ b/release-notes/README-2.8.2.txt
@@ -0,0 +1,106 @@
+Release: RabbitMQ 2.8.2
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- memory leak on basic.reject{requeue = false}
+- queue failure when dead-lettering a message which has been paged to disc
+- memory leak with dead-letter cycles and HA queues
+- possible message loss with dead-lettered messages and HA queues at broker
+ shutdown
+- HA mirror queue crash on basic.reject{requeue = false}
+- HA mirror queue crash with dead-letter cycle
+- messages might incorrectly not expire if consumed immediately and then
+ requeued
+- message acks might be lost if sent immediately before channel closure
+- dead-lettering a large number of messages at once was very slow
+- memory leak when queue references a DLX that does not exist
+- fix startup in FreeBSD jail without IPv6 support (thanks to Mattias Ahlbäck)
+- error logged by mirrored queue supervisor on shutdown
+
+enhancements
+- disc space monitoring and blocking, similar to the existing memory monitoring
+- substantially improve performance publishing large messages
+- improve performance delivering small messages
+- improve performance of routing via the default exchange
+- allow x-message-ttl to be set to 0 (useful as an alternative to
+ immediate-mode publish)
+- ensure unacked messages have been requeued by the time channel.close_ok is
+ received
+- remove non-free RFC from source package (Debian bug #665793)
+
+
+packaging
+---------
+bug fixes
+- Debian: provide a mechanism to change the FD limit
+- Debian: don't delete the rabbitmq user when removing package (#663503,
+ #620799, #646175)
+- Debian: use lsb-base functions in init script (#663434)
+
+
+java client
+-----------
+bug fixes
+- RpcClient used the platform default encoding instead of UTF-8
+- waitForConfirms returned true even if basic.nack received
+
+enhancements
+- MulticastMain supports option to multi-ack every N messages
+
+
+erlang client
+-------------
+bug fixes
+- crash on shutdown of AMQP connection
+
+
+management plugin
+-----------------
+bug fixes
+- management plugin could miss queue deletion events in some crash scenarios
+- dependency on xmerl was not declared
+
+enhancements
+- show a large warning when running a cluster with mixed RabbitMQ / Erlang
+ versions
+
+
+federation plugin
+-----------------
+bug fixes
+- leak of direct connections when federation links failed to start up
+
+enhancements
+- prevent messages which have reached max_hops from being transmitted one
+ additional time, using a custom upstream exchange
+- link status reporting, similar to that provided by rabbitmq-shovel, from
+ the command line and management plugin
+
+
+STOMP plugin
+------------
+bug fixes
+- "destination" header on MESSAGE did not match that used on SEND
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-2.8.3.txt b/release-notes/README-2.8.3.txt
new file mode 100644
index 0000000000..e004151dec
--- /dev/null
+++ b/release-notes/README-2.8.3.txt
@@ -0,0 +1,89 @@
+Release: RabbitMQ 2.8.3
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- several fixes to communication protocol underlying HA queues
+- memory leak deleting HA queues
+- rotating logs loaded the entire log file into memory
+- queues with many busy consumers could refuse to accept publishes until empty
+- stale transient queue information could be left behind when a node restarted
+ quickly
+- additional cluster nodes that started with insufficient disk space would
+ never accept connections even after disk space increased
+- rabbitmqctl displayed non-ASCII characters incorrectly in some error
+ messages
+- disk space monitoring on non-English versions of Windows did not work
+- RABBITMQ_PLUGINS_DIR could not be set on Windows
+
+enhancements
+- set default disk space limit to 1GB since many users were running into the
+ previous default limit of {mem_relative, 1.0} when running RabbitMQ for
+ the first time
+
+
+packaging
+---------
+bug fixes
+- Debian: uninstalling failed if broker was stopped
+- Debian: server process was not child of init, leading it to get closed in
+ certain situations
+
+enhancements
+- Debian: emit upstart events
+
+
+java client
+-----------
+enhancements
+- improved performance with SSL
+
+
+erlang client
+-------------
+bug fixes
+- code_change/3 did not return {ok, State} in many places breaking
+ applications that use code reloading and the Erlang client
+- spurious function_clause error in logs when SSL connection closed abruptly
+ under R15B0x
+
+
+federation plugin
+-----------------
+enhancements
+- set default prefetch count to 1000, rather than unlimited, to ensure there
+ is flow control on federation links
+
+
+management plugin
+-----------------
+bug fixes
+- rare race condition that could cause management DB failover to fail
+
+
+STOMP plugin
+------------
+bug fixes
+- last message of a burst may not be received when flow control is active
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-2.8.4.txt b/release-notes/README-2.8.4.txt
new file mode 100644
index 0000000000..ee08042163
--- /dev/null
+++ b/release-notes/README-2.8.4.txt
@@ -0,0 +1,30 @@
+Release: RabbitMQ 2.8.4
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- log file rotation when no suffix was specified could lead to the log file
+ growing rapidly
+- rabbitmq-plugins.bat did not work
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-2.8.5.txt b/release-notes/README-2.8.5.txt
new file mode 100644
index 0000000000..7cfad51e55
--- /dev/null
+++ b/release-notes/README-2.8.5.txt
@@ -0,0 +1,47 @@
+Release: RabbitMQ 2.8.5
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- unnecessary CPU utilisation no longer occurs in the presence of large
+ numbers of idle HA queues
+- rapidly declaring and then deleting HA queues no longer crashes the master
+- fixed a race condition in handling node down signals, that could result in
+ HA queues failing to restart when bringing a follower replica (mirror) back online
+- channels no longer crash when detecting nodes that have gone offline
+- rabbitmqctl no longer garbles error messages when rendering non-ASCII
+ characters
+- the installer now places the .erlang.cookie file in %HOMEDRIVE%%HOMEPATH%
+ on Windows, so that %USERPROFILE% can be safely relocated
+
+STOMP plugin
+------------
+bug fixes
+- fixed a bug in the test suite that was failing to check for the expected
+ number of receipts before checking if a message had arrived successfully
+
+jsonrpc-channel plugin
+----------------------
+bug fixes
+- updated to support the latest versions of rfc4627 and Mochiweb
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-2.8.6.txt b/release-notes/README-2.8.6.txt
new file mode 100644
index 0000000000..ea2f234756
--- /dev/null
+++ b/release-notes/README-2.8.6.txt
@@ -0,0 +1,64 @@
+Release: RabbitMQ 2.8.6
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- ensure shutdown of mirrored queue nodes is recorded correctly
+- removed unsupported plugins added in 2.8.5 (old-federation, sockjs-erlang,
+ cowboy, web-stomp and web-stomp-examples)
+- removing RAM nodes from a cluster no longer leads to inconsistent state
+ on disk nodes (which previously failed to notice the RAM nodes' departure)
+- reap TTL-expired messages promptly
+- correct reporting of the vm_memory_high_watermark
+- reduce likelihood of node name collision on Windows due to non-randomness
+ of %RANDOM%
+
+
+erlang client
+-------------
+bug fixes
+- correctly account for file handles consumed by outgoing network connections
+ when running as a plugin
+
+
+management plugin
+-----------------
+bug fixes
+- prevent publishing a message with non-binary content
+
+
+shovel plugin
+-------------
+bug fixes
+- guarantee that reconnect attempts continue if a failure occurs during
+ connection establishment
+
+
+federation plugin
+-----------------
+bug fixes
+- guarantee that links continue to attempt reconnecting if a failure occurs
+ during connection establishment
+- report status correctly in the event of unexpected failure
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-2.8.7.txt b/release-notes/README-2.8.7.txt
new file mode 100644
index 0000000000..eb6a9281a5
--- /dev/null
+++ b/release-notes/README-2.8.7.txt
@@ -0,0 +1,70 @@
+Release: RabbitMQ 2.8.7
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+- fix race condition that could stop mirrored queue from sending further
+ confirms, and cause it to leak memory
+- fix bug that prevented confirms from mirrored queues when x-message-ttl
+ was set to zero
+- fix mirror synchronisation detection logic in mirrored queues
+- fix possible deadlock during broker shutdown
+- fix resource leak when declaring many short-lived mirrored queues with
+ different names
+- fix DOS vulnerability possible by malicious SSL clients
+- make disk free space reporting more intelligible
+
+performance improvements
+- reduce unnecessary fsync operations when deleting non-durable resources
+- mirror nodes of mirrored queues now pro-actively persist acks and messages on
+ a timer with a sensible interval
+
+
+packaging
+---------
+bug fixes
+- ensure source packages can be built without network access
+
+
+erlang client
+-------------
+bug fixes
+- ensure management plugin is notified when connections fail as soon as
+ they are opened
+
+enhancements
+- offer configuration flag for ipv4 / ipv6 preference
+
+
+management plugin
+-----------------
+bug fixes
+- prevent management plugin from crashing nodes when failing over
+
+
+STOMP plugin
+------------
+bug fixes
+- fix bug that caused alarms (e.g. disk free space checking) to turn off
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.0.0.txt b/release-notes/README-3.0.0.txt
new file mode 100644
index 0000000000..f28b5b8408
--- /dev/null
+++ b/release-notes/README-3.0.0.txt
@@ -0,0 +1,244 @@
+Release: RabbitMQ 3.0.0
+
+server
+------
+bug fixes
+25195 prevent mirror being promoted before it has received all
+ messages from dying master, which subsequently caused it to crash
+25202 fix race at mirror startup causing process leak and other problems
+25216 prevent excessive memory use when recovering large durable queues
+25226 prevent mirrors leaking memory when using persistence and confirms
+25260 ensure messages that expire while the broker is stopped are
+ dead-lettered correctly
+25198, 25185, 25200 ensure "redelivered" flag set correctly on HA
+ queue failover
+25053 ensure statistics event emission does not prevent fsync
+25215 ensure rapid declaration of many mirrored queues does not overload
+ Mnesia
+25000 don't write a PID file when -detached is specified as it will
+ not be right
+25263 fix channel number in error message if rabbit_writer crashes
+25295, 25297 fix a couple of small memory leaks in rabbit_channel when
+ one channel sees many queues deleted
+
+enhancements
+24991 correctly enforce AMQP frame_max. Note that some buggy clients
+ do not frame messages correctly; as of 3.0.0 these clients
+ will be rejected if they attempt to send a message large than
+ frame_max (by default 128k).
+24908 allow queue mirroring to be defined by broker-wide policy, not
+ queue declaration, and add "exactly" mode
+24196 dynamic runtime configuration mechanism (parameters)
+24914 rewrite of rabbitmqctl clustering commands for greater user
+ friendliness
+24915 background GC for idle processes, preventing excessive memory use
+19376 support per-message TTL
+25110 provide more detailed statistics on broker memory use (reported
+ in 'rabbitmqctl status')
+25227 provide information if a network partition has occurred
+ (reported in 'rabbitmqctl cluster_status')
+24792 improve plugin startup procedure:
+ - "rabbitmqctl wait" will not return until plugins have started
+ - Windows service users no longer need to reinstall service
+ after enabling plugins
+24971 enable heartbeats by default
+24719 ensure broker starts and rabbitmq-plugins works when plugin
+ dependencies are missing
+25164 give better error message when attempting to use a queue which
+ is on a down node
+25086 improve error reporting for framing errors
+25262 sort the output of rabbitmqctl list_*
+23935 reverse DNS lookups for connection info items (disabled by
+ default, see the 'reverse_dns_lookup' configuration item)
+25193 expose count of non-blocked consumers as a queue info item
+24998 make memory / disk alarms easier to spot in log files
+24956 provide better log messages when heartbeat timeouts occur
+24919 check flags passed to rabbitmqctl match the subcommand
+25244 cope if clients set malformed "x-death" headers
+24867 reject attempts to declare queues with x-expires or
+ x-message-ttl greater than 2^32 milliseconds since this will
+ not work
+
+feature removal
+23896 remove support for AMQP's "immediate" publish mode
+
+performance improvements
+25145 greatly improve performance of mirrored queues
+24974 improve performance of SSL when using HiPE compilation
+24888 improve performance of bulk dead-lettering
+
+
+packaging
+---------
+bug fixes
+21413 follow specifications better for init script on RPM distros
+
+
+management plugin
+-----------------
+bug fixes
+25048 ensure queue synchronisation is always shown correctly
+25149 move management port out of the ephemeral range (which could
+ result in the management plug-in failing to start). The new
+ default port is 15672, with a redirect in place from 55672.
+25220 allow bindings with arguments containing AMQP tables and arrays
+23225 correctly display network traffic statistics for connections
+ which do nothing but receive autoack messages
+25151 fix sorting by and selection of queue/exchange arguments
+
+enhancements
+25232 provide branded login screen and logout button
+24830 allow argument types to be selected in the web UI
+24859 add global counts of various objects
+24949 more flexible top-level navigation in the web UI
+25218 make binding display on exchange/queue details page clearer
+25135 show abbreviated client properties in web UI connection list
+25259 simplify management listener configuration
+24916 make the statistics database hibernate when idle, thus reducing
+ memory use
+24932 improve responsiveness of the statistics database on a heavily
+ loaded broker
+25148 clearer error message when the management port is in use at startup
+24967 web UI help texts link to the website for more information
+24983 clearer error message when rabbitmqadmin is run against
+ an incompatible Python version
+25209 make rabbitmqadmin work when passed through 2to3 (thanks to Alan
+ Antonuk)
+
+
+federation plugin
+-----------------
+bug fixes
+24856 prevent bindings from propagating too far and leaking in the
+ presence of upstream cycles
+25166 eliminate delays in broker shut down on disturbed networks
+25022 don't crash on consumer cancellation notification
+
+enhancements
+23908 allow addition and removal of upstreams while the broker is running
+24826 allow federation of normal exchanges, remove "x-federation" exchange
+ type
+24695 specify upstreams using amqp:// URIs
+23903 allow passing through user-id from trusted upstreams
+25029 improve consistency of federation nomenclature
+25244 cope if clients set malformed "x-received-from" headers
+
+
+old-federation plugin
+---------------------
+24822 new (old) plugin: a backported version of the federation
+ plugin from 2.8.7.
+
+
+shovel plugin
+-------------
+bug fixes
+25166 eliminate delays in broker shut down on disturbed networks
+25022 don't crash on consumer cancellation notification
+
+enhancements
+25049 remove dependency on Erlando
+
+
+STOMP plugin
+------------
+bug fixes
+25045 don't drop subscriptions on consumer cancellation notification
+25067 prevent header without colon from breaking all subsequent headers
+24623 allow ACK to be sent after UNSUBSCRIBE
+
+enhancements
+25196 set AMQP reply-to header sensibly when using temporary queues
+25235 STOMP version 1.2 support
+25036 log various flavours of authentication failure distinctly
+25140 ensure all AMQP message properties are mapped to STOMP and vice-
+ versa
+
+performance improvements
+24872 improve performance reading non-tiny messages from the socket
+24968 improve performance reading large messages with content-length
+ header
+
+
+MQTT plugin
+-----------
+25025 new plugin: implement Message Queue Telemetry Transport version 3.1
+
+
+Web-STOMP plugin
+------------
+24468 new plugin: STOMP to the browser over websockets with SockJS
+ fallback
+
+
+JSON-RPC channel plugin
+-----------------------
+enhancements
+25282 ensure the plugin is dfsg-free
+25149 move JSON-RPC port out of the ephemeral range (to 15670)
+25259 simplify JSON-RPC listener configuration
+
+
+LDAP plugin
+-----------
+bug fixes
+25089 make {other_bind, as_user} work properly in non-AMQP contexts
+ (management, STOMP, etc.)
+
+enhancements
+25169 allow use of in_group test when the attribute to be checked is
+ not called "member"
+24677 substantially improve logging for debugging LDAP queries
+
+
+java client
+-------------
+bug fixes
+24910 prevent DefaultExceptionHandler.handleChannelKiller from
+ closing connection when it shouldn't
+
+enhancements
+24527 include an automated performance measuring tool (PerformanceMain)
+20709 eliminate Javadoc warnings
+
+
+.net client
+-------------
+bug fixes
+25255 ensure BaseConnection#Dispose does not hang
+
+enhancements
+23747 allow configuration of the underlying socket (thanks to Tomasz Zuber)
+25092 set first failed connection as the inner exception to
+ BrokerUnreachableException, thus improving exception display
+
+
+erlang client
+-------------
+bug fixes
+25108 fix connection supervision: amqp_connection_type_sup should not
+ be transient
+
+enhancements
+25057 provide functions to unregister handlers
+25034 remove some generically named -define()s from amqp_client.hrl,
+ which could clash with other applications
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.0.1.txt b/release-notes/README-3.0.1.txt
new file mode 100644
index 0000000000..167cf45871
--- /dev/null
+++ b/release-notes/README-3.0.1.txt
@@ -0,0 +1,66 @@
+Release: RabbitMQ 3.0.1
+
+server
+------
+bug fixes
+25305 fix leak when dead-lettering to an exchange which does not route to queues
+25309 fix {badmatch,false} when queue is deleted as mirroring policy changes
+25340 fix performance degradation when using small numbers of outstanding
+ confirms with mirrored queues
+25301 fix messages with per-message TTL not expiring under some circumstances
+25351 increase robustness when calculating memory use by plugins
+
+enhancements
+25335, 25330 allow mixed patch versions of RabbitMQ in a cluster
+
+
+management plugin
+-----------------
+bug fixes
+25348 fix web UI breakage for users with "management" tag
+25300 fix JSON encoding error listing non-AMQP connections
+25325 fix web UI links when filtering by virtual host
+25346 fix parameter and policy names missing from definitions export
+25326 [MSIE] fix policies listing page when more than 1 vhost exists
+25304 [MSIE] fix "Add policy" and "Add upstream" buttons
+25352 [MSIE] fix "Add user" and "Update user" buttons when a tag link has
+ been clicked
+25320 fix misleading error message when administrator has no permissions
+25321 fix invisible update of queue policy changes that had no effect
+
+
+web plugin support
+------------------
+bug fixes
+25318 issue well-formed Location header when redirecting to another port
+
+
+erlang client / shovel plugin / federation plugin
+-------------------------------------------------
+bug fixes
+25331 prevent deadlock when starting connection during application shutdown
+
+
+tracing plugin
+--------------
+bug fixes
+25341 fix failure of rabbitmqctl status when tracing plugin enabled
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.0.2.txt b/release-notes/README-3.0.2.txt
new file mode 100644
index 0000000000..fd9ffcc076
--- /dev/null
+++ b/release-notes/README-3.0.2.txt
@@ -0,0 +1,88 @@
+Release: RabbitMQ 3.0.2
+
+server
+------
+bug fixes
+25422 fix race causing queues to crash when stopping mirroring
+25353 fix issue preventing idle queues from hibernating sometimes
+25431 fix compilation on Erlang R16A
+25420 fix issue causing crash at startup if another node reports Mnesia
+ starting or stopping
+25360 fix race allowing channel commands to be sent after connection.close-ok
+25412 fix race allowing channel commands to be sent after server has closed
+ a channel
+25378 fix broken error reporting for rabbitmqctl
+
+
+STOMP plugin
+------------
+bug fixes
+25362 only add /reply-queue prefix in reply-to header when replying to a
+ temporary queue
+
+
+consistent hash exchange plugin
+-------------------------------
+bug fixes
+25403 clean up Mnesia resources correctly on exchange deletion
+
+
+management plugin
+-----------------
+bug fixes
+25401 fix error reporting for some broken policy declarations
+25413 prevent read access to /api/connections/<name>/channels for
+ non-monitoring users
+25335 fix rabbitmqadmin bash completion when extglob mode is switched off
+ in the shell
+
+
+management visualiser plugin
+----------------------------
+bug fixes
+25387 fix broken RabbitMQ logo
+
+
+shovel-management plugin
+------------------------
+bug fixes
+25410 fix breakage when shovel application is stopped manually
+
+
+web-STOMP plugin
+----------------
+bug fixes
+25359 prevent rabbitmqctl status from killing web-STOMP connections
+25357 update SockJS-Erlang to 0.3.4, fixing SockJS issue #41 (fix a traceback
+ when websocket is slow or busy)
+
+
+JSON-RPC plugin
+---------------
+bug fixes
+25347 fix hang of rabbitmqctl status when JSON-RPC plugin enabled
+
+
+.NET client
+-----------
+bug fixes
+25389 send 0-9-1 header rather than 0-9 header when AMQP 0-9-1 is selected
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.0.3.txt b/release-notes/README-3.0.3.txt
new file mode 100644
index 0000000000..4d19924602
--- /dev/null
+++ b/release-notes/README-3.0.3.txt
@@ -0,0 +1,55 @@
+Release: RabbitMQ 3.0.3
+
+server
+------
+bug fixes
+25457 fix connection failure to start reading again in rare circumstances
+ when coming out of flow control
+25419 ensure invocation of "rabbitmqctl stop_app" during server startup
+ on a fresh node does not leave a corrupted Mnesia schema
+25448 ensure messages expire immediately when reaching the head of a queue
+ after basic.get
+25456 ensure parameters and policies for a vhost are removed with that vhost
+25465 do not log spurious errors for connections that close very early
+25443 ensure "rabbitmqctl forget_cluster_node" removes durable queue records
+ for unmirrored queues on the forgotten node
+25435 declare dependency on xmerl in rabbit application
+
+
+Windows packaging
+-----------------
+bug fixes
+25453 make rabbitmq-plugins.bat take note of %RABBITMQ_SERVICENAME%
+
+
+management plugin
+-----------------
+bug fixes
+25472 clean up connection and channel records from nodes that have crashed
+25432 do not show 404 errors when rabbitmq_federation_management
+ is installed and rabbitmq_federation is not
+
+
+mqtt plugin
+-----------
+bug fixes
+25469 ensure the reader process hibernates when idle
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.0.4.txt b/release-notes/README-3.0.4.txt
new file mode 100644
index 0000000000..2e3e8af6f2
--- /dev/null
+++ b/release-notes/README-3.0.4.txt
@@ -0,0 +1,25 @@
+Release: RabbitMQ 3.0.4
+
+federation plugin
+-----------------
+bug fixes
+25483 prevent x-received-from header from leaking upstream credentials
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.1.0.txt b/release-notes/README-3.1.0.txt
new file mode 100644
index 0000000000..8559d80e90
--- /dev/null
+++ b/release-notes/README-3.1.0.txt
@@ -0,0 +1,173 @@
+Release: RabbitMQ 3.1.0
+
+server
+------
+bug fixes
+25524 fix memory leak in mirror queue mirror with many short-lived publishing
+ channels
+25518 fix handling of certain ASN.1 fields in SSL certificates
+25486 ensure we handle cross cluster resource alarms after a partition
+25490 limit frequency with which the server invokes "df" or "dir" to
+ measure disc use
+25491 ensure we detect partitions in an idle cluster
+25367 throttle in a more timely manner when reading large messages and
+ resource alarm goes off
+25535 correctly report failure when user with no password attempts
+ password-based login
+25463 fix logging of authentication mechanism on login failure
+25385 check equivalence for dead-lettering related arguments
+
+enhancements
+24407 manual eager synchronisation of mirrors
+25418 automatic eager synchronisation of mirrors by policy
+25358 cluster "autoheal" mode to automatically choose nodes to restart
+ when a partition has occurred
+25358 cluster "pause minority" mode to prefer partition tolerance over
+ availability
+19375 add x-max-length argument for queue length limits
+25247 allow "nodes" policy to change queue master
+25107 permit dead-letter cycles
+25415 return total number of consumers in queue.declare-ok, not "active" ones
+24980 cut down size of stdout banner, ensure everything goes to logs
+25474 ensure partitions warning clears without needing to stop the
+ winning partition
+25488 allow exchange types plugins to validate bindings
+25512 improve robustness and correctness of memory use detail reporting
+25501 allow plugins to implement new ha-modes
+25517 more cross-cluster compatibility checks at startup
+25513 support debugging for heavyweight gen_server2 state
+
+performance improvements
+25514 performance improvements in message store garbage collection
+25302 performance improvements in mirrors when consuming
+25311 performance improvements requeuing persistent messages
+25373 memory-use improvement while fetching messages
+25428 memory-use improvement in queue index
+25504 25327 performance improvements in dead lettering
+25363 25364 25365 25366 25368 25369 25371 25386 25388 25429
+ various minor performance improvements
+
+
+management plugin
+-----------------
+bug fixes
+25290 fix per-queue memory leak recording stats for mirror queue mirrors
+25526 ensure single-object API queries support ?columns= in query string
+
+enhancements
+23378 retain historical statistics, plot charts, show statistics per vhost,
+ improve performance of overview page, ensure message counters are
+ monotonic
+24114 ignore incoming statistics if the statistics database is overwhelmed
+23625 performance improvements when listing many queues
+23382 filter lists in the web UI
+25408 allow specification of arguments when declaring with rabbitmqadmin
+23438 allow admin to specify a reason when closing a connection
+25322 add "--version" support to rabbitmqadmin
+
+
+federation plugin
+-----------------
+bug fixes
+24223 handle basic.nack if sent by the server
+
+enhancements
+25406 allow specification of multiple URLs in an upstream for failover
+25433 allow choice of acknowledgement mode, permitting faster but less
+ reliable delivery
+
+
+old-federation plugin
+---------------------
+feature removal
+25484 remove the old-federation plugin which shipped with RabbitMQ 3.0.x
+
+
+shovel plugin
+-------------
+enhancements
+24850 support failover when running in a cluster
+
+
+Web-STOMP plugin
+----------------
+enhancements
+25333 update stomp.js library to support STOMP 1.1 (thanks to Jeff Mesnil)
+
+
+AMQP 1.0 plugin
+---------------
+25381 new plugin: initial support for AMQP 1.0
+
+
+STOMP plugin
+-----------
+bug fixes
+25464 more graceful handling of connection abort while opening
+25466 don't crash when SENDing to /temp-queue
+
+
+MQTT plugin
+-----------
+bug fixes
+25464 more graceful handling of connection abort while opening
+25487 do not break "rabbitmqctl status" if MQTT plugin is enabled
+
+
+consistent hash exchange
+------------------------
+enhancements
+25392 allow hashing on something other than routing key
+
+
+packaging
+---------
+enhancements
+25271 new standalone release tarball for OS X
+25497 add extra architectures to the apt repository
+25519 allow debian packages to depend on esl-erlang
+25002 merge contents of private umbrella into public one and remove private
+25339 move rabbitmq-test to its own repository
+
+
+java client
+-----------
+bug fixes
+25509 ensure channel numbers do not get reused before the server has finished
+ with them
+
+enhancements
+25356 make Channel.waitForConfirms(long) throw exception if confirm mode is
+ not selected
+24675 add support for existing exchanges / queues to MulticastMain
+
+
+erlang client
+-------------
+bug fixes
+25502 fail reasonably when attempting to connect to a server that does not
+ speak AMQP 0-9-1
+
+enhancements
+25377 remove "there is no confirm handler" warnings
+25503 don't allow client to negotiate frame sizes > 64Mb since it does not
+ support them
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.1.1.txt b/release-notes/README-3.1.1.txt
new file mode 100644
index 0000000000..88b06eca48
--- /dev/null
+++ b/release-notes/README-3.1.1.txt
@@ -0,0 +1,64 @@
+Release: RabbitMQ 3.1.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+25545 relax validation of x-match binding to headers exchange for
+ compatibility with brokers < 3.1.0
+25561 fix bug in ack handling for transactional channels that could
+ cause queues to crash
+25560 fix race condition in cluster autoheal that could lead to nodes
+ failing to re-join the cluster
+25546 fix crash when setting a prefetch count multiple times on the
+ same channel
+25548 fix vhost validation when setting policies and/or parameters
+25549 fix x-expires handling after last consumer disconnects
+25555 tighten up validation of HA-related policies
+
+
+shovel plugin
+-------------
+bug fixes
+25542 fix handling of default reconnect_delay
+
+
+management plugin
+-----------------
+bug fixes
+25536 set auth header correctly when downloading definitions
+25543 set message_stats to the correct value when empty
+
+
+federation-management-plugin
+----------------------------
+bug fixes
+25556 allow multiple URIs to be specified against an upstream
+
+
+.NET client
+-------------
+bug fixes
+25558 fix a bug that could lead to duplicate channel IDs being allocated,
+ causing a connection failure
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.1.2.txt b/release-notes/README-3.1.2.txt
new file mode 100644
index 0000000000..622383eb38
--- /dev/null
+++ b/release-notes/README-3.1.2.txt
@@ -0,0 +1,90 @@
+Release: RabbitMQ 3.1.2
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+
+25636 fix startup failure when using SSL with Erlang/OTP R16B01
+25571 fix potential deadlock in application shutdown handling (since 2.1.0)
+25567 fix queue crash requeuing in-memory messages (since 2.7.0)
+25599 fix queue record leak of exclusive durable queues after forceful
+ shutdown (since 3.0.1)
+25576 fix bug in queue index where a broker crash between segment
+ deletion and journal truncation could prevent the broker from
+ subsequently starting (since 2.0.0)
+25615 fix duplicate mirror queue mirrors starting on a single node (since 2.6.0)
+25588 ensure per-message-TTL is removed when messages are dead-lettered
+ (since 3.0.0)
+25575 fix bug handling empty rabbit_serial leading to startup failure
+ (since 1.7.0)
+25640 fix channel crash with a race between basic.ack and basic.cancel
+ when prefetch >= 1 (since 3.1.0)
+25638 fix leak affecting HA/mirrored queues (since 3.0.0)
+25611 improve stack traces when message store crash occurs
+25612 fix crashing processes when stopping node as part of a cluster
+ (since 2.4.0)
+
+
+stomp plugin
+-------------
+bug fixes
+25564 fix handling of reply-to for non-temporary queue destinations
+ (since 3.1.0)
+25566 allow unescaped colons in header values for STOMP 1.0 compatibility
+ (since 3.0.0)
+
+
+management plugin
+-----------------
+bug fixes
+25592 fix bug allowing unprivileged users to see stats for all vhosts
+ (since 3.1.0)
+25600 fix consumer record leak in the management database (since 2.2.0)
+25629 fix memory leak in the presence of long-lived channels and
+ short-lived queues (since 3.1.0)
+25580 fix bug preventing definitions file from loading if it contained
+ a policy from a non default vhost (since 3.1.1)
+
+
+LDAP plugin
+-----------
+bug fixes
+25573 fix garbled login failure errors (since 2.3.0)
+
+
+Java client
+-----------
+bug fixes
+25633 fix quoting and escaping in json parser, avoid a potentially
+ non-terminating loop and improve error handling (since 2.8.2)
+ (thanks to Bradley Peabody)
+
+
+Erlang client
+-------------
+bug fixes
+25521 fix negotiated frame-max handling, which was being ignored (since 2.0.0)
+25489 fix rpc client/server to ensure correlation-ids are valid UTF-8 strings
+ (since 2.0.0) (thanks to Daniel White)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.1.3.txt b/release-notes/README-3.1.3.txt
new file mode 100644
index 0000000000..3d0163d3e0
--- /dev/null
+++ b/release-notes/README-3.1.3.txt
@@ -0,0 +1,12 @@
+Release: RabbitMQ 3.1.3
+
+Release Highlights
+==================
+
+management plugin
+------------------
+bug fixes
+
+25643 fix bug that lead to incorrect reporting of accumulated
+ stats (since 3.1.2)
+
diff --git a/release-notes/README-3.1.4.txt b/release-notes/README-3.1.4.txt
new file mode 100644
index 0000000000..dc42d20f02
--- /dev/null
+++ b/release-notes/README-3.1.4.txt
@@ -0,0 +1,91 @@
+Release: RabbitMQ 3.1.4
+
+Security Fixes
+==============
+
+server
+------
+25686 ensure DLX declaration checks for publish permission (since 2.8.0)
+
+
+management plugin
+-----------------
+24803 update to a later version of Mochiweb that fixes a directory traversal
+ vulnerability allowing arbitrary file access on Windows (since 2.1.0)
+
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+25638 fix resource leak with mirrored queues when whole clusters stop
+ (since 3.0.0)
+25624 fix queue crash in mirrored queue handling of messages during promotion
+ (since 2.6.0)
+25615 25670 fix race conditions in mirrored queues when different cluster
+ nodes start and stop near-simultaneously (since 2.6.0)
+25617 fix corrupt_cluster_status_files error after abrupt node shutdown
+ (since 3.0.0)
+25645 fix mirrored queue sync failure in the presence of un-acked messages
+ not at the head of the queue (since 3.1.0)
+25640 fix race condition leading to channel crash with low prefetch count
+ repeated basic.consume and basic.cancel (since 3.1.0)
+25625 fix memory leak of mirrored queue messages during promotion
+ (since 2.6.0)
+25649 allow hipe compilation on Erlang R16B01
+25659 allow offline cluster node removal with a node which is not second
+ from last (since 3.0.0)
+25648 make `rabbitmqctl join_cluster' idempotent (since 3.0.0)
+25651 improve `rabbitmqctl cluster_status' handling of partition info when
+ cluster nodes are in the process of stopping (since 3.1.0)
+25689 ensure launch of subprocesses to monitor disk space and file handles
+ works correctly when clink shell is installed on Windows (since 2.1.0)
+25594 fix rabbit_error_logger crash during failed startup (since 1.4.0)
+25631 fix bug in shutdown sequence that could lead to spurious
+ INTERNAL_ERRORs being sent to clients (since 3.1.0)
+
+
+erlang client
+-------------
+bug fixes
+25632 fix broken error handling in amqp_network_connection that could lead
+ to a crash during broker shutdown (since 2.4.0)
+25688 fix bug in challenge-response auth handling (since 2.3.0)
+
+enhancements
+25674 add amqp_rpc_{client,server}:start_link()
+
+
+STOMP plugin
+------------
+bug fixes
+25691 fix connection crash on consumer cancellation notification (since 3.0.0)
+
+
+build and packaging
+-------------------
+bug fixes
+25668 add ssl support to OS X standalone package
+25584 ensure that VERSION is set correctly when building src packages
+ (since 2.7.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.1.5.txt b/release-notes/README-3.1.5.txt
new file mode 100644
index 0000000000..7e687f4426
--- /dev/null
+++ b/release-notes/README-3.1.5.txt
@@ -0,0 +1,39 @@
+Release: RabbitMQ 3.1.5
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+25713 fix crash in the delegate mechanism leading to various crashes, and
+ intra-cluster incompatibility between RabbitMQ 3.1.4 and other members
+ of the 3.1.x series (since 3.1.4)
+25700 25710 prevent (harmless) errors being logged when pausing in
+ pause_minority mode (since 3.1.0)
+
+
+LDAP plugin
+-----------
+bug fixes
+25703 prevent channel crash when attempting to retrieve LDAP attribute that
+ does not exist (since 2.7.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.2.0.txt b/release-notes/README-3.2.0.txt
new file mode 100644
index 0000000000..1f25349b86
--- /dev/null
+++ b/release-notes/README-3.2.0.txt
@@ -0,0 +1,191 @@
+Release: RabbitMQ 3.2.0
+
+server
+------
+bug fixes
+25602 fix race condition that could cause mirrored queues to corrupt state
+ during promotion (since 2.6.0)
+25745 prevent HA queue from becoming masterless if multiple nodes shutdown in
+ quick succession (since 2.6.0)
+25685 prevent race that leads to a masterless queue when a mirror and
+ previous leader replica start simultaneously (since 2.6.0)
+25815 ensure that persistent messages with expiration property timeout
+ correctly after broker restarts (since 3.0.0)
+25780 stop ram nodes from becoming disc nodes when started in isolation
+ (since 3.0.0)
+25404 prevent potential deadlocks during shutdown
+25822 prevent crash at startup when starting a clustered node hosting a
+ durable non-HA queue which had been bound to a transient exchange which
+ was deleted when the node was down (since 2.5.0)
+25390 tolerate corrupt queue index files with trailing zeroes during boot
+ (since 2.0.0)
+25704 remove possibility of "incompatible Erlang bytecode" failure in cluster
+ startup (since 3.1.0)
+25721 fix logging of config file location (since 3.1.0)
+25276 ensure queues declared as exclusive are not durable or mirrored
+ (since 2.6.0)
+25757 prevent error being logged when an exclusive queue owner disconnects
+ during declaration (since 3.0.0)
+25675 prevent crash when sending OTP status query to writer or heartbeater
+ processes (since 1.0.0)
+
+enhancements
+25553 support for federated queues
+25749 allow alternate and dead-letter exchanges, queue max length, expiry and
+ message TTL to be controlled by policy as well as AMQP arguments
+24094 report client authentication errors during connection establishment
+ explicitly using connection.close
+25191 inform clients when memory or disk alarms are set or cleared
+25572 allow policies to target queues or exchanges or both
+25726 make it harder to trigger the disk space alarm with default settings
+25597 offer greater control over threshold at which messages are paged to disk
+25716 allow missing exchanges & queues to be deleted and unbound without
+ generating an AMQP error
+25725 implement consumer priorities
+23958 backport OTP process supervision infrastructure improvements
+25733 relax type constraints of header exchanges
+25809 add support for specifying a SSL verify_fun name in the config file
+
+
+building & packaging
+--------------------
+enhancements
+20384 add sample configuration file
+
+dependency change
+25581 require at least Erlang version R13B03 for broker and plugins
+
+feature removal
+25455 remove RabbitMQ-maintained MacPorts repository
+
+
+management plugin
+-----------------
+bug fixes
+25601 report on queue lengths and data rates in a more timely fashion
+ (since 3.1.0)
+25676 display chart times in the local time zone rather than UTC (since 3.1.0)
+25770 prevent over-enthusiastic caching of web UI templates (since 2.1.0)
+
+enhancements
+25063 support arrays in web interface for arguments, policies and headers
+25598 display queue paging information
+25711 improve handling of defaults in config file by rabbitmqadmin (thanks to
+ Simon Lundström)
+25747 de-emphasise internal federation queues and exchanges
+25778 introduce 'policymaker' tag, permitting policy & parameter operations
+ without being full administrator
+25616 more readable number formatting in graph labels
+25641 permit turning tracing on/off using the HTTP API
+25811 add support for web UI authentication via the initial URI
+25792 optimise monitoring of file descriptors on OS X
+
+
+LDAP plugin
+-----------
+enhancements
+25479 support boolean operators in queries
+25724 avoid setting a probably non-existent host in the default configuration
+
+
+federation plugin
+-----------------
+bug fixes
+25707 prevent upstream queues from being deleted, thus preventing deletion
+ upon policy change (since 3.0.0)
+
+enhancements
+25554 allow federation policy to specify a single upstream instead of an
+ upstream-set
+25797 various performance enhancements
+
+
+Web-STOMP plugin
+----------------
+enhancements
+25699 support for implicit subscriptions
+
+
+AMQP 1.0 plugin
+---------------
+bug fixes
+25404 prevent potential deadlocks during shutdown (since 3.1.0)
+
+enhancements
+25539 make the default virtual host configurable
+
+
+STOMP plugin
+------------
+bug fixes
+25692 prevent potential deadlocks during shutdown (since 2.3.0)
+25789 prevent incomplete TCP connection attempts from leaking processes
+ (since 2.3.0)
+
+enhancements
+25539 make the default virtual host configurable
+
+
+MQTT plugin
+-----------
+bug fixes
+25577 ensure resumed subscriptions become active immediately after reconnecting
+25744 correct client shutdown sequence in the event of failed startup
+
+
+jsonrpc-channel plugin
+----------------------
+bug fixes
+25776 fix dependencies that preventing plugin from running (since 3.1.4)
+
+
+java client
+-----------
+bug fixes
+25708 prevent deadlock when calling blocking operations in handleCancel
+ (since 1.0.0)
+
+enhancements
+25736 added routing key to performance testing tool parameters
+25767 rename the performance testing tool (formerly MulticastMain)
+
+
+.net client
+-----------
+enhancements
+25552 make better use of generic types
+25595 consumer cancellation is now exposed as an event
+
+
+erlang client
+-------------
+bug fixes
+25682 prevent potential deadlocks during shutdown
+25743 prevent failures due to connection string lookup errors in protocols
+ other than AMQP 0-9-1 / 0-8 (since 2.8.1)
+25794 prevent startup error when using SSL on versions of Erlang from R16B01
+25677 prevent crash when reconsuming asynchronously with the same tag
+ (since 2.6.0)
+
+enhancements
+25520, 25804 optimise network performance (thanks to Jesper Louis Andersen)
+25782 support connection_timeout in AMQP URI
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.2.1.txt b/release-notes/README-3.2.1.txt
new file mode 100644
index 0000000000..3add3d1bf8
--- /dev/null
+++ b/release-notes/README-3.2.1.txt
@@ -0,0 +1,55 @@
+Release: RabbitMQ 3.2.1
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+25849 fix crash with {down_from_gm,down_from_gm} with multiply-mirrored queues
+ (since 3.2.0)
+25846 fix queue crashes when changing multiple HA policies simultaneously
+ (since 3.0.0)
+25618 ensure a mirrored queue mirror which crashes does not cause the leader replica to
+ crash (since 2.6.0)
+25838 prevent crashes due to timeouts when calling into the limiter
+ (since 3.1.0)
+25842 treat 32 bit Unix platforms as limited to 2GB not 4GB address space
+ (since 1.7.1)
+25845 reduce default heartbeat from 600s to 580s for better compatibility
+ with common load balancer configurations (since 3.0.0)
+25826 fix incorrect placement of file sync which could theoretically
+ corrupt files when written just before a crash (since 3.0.0)
+
+
+building / packaging
+--------------------
+bug fixes
+25835 ship a useful README in /usr/share/doc for Debian and RPM (since 1.0.0)
+
+
+management plugin
+-----------------
+bug fixes
+25811 fix web UI authentication via the initial URI for browsers which are
+ not Chrome (since 3.2.0)
+25861 fix web UI login when user name or password contains '%' (since 3.2.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.2.2.txt b/release-notes/README-3.2.2.txt
new file mode 100644
index 0000000000..eb76c4f243
--- /dev/null
+++ b/release-notes/README-3.2.2.txt
@@ -0,0 +1,60 @@
+Release: RabbitMQ 3.2.2
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+25873 prevent possibility of deadlock when mirrors start up (since 2.6.0)
+25867 ensure automatic synchronisation does not fail when policy change
+ causes new mirrors to start and the leader replica to change simultaneously
+ (since 3.1.0)
+25870 prevent the worker pool from running out of processes due to processes
+ crashing (since 1.8.0)
+25899 prevent race leading to cluster upgrade failure when multiple nodes
+ attempt secondary upgrade simultaneously (since 2.4.1)
+25912 correct reporting of flow control when connections become idle
+ (since 2.8.0)
+
+
+LDAP plugin
+-----------
+bug fixes
+25863 prevent channels crashing during broker shutdown (since 2.3.0)
+
+
+management plugin
+-----------------
+bug fixes
+25872 prevent empty queues from showing length as '?' after going idle
+ (since 3.1.0)
+25889 ensure GET /api/overview uses consistent data types when server is idle
+ (since 2.1.0)
+25920 prevent rabbitmqadmin failure when no home directory is set (since 3.2.0)
+
+
+MQTT plugin
+-----------
+bug fixes
+25887 prevent possible error in the presence of multiple client IDs
+25905 fix handling of acks from the broker with the 'multiple' flag set
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.2.3.txt b/release-notes/README-3.2.3.txt
new file mode 100644
index 0000000000..6b7b095fc5
--- /dev/null
+++ b/release-notes/README-3.2.3.txt
@@ -0,0 +1,64 @@
+Release: RabbitMQ 3.2.3
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+25936 stem leak when queues with active consumers terminate (since 3.2.0)
+25928 fix cosmetic error when sending connection.close-ok after client
+ already closed the connection (since 1.0.0)
+25965 limit messages to ~2GB to prevent "Absurdly large distribution output
+ data buffer" VM crash (since 1.0.0)
+24927 avoid broker being overwhelmed while logging benign messages starting with
+ "Discarding messages" (since 1.0.0)
+25952 prevent "Absurdly large distribution output data buffer" VM crash when
+ sending many/large messages to a mirrored queue (since 2.6.0)
+25925 remove extraneous service parameters when installing on windows
+ (since 1.5.0)
+25929 prevent error being logged when connection is closed while it is still
+ being opened (since 1.0.0)
+
+
+federation plugin
+-----------------
+bug fixes
+25945 ensure federated queues correctly stop federating messages when channels
+ close or crash without cancellation from consumers (since 3.2.0)
+25971 prevent crash of federated mirrored queues on deletion (since 3.2.0)
+25956 prevent federation of the queues used internally by federated exchanges
+ (since 3.2.0)
+25949 prevent unnecessary CPU use when ACKs are not in use (since 2.6.0)
+
+
+shovel plugin
+-----------------
+bug fixes
+25934 remove ordering constraint on configuration items (since 2.0.0)
+25949 prevent unnecessary CPU use when ACKs are not in use (since 2.0.0)
+
+
+LDAP plugin
+-----------
+bug fixes
+25914 fix use of dn_lookup_attribute configuration on OpenLDAP (since 2.8.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.2.4.txt b/release-notes/README-3.2.4.txt
new file mode 100644
index 0000000000..71510cb62f
--- /dev/null
+++ b/release-notes/README-3.2.4.txt
@@ -0,0 +1,87 @@
+Release: RabbitMQ 3.2.4
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26014 prevent 541 internal error removing a nonexistent binding from a topic
+ exchange (since 3.2.0)
+25762 fix failure to delete virtual host if a queue in the virtual host is
+ deleted concurrently (since 1.0.0)
+26013 ensure connection.blocked is sent in all circumstances it should be
+ (since 3.2.0)
+26006, 26038 ensure autoheal does not hang if a node is manually stopped
+ during autoheal (since 3.1.0)
+26000 prevent crash of mirrored supervisor in some circumstances after a
+ network partition is healed (since 2.6.0)
+25972 fix syntax error in example configuration file (since 3.2.0)
+
+
+management plugin
+-----------------
+bug fixes
+24476 prevent statistics database from vanishing after a network partition is
+ healed (since 2.8.3)
+25983 prevent "node statistics not available" error when mochiweb is
+ configured with an explicit list of SSL ciphers (since 2.6.0)
+
+
+federation plugin
+-----------------
+bug fixes
+25998 ensure upstreams which are timing out establishing network connections
+ can be deleted in a timely fashion (since 3.0.0)
+
+
+shovel plugin
+-------------
+bug fixes
+25996 ensure shovels which are timing out establishing network connections
+ do not block broker shutdown (since 2.3.0)
+
+
+STOMP plugin
+------------
+bug fixes
+26028 prevent potential deadlocks during shutdown (since 2.3.0)
+
+
+MQTT plugin
+-----------
+bug fixes
+25982 ensure messages published with QOS=1 are persistent (since 3.1.0)
+
+
+Erlang client
+-------------
+bug fixes
+26041 prevent rare, fake "541 internal error" reported client-side when
+ shutting down connections (since 2.1.1)
+
+
+.NET client
+-----------
+bug fixes
+26016 ensure SSL connection establishment times out if necessary (since 1.0.0)
+26047 ensure IModel.ConfirmSelect() is idempotent (since 2.3.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.3.0.txt b/release-notes/README-3.3.0.txt
new file mode 100644
index 0000000000..6787082deb
--- /dev/null
+++ b/release-notes/README-3.3.0.txt
@@ -0,0 +1,244 @@
+Release: RabbitMQ 3.3.0
+
+Security Fixes / Changes
+========================
+
+server
+------
+25603 prevent access using the default guest/guest credentials except via
+ localhost (since 1.0.0)
+
+
+LDAP plugin
+-----------
+26052 do not allow use of password "" when connecting to servers which
+ permit unauthenticated bind (since 2.3.0)
+
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26069 ensure that memory use is bounded when logging crash of large
+ processes (since 1.0.0)
+25589 ensure that a queue which needs to reduce its RAM usage but is not
+ receiving any publishes still pages out messages quickly (since 2.0.0)
+25991 fix topic routing in the face of multiple bindings that differ only
+ in arguments (e.g. those created by the federation plugin) (since 2.4.0)
+26027 ensure autoheal does not hang winner node if 'rabbitmqctl stop_app'
+ issued on other node during healing (since 3.1.0)
+26043 ensure autoheal does not crash if multiple autoheal requests occur
+ in quick succession and the leader make different decisions for each
+ (since 3.1.0)
+26088 fix failure to delete virtual host if a queue in the virtual host is
+ deleted concurrently (since 1.0.0) (incorrectly reported fixed in 3.2.4)
+25374 interpret AMQP field type 'b' as signed byte rather than unsigned, for
+ compatibility with our errata, and the majority of clients (since 1.0.0)
+26058 prevent inaccurate (sometimes negative) report of memory use by
+ plugins (since 3.1.0)
+26063 prevent spurious rabbit_node_monitor error messages when pausing in
+ pause_minority mode (since 3.2.4)
+
+enhancements
+25888 give busy queues a bias towards delivering more messages than they
+ accept, ensuring they tend to become empty rather than huge
+26070 automatically reconsume when mirrored queues fail over (and
+ introduce x-cancel-on-ha-failover argument for the old behaviour)
+25882 provide 'consumer utilisation' metric to help determine if consumers
+ are being held back by low prefetch counts
+26039 ensure rabbitmqctl's formatting of process IDs is more shell-script
+ friendly
+25654 allow use of separate modules for authentication and authorisation
+25722 explicitly set Erlang distribution port in all circumstances
+25910 add process identification information to process dictionary to aid in
+ debugging
+25922 log reason why a node considered another node to be down
+25860 enforce the rule that object names must be valid UTF-8 strings
+25836 prevent deletion of amq.* built-in exchanges, and mark appropriate ones
+ as internal
+25817 allow plugins to rewrite AMQP methods
+25979 announce cluster-id when clients connect
+26042 allow log_levels config item to silence mirrored queue events
+26065 ensure config file location is logged even if config file is absent
+22525 allow server-wide configuration of channel_max
+25627 show current alarms in 'rabbitmqctl status'
+
+performance improvements
+25957 change semantics of basic.qos global flag in order to allow for
+ greatly enhanced prefetch performance
+ (see https://www.rabbitmq.com/consumer-prefetch.html)
+25827,25853 substantially improve performance stopping and starting brokers
+ with many durable queues
+26001 improve performance of persistent confirmed messages on spinning disks
+24408 improve performance of mandatory publication (very substantially when
+ publishing across clusters)
+25939,25942,25943 improve performance reading and writing AMQP (especially
+ reading large messages)
+
+feature removal
+25962 remove support for client-sent channel.flow method; basic.qos is
+ superior in all cases
+25985 remove support for 'impersonator' tag
+
+
+building & packaging
+--------------------
+bug fixes
+25989 put the example config file in the correct directory for generic
+ Unix and standalone Mac, and put a copy in the AppData directory
+ on Windows (since 3.2.0).
+26093 Debian: remove obsolete DM-Upload-Allowed field (thanks to Thomas
+ Goirand)
+26094 Debian: ensure package can be built multiple times and remove
+ files from debdiff that should not be there (thanks to Thomas Goirand)
+
+enhancements
+25844 switch standalone Mac release to 64 bit architecture
+
+
+management plugin
+-----------------
+bug fixes
+25868 ensure connections in flow control for a long time still show 'flow'
+ and do not transition to 'blocked' (since 2.8.0)
+
+enhancements
+24829 provide information about flow control status of internal components,
+ to help find bottlenecks
+25876 provide regex option when filtering lists (with thanks to Joseph Weeks)
+
+feature removal
+25720 remove the redirect from 2.x-era port 55672 to 15672
+
+
+federation plugin
+-----------------
+enhancements
+23906 implement cycle detection for messages forwarded over federation
+25985 remove requirement to configure local-username
+26042 allow log_levels config item to silence federation events
+25979 replace local-nodename with (non-federation-specific) cluster-id
+25902 preserve original routing key when forwarding messages via
+ queue federation
+25904 tidy up nomenclature in federation status / management
+
+
+shovel plugin
+-------------
+enhancements
+24851 introduce "dynamic" shovels, controlled by parameters in a similar way
+ to federation (see https://www.rabbitmq.com/shovel-dynamic.html)
+25890 make shovel status rather more informative
+25894 introduce "auto-delete" dynamic shovels
+25935 allow dynamic shovels to record routing information similarly to
+ federation
+26045 default prefetch-count to 1000 rather than unlimited
+
+
+LDAP plugin
+-----------
+enhancements
+25785 add 'dn_lookup_bind' to allow lookup of a user's DN before binding
+25839 allow specification of SSL options for (e.g.) presenting client
+ certificates when connecting to an LDAP server
+26022 support timeouts when connecting to an LDAP server
+25570 replace 'as_user_no_password' error with something which makes more sense
+
+
+STOMP plugin
+------------
+bug fixes
+26010 remove examples for the headers exchange that haven't worked since 2010
+
+
+MQTT plugin
+-----------
+bug fixes
+25941 ensure keepalives are implemented completely (since xxx)
+
+enhancements
+26067 initial support for MQTT 3.1.1 draft
+25877 support specifying vhost at the time of connection
+
+
+Web-STOMP plugin
+----------------
+bug fixes
+25896 ensure examples set content-type (since 3.0.0)
+
+enhancements
+25828 upgrade cowboy to get sec-websocket-protocol support
+25913 support SSL (with thanks to James Shiell)
+
+
+JSON-RPC channel plugin
+-----------------------
+feature removal
+26029 remove JSON-RPC channel plugin from the official release
+
+
+java client
+-----------
+enhancements
+14587 support automatically reconnecting to server(s) if connection is
+ interrupted
+26008 make it easier to start a Connection with a custom ExceptionHandler
+25833 allow specifying a per-ConnectionFactory ExecutorService
+25999 handle running in a security-restricted context (e.g. Google App engine)
+25663 improve type safety of ShutdownSignalException "reason" property
+26068 improve clarity of AlreadyClosedException reason
+26015 make Envelope.toString() do something useful
+
+
+.net client
+-----------
+bug fixes
+25911 ensure Subscriptions are informed if a channel closes (since 1.4.0)
+25374 interpret AMQP field type 'b' as signed byte rather than unsigned, for
+ compatibility with our errata, and the majority of other clients
+ (since 1.0.0)
+25046 ensure timeout establishing connection does not throw
+ System.NotSupportedException (since 1.0.0)
+25278 ensure timeout establishing connection does not throw
+ ProtocolVersionMismatchException (since 2.0.0)
+26071 ensure attempted use of a closed channel leads to
+ AlreadyClosedException (since 1.0.0)
+25082 ensure EventingConsumer sets supertype model field (since 1.0.0)
+
+enhancements
+25895 support for SSL cert selection and validation callbacks (thanks to
+ "pooleja")
+26068 improve clarity of AlreadyClosedException reason
+
+
+erlang client
+-------------
+bug fixes
+25374 interpret AMQP field type 'b' as signed byte rather than unsigned, for
+ compatibility with our errata, and the majority of other clients
+ (since 1.0.0)
+26050 add missing handle_server_cancel/2 to amqp_gen_consumer_spec.hrl
+
+enhancements
+25985 do not require direct connections to specify a username
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.3.1.txt b/release-notes/README-3.3.1.txt
new file mode 100644
index 0000000000..276bbf96eb
--- /dev/null
+++ b/release-notes/README-3.3.1.txt
@@ -0,0 +1,107 @@
+Release: RabbitMQ 3.3.1
+
+Security Fixes
+==============
+
+MQTT plugin
+-----------
+26109 prevent potential DOS attack on SSL handshake failure (since 3.0.0)
+
+
+shovel plugin
+-------------
+26100 prevent dynamic shovels from allowing policymaker users to access vhosts
+ they should not be able to (since 3.3.0)
+
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26084 fix race condition causing queue mirrors to occasionally not be promoted
+ on clean leader replica shutdown (since 3.0.0)
+26115 prevent badmatch crash on mirror queue init during rapid restarts
+ (since 3.2.0)
+26117 prevent mirror being incorrectly considered dead when added at the same
+ time as another mirror dies (since 3.2.0)
+26118 prevent mirror queue crash if a queue hibernates before it has fully
+ started (since 3.2.2)
+26125 prevent possible deadlock when mirror becomes synchronised
+ simultaneously with another mirror starting (since 3.1.0)
+26103 ensure dead-letter cycle detection works when dead-lettering messages due
+ to exceeding the queue's max-length (since 3.1.0)
+26123 ensure worker pool state does not become corrupt if a worker process
+ crashes while idle (since 1.8.0)
+25855 ensure disk monitor does not crash the broker on platforms where
+ intermediate OS processes may be killed such as Google Compute Engine
+ (since 2.8.2)
+26096 clarify rabbitmqctl diagnostic messages (since 3.3.0)
+26102 prevent cosmetic GM crash on clean shutdown (since 2.8.7)
+26104 fix format of queue synchronisation log messages (since 3.3.0)
+26114 ensure crash report shrinking does not shrink reports too much
+ (since 3.3.0)
+
+enhancements
+26098 bring back 'impersonator' tag removed in 3.3.0
+26113 add a capability to allow clients to detect the new qos semantics
+ introduced in 3.3.0 without requiring an explicit version check
+
+
+management plugin
+-----------------
+bug fixes
+26140 prevent malformed message being created when publishing with priority
+ or timestamp properties set (since 2.4.0)
+26110 ensure statistics database GC works in a timely manner when the number
+ of objects tracked grows rapidly (since 3.1.0)
+26124 prevent "" being added as the last element of an array when adding
+ an array to queue or exchange arguments via the web UI (since 3.2.0)
+26127 ensure that statistics database startup does not block broker startup
+ for O(queues) time (since 2.8.0)
+26134 improve diagnostics when failing to count used FDs on {Free,Open,Net}BSD
+ (since 2.8.0)
+
+
+shovel-management plugin
+------------------------
+bug fixes
+26105 allow adding dynamic shovels when there are multiple virtual hosts
+ and show correct UI to users with policymaker and monitoring tags
+ (since 3.3.0)
+
+
+STOMP plugin
+------------
+bug fixes
+26061 reject publishes to destination "", rather than creating a server-named
+ queue (since 2.0.0)
+
+
+Java client
+-----------
+bug fixes
+26111 prevent connection crash on recovery when a connection consumes from
+ many queues (since 3.3.0)
+26099 clarify AlreadyClosedException.tostring() in the case when the
+ connection closed for a non-AMQP reason (since 3.3.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.3.2.txt b/release-notes/README-3.3.2.txt
new file mode 100644
index 0000000000..7d5a7725f1
--- /dev/null
+++ b/release-notes/README-3.3.2.txt
@@ -0,0 +1,118 @@
+Release: RabbitMQ 3.3.2
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26180 prevent certain operations (including queue creation and deletion)
+ blocking until a connection closes when the socket limit is reached
+ (since 2.7.0)
+26227 fix incorrect log message about config file location when running as
+ a Windows service, changing RABBITMQ_CONFIG_FILE and not reinstalling
+ the service (since 3.3.0)
+26172 ensure mirror queue does not hang if the GM process crashes at queue
+ startup (since 2.6.0)
+26178 prevent error logger crash in rare circumstances (since 3.3.0)
+26184 prevent small log messages being needlessly truncated (since 3.3.0)
+26226 ensure rabbitmqctl status does not crash if invoked while Mnesia is
+ starting or stopping (since 3.0.0)
+26200 fix garbled SSL log messages (since 3.0.3)
+26203 prevent spurious log message if mirror queue crashes early (since 3.2.2)
+
+
+management plugin
+-----------------
+bug fixes
+26197 fix garbled error message if importing JSON definitions file with invalid
+ input (since 2.1.0)
+26209 ensure reasons for authentication failure are always logged (since 2.1.0)
+
+enhancements
+25376 add documentation on the JSON schema returned by GET queries
+
+
+shovel plugin
+-------------
+bug fixes
+26219 fix creation of dynamic shovels using direct connection URLs through
+ rabbitmqctl (since 3.3.1)
+26176 prevent deadlock deleting virtual host with active dynamic shovel on
+ single core machine (since 3.3.0)
+
+
+federation plugin
+-----------------
+bug fixes
+26176 prevent deadlock deleting virtual host with active federation link on
+ single core machine (since 3.0.0)
+
+
+shovel-management plugin
+------------------------
+bug fixes
+26165 ensure the status of static shovels is correctly shown (since 3.3.1)
+
+
+LDAP plugin
+-----------
+bug fixes
+26190 fix crash when LDAP uses SSL and nothing else does (since 2.3.0)
+
+
+auth-mechanism-ssl plugin
+-------------------------
+bug fixes
+25550 allow use of both certificate and password based authentication at the
+ same time (since 2.3.0)
+
+
+MQTT plugin
+-----------
+bug fixes
+26194 prevent hang on broker shutdown when there are active MQTT connections
+ (since 3.0.0)
+26189 fix connection crash on shutdown if the connection starts very early
+ (since 3.0.0)
+
+
+STOMP plugin
+------------
+bug fixes
+25550 allow use of both certificate and password based authentication at the
+ same time (since 2.3.0)
+
+
+Java client
+-----------
+bug fixes
+26187 ensure network recovery delay is used when recovering from all types of
+ exception (since 3.3.0)
+26188 ensure TopologyRecoveryException includes cause's message (since 3.3.0)
+26196 fix Javadoc for ConnectionFactory.setSocketConfigurator()
+
+
+Erlang client
+-------------
+bug fixes
+26160 declare xmerl application dependency (since 3.3.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.3.3.txt b/release-notes/README-3.3.3.txt
new file mode 100644
index 0000000000..fff7d6a7b0
--- /dev/null
+++ b/release-notes/README-3.3.3.txt
@@ -0,0 +1,46 @@
+Release: RabbitMQ 3.3.3
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26236 prevent log files from being silenced if certain processes crash
+ (since 3.3.2)
+26241 fix disk space monitor crash when using {mem_relative, Ratio}
+ configuration (since 3.2.0)
+24759 run shell scripts with '-e' (since 1.0.0)
+
+
+STOMP plugin
+------------
+bug fixes
+26238 fix queue leak on subscription to /exchange/<name>/<binding> when the
+ exchange does not exist (since 2.0.0)
+
+
+Java client
+-----------
+bug fixes
+26232 ensure channel shutdown listeners are not lost on connection recovery
+ (since 3.3.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.3.4.txt b/release-notes/README-3.3.4.txt
new file mode 100644
index 0000000000..e237ae77d5
--- /dev/null
+++ b/release-notes/README-3.3.4.txt
@@ -0,0 +1,46 @@
+Release: RabbitMQ 3.3.4
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26258 fix startup failure on systems with non-GNU readlink when started from a
+ symlink (e.g. Mac Homebrew) (since 3.3.3)
+26247 fix startup failure when inet_dist_listen_min / inet_dist_listen_max set
+ (since 3.3.3)
+26253 prevent unclear error message when config file completely empty
+ (since 3.3.0)
+
+
+STOMP plugin
+------------
+bug fixes
+26246 don't log a crash when client misses heartbeat (since 2.3.0)
+
+
+web-STOMP plugin
+----------------
+bug fixes
+26250 fix crash when Web-STOMP is the only SSL user in the broker on Erlang
+ R16B03 or later (since 3.0.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.3.5.txt b/release-notes/README-3.3.5.txt
new file mode 100644
index 0000000000..e2480a7e12
--- /dev/null
+++ b/release-notes/README-3.3.5.txt
@@ -0,0 +1,99 @@
+Release: RabbitMQ 3.3.5
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+25921 prevent long delays in publishing after a node goes down and network
+ connections to it time out (since 2.8.3)
+26225 26293 greatly reduce the length of time between pause_minority mode
+ detecting a minority and refusing to accept further publishes
+ (since 3.1.0)
+26313 do not allow clients to override server-configured channel_max
+ (since 3.3.0)
+26159 prevent failure to start if memory monitor cannot determine total
+ system memory (since 1.7.1)
+26290 correctly read /proc/meminfo on Linux even if rows do not contain
+ colons (issue with certain vendor kernels) (since 1.7.1)
+
+enhancements
+26311 provide a mechanism for diagnosing stuck processes
+
+
+building & packaging
+--------------------
+bug fixes
+26322 add loopback_users to the sample configuration file (since 3.3.0)
+
+
+management plugin
+-----------------
+bug fixes
+26072 provide unminimised versions of all bundled Javascript libraries.
+ Fixes Debian bug #736781. (since 2.1.0)
+
+
+management visualiser plugin
+----------------------------
+bug fixes
+26072 provide unminimised versions of all bundled Javascript libraries.
+ Fixes Debian bug #736781. (since 2.1.0)
+
+
+federation plugin
+-----------------
+bug fixes
+26272 ensure changes to cluster name are picked up promptly and thus fix
+ cycle detection on cluster name change (since 3.3.0)
+26292 ensure that federation links apply the defined reconnect delay under
+ all circumstances (since 2.6.0)
+26299 fix leak when shrinking upstream-set immediately after federation
+ starts (since 3.0.0)
+
+
+shovel plugin
+-------------
+bug fixes
+26318 prevent dynamic shovel crash using add-forwarding-headers=true
+ without setting dest-queue or dest-exchange-key (since 3.3.0)
+26292 ensure that shovel workers apply the defined reconnect delay under
+ all circumstances (since 2.0.0)
+26328 prevent dynamic shovels from failing over to the new node whenever
+ a node comes up in a cluster (since 3.3.0)
+
+
+MQTT plugin
+-----------
+bug fixes
+26270 improve error messages on TLS/TCP connection failure (since 3.0.0)
+26281 log cleanly closed MQTT connections as we do for AMQP (since 3.0.0)
+
+
+AMQP 1.0 plugin
+---------------
+bug fixes
+26288 fix handling of the symbol type in message content (as used in
+ content_type and content_encoding) (since 3.1.0)
+26288 (also) fix mapping of AMQP 1.0 ttl and creation_time fields to
+ AMQP 0-9-1 timestamp and expiration fields (since 3.1.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.4.0.txt b/release-notes/README-3.4.0.txt
new file mode 100644
index 0000000000..df04486cd9
--- /dev/null
+++ b/release-notes/README-3.4.0.txt
@@ -0,0 +1,269 @@
+Release: RabbitMQ 3.4.0
+
+Security Fixes
+==============
+
+management plugin
+-----------------
+26414 do not trust X-Forwarded-For header when enforcing 'loopback_users'
+
+various
+-------
+26419 disable SSLv3 by default to prevent the POODLE attack
+
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26354 prevent force_event_refresh message from killing connections that have
+ not fully started (since 3.3.0)
+26347 ensure bindings are deleted when deleting queue records as part
+ of rabbitmqctl forget_cluster_node (since 3.0.3)
+26341 add assertions to prevent silent failure from DETS errors in
+ rabbit_recovery_terms (since 3.3.0)
+26171 prevent crash in rare conditions in gm:find_member_or_blank/2 during
+ mirror startup (since 2.6.0)
+26368 prevent autoheal from hanging when loser shuts down before the winner
+ learns it is the winner (since 3.1.0)
+25850 prevent excessive binary memory use when accepting or delivering
+ large messages at high speed (since 1.0.0)
+26230 ensure exchanges and queues are federated appropriately when
+ created when policy exists to make them so but the plugin is
+ not enabled (since 3.0.0)
+26389 prevent consumer utilisation getting stuck at 0% after busy queue
+ goes idle (since 3.3.0)
+26370 prevent "rabbitmqctl cluster_status" from breaking the database
+ if invoked at the wrong point during first startup (since 3.0.0)
+26295 ensure "rabbitmqctl wait" waits for plugins to start
+26336 fix logging when cluster auto-config fails (since 3.0.0)
+26338 log enotconn as 'connection_closed_abruptly', not an internal
+ error (since 1.0.0)
+26343 fix warning about missing behaviour_info/1 in supervisor2 with
+ older Erlang (since 3.2.0)
+26363 ensure cluster auto-config does not try to cluster with nodes
+ which have had "rabbitmqctl stop_app" invoked (since 3.0.0)
+26378 fix compilation warnings about conflicting behaviours (since 2.6.0)
+26386 ensure broker starts even if vhost pointed to by default_vhost
+ config item has been deleted (since 1.0.0)
+26404 prevent queue synchronisation from hanging if there is a very
+ short partition just as it starts (since 3.1.0)
+
+enhancements
+21446 allow crashing queue processes to recover, using persistent data
+ if present
+25813 provide fast direct route for RPC replies
+ (see https://www.rabbitmq.com/direct-reply-to.html)
+24926 allow plugins to be enabled / disabled without restarting the server
+25884 add argument and policy to limit queue length in bytes
+26150 prevent clean leader replica shutdown from promoting unsynchronised
+ mirrors and thus losing messages; add ha-promote-on-shutdown
+ to configure
+26151 make queues located on down cluster nodes visible in "rabbitmqctl
+ list_queues"
+26213 prevent undefined behaviour during partial partitions by
+ promoting them to full ones
+26254 allow "rabbitmqctl_forget_cluster_node" to promote mirror queue mirrors
+ that are down and thus recover from loss of a node containing masters
+ after it was the last node to stop
+26256 add "rabbitmqctl force_boot" command to allow administrator to
+ override RabbitMQ's idea of the last node to shut down
+26307 add messages_{ready,unacknowledged}_ram / messages_ram /
+ messages_persistent queue info keys
+25666 / 26339 add message_bytes / message_bytes_{ready,unacknowledged,
+ ram,persistent} queue info keys
+25214 improve robustness in the face of stray messages from Mnesia after
+ partitions
+25279 make SSL handshake timeout configurable
+25678 make mnesia table loading timeout configurable
+26148 add username and vhost to amqp_error log messages
+26169 add username / connection information to firehose trace messages
+26242 improve clarity of rabbitmqctl error messages when stop_app has been
+ invoked
+26225 provide connection age in rabbitmqctl list_connections
+25446 add "rabbitmq-plugins set" subcommand
+25824 / 26398 provide a summary of binary memory use
+26397 split out memory used by mirrors vs masters / unmirrored in the
+ memory summary
+26401 split out memory used by connection readers / writers / channels / other
+ in the memory summary
+26192 improve usability of "rabbitmqctl remove_cluster_node --offline" by
+ not requiring the user to start a node with RABBITMQ_NODE_ONLY
+18626 add RABBITMQ_USE_LONGNAME (with thanks to Marcos Diez)
+26204 allow message TTL and queue expiry times above (2^32)-1 milliseconds
+26211 fix use of type specifications deprecated in Erlang 17
+26366 improve error messages when queue / exchange equivalence checks fail
+26387 use new strange way to determine OTP minor version number
+26394 add cluster heartbeat messages at a faster rate than net_ticktime
+26406 add environment for plugins and non-RabbitMQ apps to "rabbitmqctl
+ environment"
+25848 warn if RABBITMQ_SERVER_ERL_ARGS set in a way that will lead to
+ poor performance
+25454 warn if rabbitmq-plugins and rabbitmq-server disagree on the
+ location of the enabled_plugins file
+26221 improve performance of queue.declare{nowait=true}
+
+
+building & packaging
+--------------------
+enhancements
+26344 ensure missing config file is correctly logged in .deb / RPM
+ (since 3.3.0)
+26154 switch standalone OS X build to use Erlang 17.1
+26040 add missing BuildRequires to RPM spec (since 1.8.0)
+26411 fix warning on Debian build clean due to deleted files
+
+
+management plugin
+-----------------
+enhancements
+26107 provide (and default to) mode where we maintain message rates
+ only per object (queue, exchange etc) not per object
+ pair (queue->channel etc) to save memory
+26174 improve responsiveness of management API under load
+25329 maintain history and draw charts for some per-node stats
+ (memory, disk space etc)
+25470 provide UI to show / hide series in charts in the web UI
+26382 provide UI to show / hide columns columns in the web UI
+26225 provide connection age in connection list
+25824 provide a summary of binary memory use
+26151 make queues located on down cluster nodes visible in queue list
+23724 provide API to list all consumers
+26340 redesigned, more concise interface for queue / exchange /
+ policy arguments
+26193 display locations of configuration, database and logs in management
+26193 detect and warn on mismatched net_ticktime setting
+26235 show enabled plugins in management
+25984 switch to HTML5 local storage where available, ensure
+ multiple web UIs on same host do not share login
+26358 support setting message properties with "rabbitmqadmin publish"
+26390 ensure all charts have the same time range
+26391 make "rabbitmqadmin list" restrict to a default set of columns
+
+bug fixes
+26399 ensure statistics do not depend on erlang:now/0 being in sync with
+ os:timestamp/0 (since 3.2.0)
+
+
+shovel plugin
+-------------
+enhancements
+26239 allow dynamic shovels to set message properties like static
+ ones do, and allow static shovels to use add_forward_headers like
+ dynamic ones do
+
+
+LDAP plugin
+-----------
+enhancements
+26275 support LDAP connections using StartTLS (requires Erlang R16B03 or later)
+
+
+tracing plugin
+--------------
+enhancements
+26357 add milliseconds to timestamps
+
+
+STOMP plugin
+------------
+enhancements
+26306 add flow control for message deliveries through STOMP; greatly reduces
+ memory use when slow consumers without prefetch-count connect to a
+ large / fast moving queue
+26243 ensure all stomp-named queues are named "stomp-*"
+26266 support "requeue" header on NACK frames
+
+
+MQTT plugin
+-----------
+enhancements
+26330 add flow control for message deliveries through MQTT; greatly reduces
+ memory use when slow consumers without prefetch-count connect to a
+ large / fast moving queue
+
+bug fixes
+26356 fix incorrect reporting of MQTT protocol version when using MQTT 3.1.1
+
+
+Web-STOMP plugin
+----------------
+enhancements
+26392 don't depend on the SockJS CDN
+
+
+java client
+-----------
+enhancements
+26402 provide a means to configure the time given to slow consumers
+ to continue consuming internally queued messages after the
+ connection closes
+26359 add listeners for queue name changes during recovery
+26207 add APIs to make methods easier to use in nowait mode
+26121 add --randomRoutingKey flag to PerfTest
+26091 add --consumerRate flag to PerfTest
+26348 make ConnectionFactory's networkRecoveryInterval property into a long
+
+bug fixes
+26364 clean up client-side references to auto-deleted queues in the
+ common case (since 3.3.0)
+26374 limit size of WorkPool queues, thus prevent slow consumer with no
+ prefetch limit from consuming unbounded memory (since 2.7.0)
+26413 prevent duplicate connection recovery listeners from being
+ registered (since 3.3.0)
+
+dependency change
+26095 drop support for Java 1.5
+
+licencing change
+24543 make the Java client additionally avaliable under the ASL2
+
+
+.net client
+-----------
+enhancements
+26130 automatic connection recovery similar to that of the Java client
+26208 add APIs to make methods easier to use in nowait mode
+26324 introduce an interface for ConnectionFactory
+26334 set up stream timeouts as early as possible (thanks to John Oliver)
+26199 allow IO and heartbeat to be background threads
+25525 allow Subscription class to set explicit consumer tag
+26097 add support for nack / reject in Subscription
+26122 remove unnecessary lock in Subscription
+
+feature removal
+26131 / 26132 remove support for versions of AMQP prior to 0-9-1
+26133 remove redirect following
+
+
+erlang client
+-------------
+enhancements
+26166 allow default ssl options to be provided in the configuration file
+
+bug fixes
+26418 ensure writer death is detected in direct connections (since 3.2.0)
+ (with thanks to Christopher Faulet)
+26346 ensure amqp_rpc_client uses exclusive, autodelete response
+ queues (since 1.3.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.4.1.txt b/release-notes/README-3.4.1.txt
new file mode 100644
index 0000000000..b742c67295
--- /dev/null
+++ b/release-notes/README-3.4.1.txt
@@ -0,0 +1,69 @@
+Release: RabbitMQ 3.4.1
+
+Security Fixes
+==============
+
+management plugin
+-----------------
+26437 prevent /api/* from returning text/html error messages which could
+ act as an XSS vector (since 2.1.0)
+26433 fix response-splitting vulnerability in /api/downloads (since 2.1.0)
+(thanks to Atholl Stewart for finding the above)
+
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26425 ensure RABBITMQ_USE_LONGNAME / USE_LONGNAME is picked up correctly from
+ rabbitmq-env.conf (since 3.4.0)
+
+enhancements
+26429 add log messages when plugins are enabled or disabled at runtime
+
+
+management plugin
+-----------------
+bug fixes
+26431 fix web UI breakage when queue listing contains exclusive queues
+ (since 3.4.0)
+26438 fix internal server error when requesting permissions for a user or
+ vhost which does not exist (since 2.1.0)
+
+
+Java client
+-----------
+bug fixes
+26434 prevent exchange binding recovery from swapping source and
+ destination (since 3.3.0)
+26428 ensure pom.xml lists ASL 2.0 (since 3.4.0)
+
+
+.NET client
+-----------
+bug fixes
+26439 ensure attempt to open a channel on a closed connection fails
+ immediately (since 1.0.0)
+26435 fix typos in documentation and remove references to immediate
+ publishing (since 3.3.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.4.2.txt b/release-notes/README-3.4.2.txt
new file mode 100644
index 0000000000..701207c4aa
--- /dev/null
+++ b/release-notes/README-3.4.2.txt
@@ -0,0 +1,66 @@
+Release: RabbitMQ 3.4.2
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+25788 prevent HA queue synchronisation from taking quadratic time when
+ there are many messages on disk (since 3.1.0)
+26474 prevent false positive detection of partial partitions (since 3.4.0)
+26460 prevent badarg in rabbit_diagnostics:looks_stuck/1 (since 3.3.5)
+26417 ensure rabbitmqctl does not get falsely disconnected from the
+ broker when net_ticktime has been reduced (since 1.0.0)
+26449 fix garbled inequivalent argument error messages (since 3.4.0)
+26468 fix removal of unmirrored queues as part of "rabbitmqctl
+ forget_cluster_node --offline" (since 3.4.0)
+26470 improve reliability of promotion of mirror mirrors as part of
+ "rabbitmqctl forget_cluster_node --offline" (since 3.4.0)
+26367 ensure dead letter exchange arguments are checked for equivalence
+ on queue declaration (since 3.1.4)
+
+building and packaging
+----------------------
+bug fixes
+26441 fix rabbitmqctl on the OS X standalone release (since 3.4.0)
+
+
+management plugin
+-----------------
+bug fixes
+26472 prevent management agent crashing when log location set to 'tty'
+ (since 3.4.0)
+26451 make sure web UI disk chart says "disk free" not "disk used" (since 3.4.0)
+26455 fix race condition rendering page (since 2.1.0)
+26464 fix drop at the end of data rate charts (since 3.2.0)
+
+
+shovel plugin
+-------------
+bug fixes
+26452 make sure auto-delete shovels remove their record from shovel status
+ when deleting (since 3.3.0)
+26454 fix autodelete shovel behaviour when started on an empty
+ queue (since 3.3.0)
+26453 prevent shovel-management HTTP API returning 500 if queried just as
+ dynamic shovel is being deleted (since 3.3.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.4.3.txt b/release-notes/README-3.4.3.txt
new file mode 100644
index 0000000000..d5f5b1294c
--- /dev/null
+++ b/release-notes/README-3.4.3.txt
@@ -0,0 +1,107 @@
+Release: RabbitMQ 3.4.3
+
+Security Fixes
+==============
+
+management plugin
+-----------------
+26515 prevent XSS attack in table key names (since 2.4.0)
+ (thanks to Robert Fitzpatrick)
+ (CVE-2015-0862)
+26516 prevent XSS attack in policy names (since 3.4.0)
+ (thanks to Robert Fitzpatrick)
+ (CVE-2015-0862)
+26517 prevent XSS attack in client details in the connections list
+ (CVE-2015-0862)
+26518 prevent XSS attack in user names in the vhosts list or the vhost names
+ in the user list (since 2.4.0)
+ (CVE-2015-0862)
+26520 prevent XSS attack in the cluster name (since 3.3.0)
+ (CVE-2015-0862)
+
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26490 in autoheal mode, ensure the leader doesn't stop before the winner told
+ it so (since 3.3.0)
+26491 in autoheal mode, prevent a race in Mnesia by waiting for Mnesia
+ shutdown on all losing nodes (since 3.1.0)
+26478 fix startup or rabbitmqctl failures when RABBITMQ_CTL_ERL_ARGS is set
+ (since 3.4.0)
+26498 fix queue crash with assertion failure in rare circumstances
+ (since 3.4.0)
+26081 improve error message when creating a cluster with mismatched Erlang
+26446 improve error message when a plugin is incompatible with current Erlang
+26265 ensure that plugins modules are picked before other third-party modules
+26503 support ssl's verify_fun from Erlang R14B+ (since 3.2.0)
+26502 fix 'backing_queue_status' duplication in /api/queues REST API (since
+ 3.4.0)
+
+enhancements
+26493 add top_memory_use and top_binary_refs diagnostic tools
+
+
+federation management plugin
+----------------------------
+bug fixes
+26519 fix double HTML escaping in upstream names (since 2.4.0)
+
+
+shovel management plugin
+------------------------
+bug fixes
+26519 fix double HTML escaping in dynamic shovel names (since 2.4.0)
+
+
+tracing plugin
+--------------
+bug fixes
+26519 fix double HTML escaping in tracing log file names (since 2.4.0)
+
+
+AMQP 1.0 plugin
+---------------
+bug fixes
+26486 use env(1) in codegen.py to find python(1) while building (since 3.1.0)
+
+
+MQTT plugin
+-----------
+bug fixes
+26482 ensure full exception details are logged (since 3.3.5)
+
+
+java client
+-----------
+bug fixes
+26492 fix off-by-one error in PerfTest --cmessages count
+
+
+.net client
+-----------
+bug fixes
+26501 make automatic recovery non-blocking to ensure user-defined handlers are
+ not delayed (since 1.0.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.4.4.txt b/release-notes/README-3.4.4.txt
new file mode 100644
index 0000000000..df09e707ca
--- /dev/null
+++ b/release-notes/README-3.4.4.txt
@@ -0,0 +1,104 @@
+Release: RabbitMQ 3.4.4
+
+You can find RabbitMQ change log at https://www.rabbitmq.com/changelog.html.
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26564 ensure that a mirrored queue declaration only returns when all mirrors
+ are running (since 2.6.0)
+26549 Failure to start if AMQP port > 45535 (since 3.3.0)
+26570 policy change on idle queue might not be reported in a timely manner
+ (since 3.0.0)
+26558 rabbitmq-plugins should respect RABBITMQ_CTL_ERL_ARGS (since 3.4.0)
+26562 rabbitmq-env uses "--fqdn" which is specific to net-tools' (i.e. Linux)
+ hostname(1) (since 3.4.0)
+26144 Windows scripts should respect RABBITMQ_NODE_ONLY (since 1.0.0)
+
+
+building & packaging
+--------------------
+bug fixes
+26443 Mnesia directory world-readable on deb / RPM (since 1.0.0)
+26584 Windows installer should install new version after uninstalling
+ the existing one (since 1.0.0)
+
+
+management plugin
+-----------------
+bug fixes
+26533 Specifying SSL version list for Mochiweb causes
+ rabbit_mgmt_external_stats to crash (since 2.6.0)
+26541 Overview page doesn't work with IE <= 8 (since 3.4.0)
+
+
+Java client
+-----------
+bug fixes
+26552 Bindings for non-durable queues are not recovered (since 3.3.0)
+26580 WorkPool.WorkQueue still deadlock-prone (since 3.4.0)
+26523 PerfTest --cmessages off-by-one error (fail to ack last message)
+ (since 3.4.3)
+
+
+.NET client
+-----------
+bug fixes
+26588 API reference generator should work with .NET 4.0+ (since 1.0.0)
+26590 .NET client .msi installer should work with WiX 4.0 (since 1.0.0)
+
+dependency change
+The client now requires .NET 4.0.
+
+
+MQTT plugin
+-----------
+bug fixes
+26567 Last Will and Testament should be sent in case of keep-alive timeout
+ (since 3.0.0)
+26589 MQTT processor should link its channel (since 3.0.0)
+
+
+STOMP plugin
+------------
+bug fixes
+26553 Unexpected authorisation errors may result in client connections staying open
+26282 Improve error messages for STOMP connection failures
+ (TLS issues, abrupt TCP connection closures) (since 3.3.3)
+26559 STOMP reader should handle system messages (since 1.4.0)
+
+
+AMQP 1.0 plugin
+---------------
+bug fixes
+26587 Failure to create resources when producing / consuming not well
+ handled (since 3.1.0)
+
+
+LDAP plugin
+-----------
+bug fixes
+26528 [LDAP] template replacement should escape \ and & (since 2.3.0)
+
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README-3.5.0.txt b/release-notes/README-3.5.0.txt
new file mode 100644
index 0000000000..6368bcab6c
--- /dev/null
+++ b/release-notes/README-3.5.0.txt
@@ -0,0 +1,170 @@
+Release: RabbitMQ 3.5.0
+
+Release Highlights
+==================
+
+server
+------
+bug fixes
+26527 Prevent huge GM / mirror memory consumption under load by adding flow
+ control to messages via GM (since 2.6.0)
+26636 Fix inconsistencies and hangs when a node comes back online before its
+ disappearance is fulled treated (since 3.1.0)
+26622 Ensure channels don't deliver confirms when a pause mode lasts (since
+ 3.3.5)
+26628 When using autoheal, ensure the leader waits for the winner to finish
+ the autoheal process (since 3.3.0)
+26467 Fix promotion of offline mirrors, in particular if the mirror crashed
+ (since 3.4.0)
+26631 Work around a possible hang in Erlang's "global" (since 3.4.2)
+26614 Ensure rabbitmqctl.bat exits with code 1 if ERLANG_HOME is incorrect
+ (since 1.0.0)
+26426 Ensure epmd is restarted on Windows if it ends up running as a normal
+ user and thus getting killed on logout (since 1.0.0)
+26595 Fix a crash when querying SSL certificate info while the connection is
+ closing (since 2.1.1)
+26610 Restore the timeout error message while waiting for other cluster nodes
+ (since 3.4.0)
+26477 Only send 'user_authentication_success' event if
+ rabbit_reader:auth_phase/2 accepts the user (since 3.3.0)
+
+enhancements
+26183 Move priority queues from an external plugin to the broker
+26327 Embed messages smaller than a configurable size in the queue index
+26457 Add read buffer cache to improve on-disk messages consumption
+26543 Improve I/O performance by reading or writing several file segments
+ in one operation
+26465 New "pause_if_all_down" partition handling mode
+26463 Ensure new mirrors are started when old ones go down when ha-mode=exactly
+26469 Support separate authentication/authorisation backends
+26475 Add "rabbitmqctl rename_cluster_node"
+25430 Further limit queue's journal size to avoid excessive memory use
+26545 Prohibit deletion of amq.* exchanges
+26393 Add more info to "user_authentication_*" events
+26444 Improve performance parsing AMQP tables / arrays
+26602 Add routing decision information to firehose messages
+26615 Notify systemd when RabbitMQ is started, if "sd_notify" is available
+26603 Improve unacked messages requeueing performance in priority queues
+26427 Silence connection errors from load balancer sanity checks
+26471 Log when HiPE is enabled
+
+feature removal
+26257 Remove support for the legacy (2.x compatible) form of the
+ "cluster_nodes" configuration directive
+
+
+management plugin
+-----------------
+bug fixes
+26613 Fix exception on the node details page if the node goes
+ online or offline while viewing (since 3.4.0)
+
+enhancements
+26522 Provide statistics about accesses to message store and queue index
+24781 Provide statistics about file I/O
+24921 rabbitmqadmin: Support Python 3
+25652 Add a "move messages" UI
+26561 Show per-queue disk message read/write rates
+26598 Show cross-cluster networking statistics
+26621 Display a warning when the management database is overloaded
+24700 Support if-unused and if-empty for queue / exchange deletion
+
+
+LDAP plugin
+-----------
+bug fixes
+26601 Ensure tag_queries respects other_bind setting
+
+
+MQTT plugin
+-----------
+enhancements
+26278 Support authentication via SSL certificate
+
+
+Web-STOMP plugin
+----------------
+enhancements
+26504 Add configuration parameter for cowboy connection pool size
+
+
+tracing plugin
+--------------
+enhancements
+26619 Improve how logs are written to disk to increase performance
+26620 Allow tracing plugin to truncate message bodies to increase performance
+
+
+java client
+-----------
+bug fixes
+26576 Make sure Channel#abort ignores IOExceptions as the docs say
+
+enhancements
+26571 Undeprecate QueueingConsumer
+26617 Dynamically calculate number of consumer work service executor threads
+
+feature removal
+26007 Remove deprecated ConnectionFactory#getNumConsumerThreads,
+ ConnectionFactory#setNumConsumerThreads, BasicProperties setters (in
+ favour of BasicProperties.Builder) and Channel#recoveryAsync
+
+
+.net client
+-----------
+bug fixes
+26508 Synchronise SessionManager Count method (since 3.3.5)
+
+enhancements
+24699 Add a unit test to ensure channels are notified when a connection is
+ closed
+26329 Dispatch consumer methods concurrently
+26420 Move the .NET guide to www.rabbitmq.com
+26459 Use timer for heartbeats to reduce the number of threads and memory
+ consumption
+26483 Add ISubscription and IQueueingBasicConsumer interfaces
+26505 Upgrade to Visual Studio 2013 project files
+26507 Use a static exchange types array instead of creating a new list each
+ time (since 3.3.5)
+26509 Switch to auto-properties (since 3.3.5)
+26510 Use a separate lock object in BlockingCell (since 3.3.5)
+26511 Assorted doc string and member name prefix changes (since 3.3.5)
+26512 Use EventHandler<T> and similar instead of homebrew event handler
+ classes (since 3.3.5)
+26513 Improve how authentication method names and URI schemas are compared in
+ ConnectionFactory (since 3.3.5)
+26514 Use TryParse instead of Parse in PrimitiveParser (since 3.3.5)
+26534 Remove MSI installer
+26550 Support TLS connections without client certificates
+
+
+building and packaging
+----------------------
+bug fixes
+26539 Use "exec" to run rabbitmq-server in rabbitmq-script-wrapper to ensure
+ signals are correctly propagated (since 2.8.3)
+26524 Improve error message when build dependencies are missing on Mac OS X
+ (since 3.1.0)
+26525 Do not install rabbitmq.config.example if DOC_INSTALL_DIR is unset
+ (since 3.2.0)
+26526 Replace GNU patch specific "--no-backup-if-mismatch" by a portable
+ combination of patch(1) and find(1) (since 3.4.0)
+
+
+Upgrading
+=========
+To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
+the new version. All configuration and persistent message data is retained.
+
+To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
+version on all the nodes and follow the instructions at
+https://www.rabbitmq.com/clustering.html#upgrading .
+
+To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
+retained), and then to the current version as described above.
+
+When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
+moved to a backup location and a fresh, empty database will be created. A
+warning is recorded in the logs. If your RabbitMQ installation contains
+important data then we recommend you contact support at rabbitmq.com for
+assistance with the upgrade.
diff --git a/release-notes/README.md b/release-notes/README.md
new file mode 100644
index 0000000000..3756ac7386
--- /dev/null
+++ b/release-notes/README.md
@@ -0,0 +1,16 @@
+# Release Notes
+
+This directory contains the source of release notes starting with RabbitMQ `3.5.7`
+as well as archived notes for earlier releases.
+
+The notes are published together with releases [on GitHub](https://github.com/rabbitmq/rabbitmq-server/releases)
+and most commonly discovered via the [change log page](https://rabbitmq.com/changelog.html).
+
+This may include WIP notes for unreleased versions or preview releases.
+
+## Archived Pre-GitHub Notes
+
+This directory contains release notes for releases from `1.1.x` through `3.5.0`,
+which pre-date the migration to GitHub. They are preserved both for historical
+purposes and to keep the [change log](https://rabbitmq.com/changelog.html) links functional,
+so their names were not modified to match the `X.Y.Z.md` pattern.