Hello community,
here is the log from the commit of package rabbitmq-server for openSUSE:Factory
checked in at 2019-11-06 14:06:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rabbitmq-server (Old)
and /work/SRC/openSUSE:Factory/.rabbitmq-server.new.2990 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rabbitmq-server"
Wed Nov 6 14:06:33 2019 rev:52 rq:745438 version:3.7.21
Changes:
--------
--- /work/SRC/openSUSE:Factory/rabbitmq-server/rabbitmq-server.changes
2019-10-30 14:46:52.966122586 +0100
+++
/work/SRC/openSUSE:Factory/.rabbitmq-server.new.2990/rabbitmq-server.changes
2019-11-06 14:06:35.444816476 +0100
@@ -1,0 +2,8 @@
+Mon Nov 4 13:02:21 UTC 2019 - Gabriele Santomaggio <[email protected]>
+
+- Update to RabbitMQ version 3.7.21
+- Full release notes:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.21
+- RabbitMQ 3.7.21 is a maintenance release that focuses on bug fixes.
+- RabbitMQ 3.7.x series is supported through March 2020.
+
+-------------------------------------------------------------------
Old:
----
rabbitmq-server-3.7.20.tar.xz
New:
----
rabbitmq-server-3.7.21.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rabbitmq-server.spec ++++++
--- /var/tmp/diff_new_pack.t7dJ8E/_old 2019-11-06 14:06:36.268817339 +0100
+++ /var/tmp/diff_new_pack.t7dJ8E/_new 2019-11-06 14:06:36.272817343 +0100
@@ -33,7 +33,7 @@
%define _make_args DESTDIR="%{buildroot}" PREFIX="%{_prefix}"
RMQ_ROOTDIR=%{_rabbit_libdir} RMQ_ERLAPP_DIR=%{_rabbit_erllibdir}
MAN_INSTALL_PATH="%{_mandir}" DOC_INSTALL_DIR=%{buildroot}/%{_docdir}
VERSION=%{version} V=1
Name: rabbitmq-server
-Version: 3.7.20
+Version: 3.7.21
Release: 0
Summary: A message broker supporting AMQP, STOMP and MQTT
License: MPL-1.1
++++++ rabbitmq-server-3.7.20.tar.xz -> rabbitmq-server-3.7.21.tar.xz ++++++
Binary files old/rabbitmq-server-3.7.20/deps/.hex/cache.ets and
new/rabbitmq-server-3.7.21/deps/.hex/cache.ets differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/rabbitmq-server-3.7.20/deps/rabbit/src/rabbit_reader.erl
new/rabbitmq-server-3.7.21/deps/rabbit/src/rabbit_reader.erl
--- old/rabbitmq-server-3.7.20/deps/rabbit/src/rabbit_reader.erl
2019-10-22 02:19:14.000000000 +0200
+++ new/rabbitmq-server-3.7.21/deps/rabbit/src/rabbit_reader.erl
2019-10-31 14:26:56.000000000 +0100
@@ -652,7 +652,7 @@
terminate(Explanation, State) when ?IS_RUNNING(State) ->
{normal, handle_exception(State, 0,
rabbit_misc:amqp_error(
- connection_forced, Explanation, [], none))};
+ connection_forced, "~s", [Explanation],
none))};
terminate(_Explanation, State) ->
{force, State}.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/rabbitmq-server-3.7.20/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl
new/rabbitmq-server-3.7.21/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl
---
old/rabbitmq-server-3.7.20/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl
2019-10-14 21:46:35.000000000 +0200
+++
new/rabbitmq-server-3.7.21/deps/rabbitmq_auth_backend_ldap/src/rabbit_auth_backend_ldap.erl
2019-10-31 11:43:23.000000000 +0100
@@ -103,10 +103,12 @@
{user_dn, UserDN},
{vhost, VHost}] ++ ADArgs,
?L("CHECK: ~s for ~s", [log_vhost(Args), log_user(User)]),
- R = evaluate_ldap(env(vhost_access_query), Args, User),
- ?L("DECISION: ~s for ~s: ~p",
- [log_vhost(Args), log_user(User), log_result(R)]),
- R.
+ R0 = evaluate_ldap(env(vhost_access_query), Args, User),
+ R1 = ensure_rabbit_authz_backend_result(R0),
+ ?L("DECISION: ~s for ~s: ~p (~p)",
+ [log_vhost(Args), log_user(User),
+ log_result(R0), log_result(R1)]),
+ R1.
check_resource_access(User = #auth_user{username = Username,
impl = #impl{user_dn = UserDN}},
@@ -120,17 +122,19 @@
{name, Name},
{permission, Permission}] ++ ADArgs,
?L("CHECK: ~s for ~s", [log_resource(Args), log_user(User)]),
- R = evaluate_ldap(env(resource_access_query), Args, User),
- ?L("DECISION: ~s for ~s: ~p",
- [log_resource(Args), log_user(User), log_result(R)]),
- R.
+ R0 = evaluate_ldap(env(resource_access_query), Args, User),
+ R1 = ensure_rabbit_authz_backend_result(R0),
+ ?L("DECISION: ~s for ~s: ~p (~p)",
+ [log_resource(Args), log_user(User),
+ log_result(R0), log_result(R1)]),
+ R1.
check_topic_access(User = #auth_user{username = Username,
impl = #impl{user_dn = UserDN}},
#resource{virtual_host = VHost, kind = topic = Resource,
name = Name},
Permission,
Context) ->
- OptionsArgs = topic_context_as_options(Context, undefined),
+ OptionsArgs = context_as_options(Context, undefined),
ADArgs = rabbit_auth_backend_ldap_util:get_active_directory_args(Username),
Args = [{username, Username},
{user_dn, UserDN},
@@ -139,20 +143,36 @@
{name, Name},
{permission, Permission}] ++ OptionsArgs ++ ADArgs,
?L("CHECK: ~s for ~s", [log_resource(Args), log_user(User)]),
- R = evaluate_ldap(env(topic_access_query), Args, User),
- ?L("DECISION: ~s for ~s: ~p",
- [log_resource(Args), log_user(User), log_result(R)]),
- R.
+ R0 = evaluate_ldap(env(topic_access_query), Args, User),
+ R1 = ensure_rabbit_authz_backend_result(R0),
+ ?L("DECISION: ~s for ~s: ~p (~p)",
+ [log_resource(Args), log_user(User),
+ log_result(R0), log_result(R1)]),
+ R1.
%%--------------------------------------------------------------------
-topic_context_as_options(Context, Namespace) when is_map(Context) ->
+ensure_rabbit_authz_backend_result(true) ->
+ true;
+ensure_rabbit_authz_backend_result(false) ->
+ false;
+ensure_rabbit_authz_backend_result({error, _}=Error) ->
+ Error;
+% rabbitmq/rabbitmq-auth-backend-ldap#116
+ensure_rabbit_authz_backend_result({refused, _, _}) ->
+ false;
+ensure_rabbit_authz_backend_result({ok, _}) ->
+ true;
+ensure_rabbit_authz_backend_result({ok, _, _}) ->
+ true.
+
+context_as_options(Context, Namespace) when is_map(Context) ->
% filter keys that would erase fixed variables
lists:flatten([begin
Value = maps:get(Key, Context),
case Value of
MapOfValues when is_map(MapOfValues) ->
- topic_context_as_options(MapOfValues, Key);
+ context_as_options(MapOfValues, Key);
SimpleValue ->
case Namespace of
undefined ->
@@ -164,7 +184,7 @@
end || Key <- maps:keys(Context), lists:member(
rabbit_data_coercion:to_atom(Key),
?RESOURCE_ACCESS_QUERY_VARIABLES) =:= false]);
-topic_context_as_options(_, _) ->
+context_as_options(_, _) ->
[].
create_option_name_with_namespace(Namespace, Key) ->
@@ -376,7 +396,7 @@
R
end.
-%% In some cases when fetching regular expressions, LDAP evalution()
+%% In some cases when fetching regular expressions, LDAP evalution()
%% returns a list of strings, so we need to wrap guards around that.
%% If a list of strings is returned, loop and match versus each element.
do_match_multi(S1, []) ->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/rabbitmq-server-3.7.20/deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema
new/rabbitmq-server-3.7.21/deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema
---
old/rabbitmq-server-3.7.20/deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema
1970-01-01 01:00:00.000000000 +0100
+++
new/rabbitmq-server-3.7.21/deps/rabbitmq_event_exchange/priv/schema/rabbitmq_event_exchange.schema
2019-10-30 16:38:44.000000000 +0100
@@ -0,0 +1,7 @@
+{mapping, "event_exchange.vhost", "rabbitmq_event_exchange.vhost",
+ [{datatype, string}]}.
+
+{translation, "rabbitmq_event_exchange.vhost",
+fun(Conf) ->
+ list_to_binary(cuttlefish:conf_get("event_exchange.vhost", Conf))
+end}.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/rabbitmq-server-3.7.20/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl
new/rabbitmq-server-3.7.21/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl
---
old/rabbitmq-server-3.7.20/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl
2019-10-09 20:21:13.000000000 +0200
+++
new/rabbitmq-server-3.7.21/deps/rabbitmq_event_exchange/src/rabbit_exchange_type_event.erl
2019-10-30 16:38:44.000000000 +0100
@@ -11,7 +11,7 @@
%% The Original Code is RabbitMQ.
%%
%% The Initial Developer of the Original Code is GoPivotal, Inc.
-%% Copyright (c) 2007-2017 Pivotal Software, Inc. All rights reserved.
+%% Copyright (c) 2007-2018 Pivotal Software, Inc. All rights reserved.
%%
-module(rabbit_exchange_type_event).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/rabbitmq-server-3.7.20/deps/rabbitmq_stomp/priv/schema/rabbitmq_stomp.schema
new/rabbitmq-server-3.7.21/deps/rabbitmq_stomp/priv/schema/rabbitmq_stomp.schema
---
old/rabbitmq-server-3.7.20/deps/rabbitmq_stomp/priv/schema/rabbitmq_stomp.schema
2019-10-09 19:36:45.000000000 +0200
+++
new/rabbitmq-server-3.7.21/deps/rabbitmq_stomp/priv/schema/rabbitmq_stomp.schema
2019-10-30 16:28:14.000000000 +0100
@@ -202,7 +202,7 @@
%% CONNECT frame.
%%
%% {implicit_connect, true}
-% ]},
+
{mapping, "stomp.implicit_connect", "rabbitmq_stomp.implicit_connect",
[{datatype, {enum, [true, false]}}]}.
@@ -212,3 +212,10 @@
{mapping, "stomp.proxy_protocol", "rabbitmq_stomp.proxy_protocol",
[{datatype, {enum, [true, false]}}]}.
+
+%% Whether or not to hide server info
+%%
+%% {hide_server_info, false}
+
+{mapping, "stomp.hide_server_info", "rabbitmq_stomp.hide_server_info",
+ [{datatype, {enum, [true, false]}}]}.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/rabbitmq-server-3.7.20/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl
new/rabbitmq-server-3.7.21/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl
---
old/rabbitmq-server-3.7.20/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl
2019-10-09 20:39:25.000000000 +0200
+++
new/rabbitmq-server-3.7.21/deps/rabbitmq_web_mqtt/src/rabbit_web_mqtt_app.erl
2019-10-31 13:24:48.000000000 +0100
@@ -66,10 +66,17 @@
start_tcp_listener(TCPConf0, CowboyOpts) ->
{TCPConf, IpStr, Port} = get_tcp_conf(TCPConf0),
- MaxConnections = get_max_connections(),
- case ranch:start_listener(web_mqtt, get_env(num_tcp_acceptors, 10),
- ranch_tcp, [{max_connections, MaxConnections}|TCPConf],
- rabbit_web_mqtt_connection_sup, CowboyOpts) of
+ RanchTransportOpts = #{
+ socket_opts => TCPConf,
+ connection_type => supervisor,
+ max_connections => get_max_connections(),
+ num_acceptors => get_env(num_tcp_acceptors, 10)
+ },
+ case ranch:start_listener(web_mqtt,
+ ranch_tcp,
+ RanchTransportOpts,
+ rabbit_web_mqtt_connection_sup,
+ CowboyOpts) of
{ok, _} -> ok;
{error, {already_started, _}} -> ok;
{error, ErrTCP} ->
@@ -86,13 +93,17 @@
start_tls_listener(TLSConf0, CowboyOpts) ->
rabbit_networking:ensure_ssl(),
{TLSConf, TLSIpStr, TLSPort} = get_tls_conf(TLSConf0),
- MaxConnections = get_max_connections(),
- {ok, _} = ranch:start_listener(web_mqtt_secure, get_env(num_ssl_acceptors,
10),
- ranch_ssl, [{max_connections, MaxConnections}|TLSConf],
- rabbit_web_mqtt_connection_sup, CowboyOpts),
- case ranch:start_listener(web_mqtt_secure, get_env(num_ssl_acceptors, 10),
- ranch_ssl, [{max_connections, MaxConnections}|TLSConf],
- rabbit_web_mqtt_connection_sup, CowboyOpts) of
+ RanchTransportOpts = #{
+ socket_opts => TLSConf,
+ connection_type => supervisor,
+ max_connections => get_max_connections(),
+ num_acceptors => get_env(num_ssl_acceptors, 10)
+ },
+ case ranch:start_listener(web_mqtt_secure,
+ ranch_ssl,
+ RanchTransportOpts,
+ rabbit_web_mqtt_connection_sup,
+ CowboyOpts) of
{ok, _} -> ok;
{error, {already_started, _}} -> ok;
{error, ErrTLS} ->
@@ -115,20 +126,18 @@
ok.
get_tcp_conf(TCPConf0) ->
- TCPConf1 = [{connection_type, supervisor}|TCPConf0],
- TCPConf2 = case proplists:get_value(port, TCPConf1) of
- undefined -> [{port, 15675}|TCPConf1];
- _ -> TCPConf1
+ TCPConf1 = case proplists:get_value(port, TCPConf0) of
+ undefined -> [{port, 15675}|TCPConf0];
+ _ -> TCPConf0
end,
- get_ip_port(TCPConf2).
+ get_ip_port(TCPConf1).
get_tls_conf(TLSConf0) ->
- TLSConf1 = [{connection_type, supervisor}|TLSConf0],
- TLSConf2 = case proplists:get_value(port, TLSConf1) of
- undefined -> [{port, 15675}|proplists:delete(port,
TLSConf1)];
- _ -> TLSConf1
+ TLSConf1 = case proplists:get_value(port, TLSConf0) of
+ undefined -> [{port, 15675}|proplists:delete(port,
TLSConf0)];
+ _ -> TLSConf0
end,
- get_ip_port(TLSConf2).
+ get_ip_port(TLSConf1).
get_ip_port(Conf0) ->
IpStr = proplists:get_value(ip, Conf0),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/rabbitmq-server-3.7.20/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl
new/rabbitmq-server-3.7.21/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl
---
old/rabbitmq-server-3.7.20/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl
2019-10-09 20:23:15.000000000 +0200
+++
new/rabbitmq-server-3.7.21/deps/rabbitmq_web_stomp/src/rabbit_web_stomp_listener.erl
2019-10-31 13:51:34.000000000 +0100
@@ -48,22 +48,28 @@
end,
ok.
-start_tcp_listener(TCPConf0, CowboyOpts, Routes) ->
+start_tcp_listener(TCPConf0, CowboyOpts0, Routes) ->
NumTcpAcceptors = case application:get_env(rabbitmq_web_stomp,
num_tcp_acceptors) of
undefined -> get_env(num_acceptors, 10);
{ok, NumTcp} -> NumTcp
end,
Port = get_tcp_port(application:get_all_env(rabbitmq_web_stomp)),
TCPConf = get_tcp_conf(TCPConf0, Port),
- MaxConnections = get_max_connections(),
- case ranch:start_listener(
- http, NumTcpAcceptors,
- ranch_tcp, [{connection_type, supervisor}, {max_connections,
MaxConnections}] ++ TCPConf,
- rabbit_web_stomp_connection_sup,
- CowboyOpts#{env => #{dispatch => Routes},
- middlewares => [cowboy_router,
- rabbit_web_stomp_middleware,
- cowboy_handler]}) of
+ RanchTransportOpts = #{
+ socket_opts => TCPConf,
+ connection_type => supervisor,
+ max_connections => get_max_connections(),
+ num_acceptors => NumTcpAcceptors
+ },
+ CowboyOpts = CowboyOpts0#{env => #{dispatch => Routes},
+ middlewares => [cowboy_router,
+ rabbit_web_stomp_middleware,
+ cowboy_handler]},
+ case ranch:start_listener(web_stomp,
+ ranch_tcp,
+ RanchTransportOpts,
+ rabbit_web_stomp_connection_sup,
+ CowboyOpts) of
{ok, _} -> ok;
{error, {already_started, _}} -> ok;
{error, ErrTCP} ->
@@ -79,7 +85,7 @@
[get_binding_address(TCPConf), Port]).
-start_tls_listener(TLSConf0, CowboyOpts, Routes) ->
+start_tls_listener(TLSConf0, CowboyOpts0, Routes) ->
rabbit_networking:ensure_ssl(),
NumSslAcceptors = case application:get_env(rabbitmq_web_stomp,
num_ssl_acceptors) of
undefined -> get_env(num_acceptors, 10);
@@ -87,15 +93,21 @@
end,
TLSPort = proplists:get_value(port, TLSConf0),
TLSConf = maybe_parse_ip(TLSConf0),
- MaxConnections = get_max_connections(),
- case ranch:start_listener(
- https, NumSslAcceptors,
- ranch_ssl, [{connection_type, supervisor}, {max_connections,
MaxConnections}] ++ TLSConf,
- rabbit_web_stomp_connection_sup,
- CowboyOpts#{env => #{dispatch => Routes},
- middlewares => [cowboy_router,
- rabbit_web_stomp_middleware,
- cowboy_handler]}) of
+ RanchTransportOpts = #{
+ socket_opts => TLSConf,
+ connection_type => supervisor,
+ max_connections => get_max_connections(),
+ num_acceptors => NumSslAcceptors
+ },
+ CowboyOpts = CowboyOpts0#{env => #{dispatch => Routes},
+ middlewares => [cowboy_router,
+ rabbit_web_stomp_middleware,
+ cowboy_handler]},
+ case ranch:start_listener(web_stomp_secure,
+ ranch_ssl,
+ RanchTransportOpts,
+ rabbit_web_stomp_connection_sup,
+ CowboyOpts) of
{ok, _} -> ok;
{error, {already_started, _}} -> ok;
{error, ErrTLS} ->
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/rabbitmq-server-3.7.20/git-revisions.txt
new/rabbitmq-server-3.7.21/git-revisions.txt
--- old/rabbitmq-server-3.7.20/git-revisions.txt 2019-10-25
14:54:43.000000000 +0200
+++ new/rabbitmq-server-3.7.21/git-revisions.txt 2019-11-01
02:19:33.000000000 +0100
@@ -1,8 +1,8 @@
-RabbitMQ Server 3.7.20
-rabbitmq_server_release ef4ee54e097d0f870105b66f0bb5c12f8b5ff249
-amqp10_client 9b34f676642d08883fcc3fe38a9f65fe37ca0bc7 v3.7.19
-amqp10_common 2603f6dd5d38e53928e94260fee76a2c0c2415aa v3.7.19
-amqp_client 47d244d8948c220e32027aadd2a94f831969ba83
+RabbitMQ Server 3.7.21
+rabbitmq_server_release 5f0a985815d187f5f91c8b2ac25540f29e82d822 v3.7.20
+amqp10_client 9b34f676642d08883fcc3fe38a9f65fe37ca0bc7 v3.7.20
+amqp10_common 2603f6dd5d38e53928e94260fee76a2c0c2415aa v3.7.20
+amqp_client 47d244d8948c220e32027aadd2a94f831969ba83 v3.7.20
cowboy
cowlib 8588724cf91ddbb53b9c35ed665866556b217323 2.7.0
credentials_obfuscation
@@ -11,43 +11,43 @@
jsx
lager
observer_cli
-rabbit 39b57573df9ab26d98724235b1be12a9773e6c11
-rabbit_common fe67d981c2c393b053c9df6b7f6523c8f484e4d0
-rabbitmq_amqp1_0 efebe416a5bdcbef29a9102f5a95e4d094b67474 v3.7.19
-rabbitmq_auth_backend_cache 745233e297dd8110660fae55322a7878b489151a v3.7.19
-rabbitmq_auth_backend_http c130398b7d2abf45be897d67499263d3beddbb1a v3.7.19
-rabbitmq_auth_backend_ldap 6a9560000e676ced23933c4bf4474ef5b9845698
-rabbitmq_auth_mechanism_ssl decabd86963e535dc3f326c408e5279167ee553b v3.7.19
-rabbitmq_aws e64adca1d513ea3d86aafb68a6c9ba0047da1985 v3.7.19
-rabbitmq_cli 6aaa2fbde7e5172a9e933bcbebfacbcf397b0a85
-rabbitmq_codegen b808d4231384eeaa11af0e8f26436ee5b6f96bec v3.7.19
-rabbitmq_consistent_hash_exchange 5ff7f6718413bcc6427c92c4b3ab5bea1360acf3
v3.7.19
-rabbitmq_event_exchange d2518a66ced5db5404e8d1da69ca36ec4b0db206 v3.7.19
-rabbitmq_federation e6f0e2c6b62dca303ec4f870bbd1ae1216c74651 v3.7.19
-rabbitmq_federation_management 7dfd6f98688e54cfbdc0370537df705cfb65177e
-rabbitmq_jms_topic_exchange 70f89eda4650daf9e366f15b2bed05051d91d23c v3.7.19
-rabbitmq_management a19a05943c75195ed4bb8825e4b9535413ccdea2 v3.7.19
-rabbitmq_management_agent bcd12aecfd95dc8e0109cc6d9c0ce6b72ec6e9a7 v3.7.19
-rabbitmq_mqtt f73d4021eaddca5c3a0e7be33ffcb1331b078889
-rabbitmq_peer_discovery_aws 45c208a21f734db2ecc5cc253060e7ed03b0e63c
-rabbitmq_peer_discovery_common 9a5913c2577d2693b99d7a84b67ae08aaf3cd511
-rabbitmq_peer_discovery_consul b0fd6a01b288cb29abfc3263d6836ff7f34fd45e
-rabbitmq_peer_discovery_etcd cdb9ccc888a4a25cb2e4265e6b55214f01a828cc
-rabbitmq_peer_discovery_k8s 2da5a78716361c0d37a09fc7b6b1f11c4f0ee5ef
-rabbitmq_random_exchange 62ac0effd3e64518758e52aadcf2a7d49cec2ce3 v3.7.19
-rabbitmq_recent_history_exchange ad2e479cf76fbb3c8a125bd4b39e6e85b5f01157
v3.7.19
-rabbitmq_sharding ed15e34adce9cfa330481c1450ed0eb857420bb5 v3.7.19
-rabbitmq_shovel 858ca0e51f21e494af11f9d496bdceedff43af9d v3.7.19
-rabbitmq_shovel_management 4ed231a13054f9bab228462c82dfa977429436c8
-rabbitmq_stomp 000226a067e9397a7dedcc871c15572f37bf8562 v3.7.19
-rabbitmq_top 7dfe45fee14628f1b5bb9f424c28500981fe140e v3.7.19
-rabbitmq_tracing e5772822957c2c636b63ba484afdfd8d64063335
-rabbitmq_trust_store ab8138c3a38d6c5bbc0ca862b01995c0f70198a1 v3.7.19
-rabbitmq_web_dispatch 473d3af6226ba5673461aed74a8e1e060461c593 v3.7.19
-rabbitmq_web_mqtt 4e826a436f8ff81e761b1eb732a43f9ac9396ff5 v3.7.19
-rabbitmq_web_mqtt_examples dce1cb830ab85a93515781e596ff29d268fa16d0 v3.7.19
-rabbitmq_web_stomp 5b6cdf44ecaec6cc35b6e8049c56eb0a0068c9b2 v3.7.19
-rabbitmq_web_stomp_examples 8e1dc308359e20ea34882d1b664d8529849fed6d v3.7.19
+rabbit d75eb86dae6fbdc79b5413eb577bf36d9f3a6c87
+rabbit_common fe67d981c2c393b053c9df6b7f6523c8f484e4d0 v3.7.20
+rabbitmq_amqp1_0 efebe416a5bdcbef29a9102f5a95e4d094b67474 v3.7.20
+rabbitmq_auth_backend_cache 745233e297dd8110660fae55322a7878b489151a v3.7.20
+rabbitmq_auth_backend_http c130398b7d2abf45be897d67499263d3beddbb1a v3.7.20
+rabbitmq_auth_backend_ldap 3d30722193b8789ae81e7e8f44bb138bf460ac9b
+rabbitmq_auth_mechanism_ssl decabd86963e535dc3f326c408e5279167ee553b v3.7.20
+rabbitmq_aws e64adca1d513ea3d86aafb68a6c9ba0047da1985 v3.7.20
+rabbitmq_cli 6aaa2fbde7e5172a9e933bcbebfacbcf397b0a85 v3.7.20
+rabbitmq_codegen b808d4231384eeaa11af0e8f26436ee5b6f96bec v3.7.20
+rabbitmq_consistent_hash_exchange 5ff7f6718413bcc6427c92c4b3ab5bea1360acf3
v3.7.20
+rabbitmq_event_exchange bde8836294b398c053f46791537700be874ac834
+rabbitmq_federation e6f0e2c6b62dca303ec4f870bbd1ae1216c74651 v3.7.20
+rabbitmq_federation_management 7dfd6f98688e54cfbdc0370537df705cfb65177e v3.7.20
+rabbitmq_jms_topic_exchange 70f89eda4650daf9e366f15b2bed05051d91d23c v3.7.20
+rabbitmq_management a19a05943c75195ed4bb8825e4b9535413ccdea2 v3.7.20
+rabbitmq_management_agent bcd12aecfd95dc8e0109cc6d9c0ce6b72ec6e9a7 v3.7.20
+rabbitmq_mqtt f73d4021eaddca5c3a0e7be33ffcb1331b078889 v3.7.20
+rabbitmq_peer_discovery_aws 45c208a21f734db2ecc5cc253060e7ed03b0e63c v3.7.20
+rabbitmq_peer_discovery_common 9a5913c2577d2693b99d7a84b67ae08aaf3cd511 v3.7.20
+rabbitmq_peer_discovery_consul b0fd6a01b288cb29abfc3263d6836ff7f34fd45e v3.7.20
+rabbitmq_peer_discovery_etcd cdb9ccc888a4a25cb2e4265e6b55214f01a828cc v3.7.20
+rabbitmq_peer_discovery_k8s 2da5a78716361c0d37a09fc7b6b1f11c4f0ee5ef v3.7.20
+rabbitmq_random_exchange 62ac0effd3e64518758e52aadcf2a7d49cec2ce3 v3.7.20
+rabbitmq_recent_history_exchange ad2e479cf76fbb3c8a125bd4b39e6e85b5f01157
v3.7.20
+rabbitmq_sharding ed15e34adce9cfa330481c1450ed0eb857420bb5 v3.7.20
+rabbitmq_shovel 858ca0e51f21e494af11f9d496bdceedff43af9d v3.7.20
+rabbitmq_shovel_management 4ed231a13054f9bab228462c82dfa977429436c8 v3.7.20
+rabbitmq_stomp 5e65c85ad2d33a054bb8dac8ed38d4a9b1e8fd64
+rabbitmq_top 7dfe45fee14628f1b5bb9f424c28500981fe140e v3.7.20
+rabbitmq_tracing e5772822957c2c636b63ba484afdfd8d64063335 v3.7.20
+rabbitmq_trust_store ab8138c3a38d6c5bbc0ca862b01995c0f70198a1 v3.7.20
+rabbitmq_web_dispatch 473d3af6226ba5673461aed74a8e1e060461c593 v3.7.20
+rabbitmq_web_mqtt ff4d11e38406b1813e5c3bea4d07bf33d9fff5a8
+rabbitmq_web_mqtt_examples dce1cb830ab85a93515781e596ff29d268fa16d0 v3.7.20
+rabbitmq_web_stomp ed5baab673e5c087801b6496defae447e9839c14
+rabbitmq_web_stomp_examples 8e1dc308359e20ea34882d1b664d8529849fed6d v3.7.20
ranch
recon
stdout_formatter