summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2023-04-17 14:24:12 +0400
committerGitHub <noreply@github.com>2023-04-17 14:24:12 +0400
commitd34ac54bf19e31a7270be6e687d903e0178e343b (patch)
treed82ce474891cc8e232b3920a0da1adc07fb3cfea
parentcf6b442e2d1ba1f56d2bc655f5edb309a445261f (diff)
parente50746938704dca0400528a89f0e05bf08b6d7f5 (diff)
downloadrabbitmq-server-git-d34ac54bf19e31a7270be6e687d903e0178e343b.tar.gz
Merge branch 'main' into recovery-terms-ram-file-on-start
-rw-r--r--.bazelrc3
-rw-r--r--BUILD.bazel3
-rw-r--r--MODULE.bazel10
-rw-r--r--WORKSPACE14
-rw-r--r--bazel/platforms/BUILD.bazel9
-rw-r--r--deps/amqp10_client/BUILD.bazel1
-rw-r--r--deps/amqp_client/BUILD.bazel1
-rw-r--r--deps/rabbit/BUILD.bazel1
-rw-r--r--deps/rabbit/apps/rabbitmq_prelaunch/BUILD.bazel1
-rw-r--r--deps/rabbit/src/rabbit_process.erl5
-rw-r--r--deps/rabbit_common/BUILD.bazel1
-rw-r--r--deps/rabbitmq_amqp1_0/BUILD.bazel1
-rw-r--r--deps/rabbitmq_auth_backend_cache/BUILD.bazel1
-rw-r--r--deps/rabbitmq_auth_backend_http/BUILD.bazel1
-rw-r--r--deps/rabbitmq_auth_backend_ldap/BUILD.bazel1
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/BUILD.bazel1
-rw-r--r--deps/rabbitmq_auth_backend_oauth2/priv/schema/rabbitmq_auth_backend_oauth2.schema2
-rw-r--r--deps/rabbitmq_auth_mechanism_ssl/BUILD.bazel1
-rw-r--r--deps/rabbitmq_aws/BUILD.bazel1
-rw-r--r--deps/rabbitmq_cli/BUILD.bazel1
-rw-r--r--deps/rabbitmq_consistent_hash_exchange/BUILD.bazel1
-rw-r--r--deps/rabbitmq_event_exchange/BUILD.bazel1
-rw-r--r--deps/rabbitmq_event_exchange/README.md25
-rw-r--r--deps/rabbitmq_federation/BUILD.bazel1
-rw-r--r--deps/rabbitmq_federation_management/BUILD.bazel1
-rw-r--r--deps/rabbitmq_jms_topic_exchange/BUILD.bazel1
-rw-r--r--deps/rabbitmq_jms_topic_exchange/README.md24
-rw-r--r--deps/rabbitmq_management/BUILD.bazel1
-rw-r--r--deps/rabbitmq_management/priv/schema/rabbitmq_management.schema14
-rw-r--r--deps/rabbitmq_management/priv/www/js/oidc-oauth/helper.js23
-rw-r--r--deps/rabbitmq_management/selenium/test/oauth/rabbitmq.conf1
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_oauth_bootstrap.erl65
-rw-r--r--deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl2
-rw-r--r--deps/rabbitmq_management_agent/BUILD.bazel1
-rw-r--r--deps/rabbitmq_mqtt/BUILD.bazel1
-rw-r--r--deps/rabbitmq_peer_discovery_aws/BUILD.bazel1
-rw-r--r--deps/rabbitmq_peer_discovery_common/BUILD.bazel1
-rw-r--r--deps/rabbitmq_peer_discovery_consul/BUILD.bazel1
-rw-r--r--deps/rabbitmq_peer_discovery_etcd/BUILD.bazel1
-rw-r--r--deps/rabbitmq_peer_discovery_k8s/BUILD.bazel1
-rw-r--r--deps/rabbitmq_prometheus/BUILD.bazel1
-rw-r--r--deps/rabbitmq_random_exchange/BUILD.bazel1
-rw-r--r--deps/rabbitmq_random_exchange/README.md24
-rw-r--r--deps/rabbitmq_recent_history_exchange/BUILD.bazel1
-rw-r--r--deps/rabbitmq_recent_history_exchange/README.md44
-rw-r--r--deps/rabbitmq_sharding/BUILD.bazel1
-rw-r--r--deps/rabbitmq_shovel/BUILD.bazel1
-rw-r--r--deps/rabbitmq_shovel_management/BUILD.bazel1
-rw-r--r--deps/rabbitmq_stomp/BUILD.bazel1
-rw-r--r--deps/rabbitmq_stream/BUILD.bazel1
-rw-r--r--deps/rabbitmq_stream_common/BUILD.bazel1
-rw-r--r--deps/rabbitmq_stream_management/BUILD.bazel1
-rw-r--r--deps/rabbitmq_top/BUILD.bazel1
-rw-r--r--deps/rabbitmq_tracing/BUILD.bazel1
-rw-r--r--deps/rabbitmq_trust_store/BUILD.bazel1
-rw-r--r--deps/rabbitmq_web_dispatch/BUILD.bazel1
-rw-r--r--deps/rabbitmq_web_mqtt/BUILD.bazel1
-rw-r--r--deps/rabbitmq_web_mqtt_examples/BUILD.bazel1
-rw-r--r--deps/rabbitmq_web_stomp/BUILD.bazel1
-rw-r--r--deps/rabbitmq_web_stomp_examples/BUILD.bazel1
-rw-r--r--packaging/docker-image/BUILD.bazel1
-rw-r--r--release-notes/3.12.0.md30
62 files changed, 137 insertions, 206 deletions
diff --git a/.bazelrc b/.bazelrc
index 45ce053319..b4e3ea2097 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -59,6 +59,9 @@ build:rbe-25_2 --platforms=//bazel/platforms:erlang_linux_25_2_platform
build:rbe-25_3 --config=rbe
build:rbe-25_3 --platforms=//bazel/platforms:erlang_linux_25_3_platform
+build:rbe-26 --config=rbe
+build:rbe-26 --platforms=//bazel/platforms:erlang_linux_26_platform
+
# no-op config so that --config=local does not error
build:local --color=auto
diff --git a/BUILD.bazel b/BUILD.bazel
index a622cad68e..ffab183c11 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -4,7 +4,7 @@ load(
"string_flag",
)
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
-load("@rules_erlang//:dialyze.bzl", "plt")
+load("@rules_erlang//:dialyze.bzl", "DEFAULT_PLT_APPS", "plt")
load("@rules_erlang//:shell.bzl", "shell")
load("@rules_erlang//:erl_eval.bzl", "erl_eval")
load("@bazel_gazelle//:def.bzl", "gazelle")
@@ -63,6 +63,7 @@ string_flag(
plt(
name = "base_plt",
+ apps = DEFAULT_PLT_APPS + ["compiler", "crypto"],
visibility = ["//visibility:public"],
)
diff --git a/MODULE.bazel b/MODULE.bazel
index 8e98d7a038..ac501018db 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -31,7 +31,7 @@ bazel_dep(
bazel_dep(
name = "rules_erlang",
- version = "3.9.11",
+ version = "3.9.12",
)
erlang_config = use_extension(
@@ -69,6 +69,12 @@ erlang_config.internal_erlang_from_github_release(
version = "25.3",
)
+erlang_config.internal_erlang_from_github_release(
+ name = "26",
+ sha256 = "ce962175c4d90161a7247d8e2e4ae36f9d8cc0214c8f52dba8ba84a82afc096f",
+ version = "26.0-rc3",
+)
+
erlang_config.internal_erlang_from_http_archive(
name = "git_master",
strip_prefix = "otp-master",
@@ -114,6 +120,8 @@ register_toolchains(
"@erlang_config//25_2:toolchain2",
"@erlang_config//25_3:toolchain",
"@erlang_config//25_3:toolchain2",
+ "@erlang_config//26:toolchain",
+ "@erlang_config//26:toolchain2",
"@erlang_config//git_master:toolchain",
"@erlang_config//git_master:toolchain2",
"@elixir_config//external:toolchain",
diff --git a/WORKSPACE b/WORKSPACE
index 92f93ec250..a1dfb8d199 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -6,7 +6,7 @@ load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository", "new_git_r
git_repository(
name = "rules_erlang",
remote = "https://github.com/rabbitmq/rules_erlang.git",
- tag = "3.9.11",
+ tag = "3.9.12",
)
load("@rules_erlang//:internal_deps.bzl", "rules_erlang_internal_deps")
@@ -92,6 +92,13 @@ http_file(
urls = ["https://github.com/erlang/otp/archive/OTP-25.3.tar.gz"],
)
+http_file(
+ name = "otp_src_26",
+ downloaded_file_path = "OTP-26.0-rc3.tar.gz",
+ sha256 = "f4fc2c5e1da56eb659003015ab80c42e50cef1129cca8c14457a522d1793498d",
+ urls = ["https://github.com/erlang/otp/archive/OTP-26.0-rc3.tar.gz"],
+)
+
http_archive(
name = "io_buildbuddy_buildbuddy_toolchain",
sha256 = "a2a5cccec251211e2221b1587af2ce43c36d32a42f5d881737db3b546a536510",
@@ -133,6 +140,11 @@ erlang_config(
sha256 = "85c447efc1746740df4089d75bc0e47b88d5161d7c44e9fc4c20fa33ea5d19d7",
version = "25.3",
),
+ internal_erlang_from_github_release(
+ name = "26",
+ sha256 = "ce962175c4d90161a7247d8e2e4ae36f9d8cc0214c8f52dba8ba84a82afc096f",
+ version = "26.0-rc3",
+ ),
internal_erlang_from_http_archive(
name = "git_master",
strip_prefix = "otp-master",
diff --git a/bazel/platforms/BUILD.bazel b/bazel/platforms/BUILD.bazel
index 9ec10da0f9..68676f9e4e 100644
--- a/bazel/platforms/BUILD.bazel
+++ b/bazel/platforms/BUILD.bazel
@@ -57,6 +57,15 @@ platform(
)
platform(
+ name = "erlang_linux_26_platform",
+ constraint_values = [
+ "@erlang_config//:erlang_26",
+ "@elixir_config//:elixir_1_14",
+ ],
+ parents = ["@rbe//config:platform"],
+)
+
+platform(
name = "erlang_linux_git_master_platform",
constraint_values = [
"@erlang_config//:erlang_26",
diff --git a/deps/amqp10_client/BUILD.bazel b/deps/amqp10_client/BUILD.bazel
index ab139b6ff0..c2447899ba 100644
--- a/deps/amqp10_client/BUILD.bazel
+++ b/deps/amqp10_client/BUILD.bazel
@@ -68,6 +68,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/amqp_client/BUILD.bazel b/deps/amqp_client/BUILD.bazel
index bfa5269954..cb63cf8a5a 100644
--- a/deps/amqp_client/BUILD.bazel
+++ b/deps/amqp_client/BUILD.bazel
@@ -67,6 +67,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbit/BUILD.bazel b/deps/rabbit/BUILD.bazel
index d14ec2da38..90610d3405 100644
--- a/deps/rabbit/BUILD.bazel
+++ b/deps/rabbit/BUILD.bazel
@@ -211,6 +211,7 @@ plt(
apps = plt_apps,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/BUILD.bazel b/deps/rabbit/apps/rabbitmq_prelaunch/BUILD.bazel
index b7df0a338f..3109c5f3da 100644
--- a/deps/rabbit/apps/rabbitmq_prelaunch/BUILD.bazel
+++ b/deps/rabbit/apps/rabbitmq_prelaunch/BUILD.bazel
@@ -50,6 +50,7 @@ plt(
"@systemd//:erlang_app",
"@osiris//:erlang_app",
],
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbit/src/rabbit_process.erl b/deps/rabbit/src/rabbit_process.erl
index 056f9dd3ec..0fe093ff7f 100644
--- a/deps/rabbit/src/rabbit_process.erl
+++ b/deps/rabbit/src/rabbit_process.erl
@@ -87,4 +87,7 @@ is_registered_process_alive(Name) ->
%% false otherwise.
is_process_hibernated(Pid) when is_pid(Pid) ->
- {current_function,{erlang,hibernate,3}} == erlang:process_info(Pid, current_function).
+ {current_function,{erlang,hibernate,3}} == erlang:process_info(Pid, current_function);
+is_process_hibernated(_) ->
+ %% some queue types, eg QQs, have a tuple as a Pid, but they are never hibernated
+ false.
diff --git a/deps/rabbit_common/BUILD.bazel b/deps/rabbit_common/BUILD.bazel
index fd25782b1a..836ef81b98 100644
--- a/deps/rabbit_common/BUILD.bazel
+++ b/deps/rabbit_common/BUILD.bazel
@@ -117,6 +117,7 @@ plt(
apps = EXTRA_APPS + ["mnesia"],
plt = "//:base_plt",
deps = RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_amqp1_0/BUILD.bazel b/deps/rabbitmq_amqp1_0/BUILD.bazel
index acab0966f5..6b96323981 100644
--- a/deps/rabbitmq_amqp1_0/BUILD.bazel
+++ b/deps/rabbitmq_amqp1_0/BUILD.bazel
@@ -58,6 +58,7 @@ plt(
libs = ["//deps/rabbitmq_cli:elixir"],
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_auth_backend_cache/BUILD.bazel b/deps/rabbitmq_auth_backend_cache/BUILD.bazel
index 809a767d1b..2aef3a9ee8 100644
--- a/deps/rabbitmq_auth_backend_cache/BUILD.bazel
+++ b/deps/rabbitmq_auth_backend_cache/BUILD.bazel
@@ -49,6 +49,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_auth_backend_http/BUILD.bazel b/deps/rabbitmq_auth_backend_http/BUILD.bazel
index 27a78c2301..fb3b8e2f57 100644
--- a/deps/rabbitmq_auth_backend_http/BUILD.bazel
+++ b/deps/rabbitmq_auth_backend_http/BUILD.bazel
@@ -56,6 +56,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_auth_backend_ldap/BUILD.bazel b/deps/rabbitmq_auth_backend_ldap/BUILD.bazel
index 33491f8726..d73887c039 100644
--- a/deps/rabbitmq_auth_backend_ldap/BUILD.bazel
+++ b/deps/rabbitmq_auth_backend_ldap/BUILD.bazel
@@ -72,6 +72,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_auth_backend_oauth2/BUILD.bazel b/deps/rabbitmq_auth_backend_oauth2/BUILD.bazel
index f8d2d0aa18..357c873314 100644
--- a/deps/rabbitmq_auth_backend_oauth2/BUILD.bazel
+++ b/deps/rabbitmq_auth_backend_oauth2/BUILD.bazel
@@ -57,6 +57,7 @@ plt(
libs = ["//deps/rabbitmq_cli:elixir"],
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_auth_backend_oauth2/priv/schema/rabbitmq_auth_backend_oauth2.schema b/deps/rabbitmq_auth_backend_oauth2/priv/schema/rabbitmq_auth_backend_oauth2.schema
index db8abe8928..6f8c048516 100644
--- a/deps/rabbitmq_auth_backend_oauth2/priv/schema/rabbitmq_auth_backend_oauth2.schema
+++ b/deps/rabbitmq_auth_backend_oauth2/priv/schema/rabbitmq_auth_backend_oauth2.schema
@@ -5,7 +5,7 @@
%%
%% ----------------------------------------------------------------------------
-%% A prefix used for scopes in UAA to avoid scope collisions (or unintended overlap). It is an empty string by default.
+%% A prefix used for scopes to avoid scope collisions (or unintended overlap). It is an empty string by default.
%%
%% {resource_server_id, <<"my_rabbit_server">>},
diff --git a/deps/rabbitmq_auth_mechanism_ssl/BUILD.bazel b/deps/rabbitmq_auth_mechanism_ssl/BUILD.bazel
index f8b39dc754..b926d5242a 100644
--- a/deps/rabbitmq_auth_mechanism_ssl/BUILD.bazel
+++ b/deps/rabbitmq_auth_mechanism_ssl/BUILD.bazel
@@ -47,6 +47,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_aws/BUILD.bazel b/deps/rabbitmq_aws/BUILD.bazel
index af6367837c..7763594c03 100644
--- a/deps/rabbitmq_aws/BUILD.bazel
+++ b/deps/rabbitmq_aws/BUILD.bazel
@@ -49,6 +49,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = BUILD_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_cli/BUILD.bazel b/deps/rabbitmq_cli/BUILD.bazel
index bcb244f441..e166cc2f55 100644
--- a/deps/rabbitmq_cli/BUILD.bazel
+++ b/deps/rabbitmq_cli/BUILD.bazel
@@ -90,6 +90,7 @@ plt(
"//deps/rabbit:erlang_app",
"//deps/rabbit_common:erlang_app",
],
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_consistent_hash_exchange/BUILD.bazel b/deps/rabbitmq_consistent_hash_exchange/BUILD.bazel
index 24a9ee08d7..ffa505f724 100644
--- a/deps/rabbitmq_consistent_hash_exchange/BUILD.bazel
+++ b/deps/rabbitmq_consistent_hash_exchange/BUILD.bazel
@@ -46,6 +46,7 @@ plt(
libs = ["//deps/rabbitmq_cli:elixir"],
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_event_exchange/BUILD.bazel b/deps/rabbitmq_event_exchange/BUILD.bazel
index 7b2105889a..41819a4051 100644
--- a/deps/rabbitmq_event_exchange/BUILD.bazel
+++ b/deps/rabbitmq_event_exchange/BUILD.bazel
@@ -33,6 +33,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_event_exchange/README.md b/deps/rabbitmq_event_exchange/README.md
index d9a58f70d0..1380a4d30f 100644
--- a/deps/rabbitmq_event_exchange/README.md
+++ b/deps/rabbitmq_event_exchange/README.md
@@ -11,8 +11,8 @@ the management plugin for stats.
## How it Works
-It declares a topic exchange called 'amq.rabbitmq.event' in the default
-virtual host. All events are published to this exchange with routing
+It declares a topic exchange called `amq.rabbitmq.event` **in the default
+virtual host**. All events are published to this exchange with routing
keys like 'exchange.created', 'binding.deleted' etc, so you can
subscribe to only the events you're interested in.
@@ -23,26 +23,11 @@ gets published, don't allow them access.
## Installation
-### With RabbitMQ 3.6.0 or Later
-
-Most recent RabbitMQ version ships with this plugin.
-As of RabbitMQ `3.6.0` this plugin is included into the RabbitMQ distribution.
-
-Enable it with the following command:
-
-```bash
-rabbitmq-plugins enable rabbitmq_event_exchange
-```
-
-### With RabbitMQ 3.5.x
-
-You can download a pre-built binary of this plugin from
-the [RabbitMQ Community Plugins](https://www.rabbitmq.com/community-plugins.html) page.
-
-Then run the following command:
+This plugin ships with RabbitMQ. Like with all other plugins, it must be
+enabled before it can be used:
```bash
-rabbitmq-plugins enable rabbitmq_event_exchange
+[sudo] rabbitmq-plugins enable rabbitmq_event_exchange
```
## Event format
diff --git a/deps/rabbitmq_federation/BUILD.bazel b/deps/rabbitmq_federation/BUILD.bazel
index 6677d57f34..ccb36cd458 100644
--- a/deps/rabbitmq_federation/BUILD.bazel
+++ b/deps/rabbitmq_federation/BUILD.bazel
@@ -52,6 +52,7 @@ plt(
plt = "//:base_plt",
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_federation_management/BUILD.bazel b/deps/rabbitmq_federation_management/BUILD.bazel
index 43743f83c6..3503f26dc9 100644
--- a/deps/rabbitmq_federation_management/BUILD.bazel
+++ b/deps/rabbitmq_federation_management/BUILD.bazel
@@ -47,6 +47,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_jms_topic_exchange/BUILD.bazel b/deps/rabbitmq_jms_topic_exchange/BUILD.bazel
index 20e1d48405..8c474aa398 100644
--- a/deps/rabbitmq_jms_topic_exchange/BUILD.bazel
+++ b/deps/rabbitmq_jms_topic_exchange/BUILD.bazel
@@ -49,6 +49,7 @@ plt(
plt = "//:base_plt",
apps = EXTRA_APPS,
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_jms_topic_exchange/README.md b/deps/rabbitmq_jms_topic_exchange/README.md
index a1c81823a8..5cb2ff9305 100644
--- a/deps/rabbitmq_jms_topic_exchange/README.md
+++ b/deps/rabbitmq_jms_topic_exchange/README.md
@@ -17,28 +17,28 @@ Some related projects (e.g. a compliance test suite) and documentation are yet t
## Supported RabbitMQ Versions
-This plugin targets RabbitMQ `3.6.0` and later versions.
+This plugin ships with RabbitMQ.
## Installation
-This plugin ships with RabbitMQ starting with `3.6.3`. Enable it with
+Like all other plugins, this plugin must be enabled before it can be used.
+Enable it with
```
[sudo] rabbitmq-plugins enable rabbitmq_jms_topic_exchange
```
-
## Design
The plugin this generates is a user-written exchange type for RabbitMQ
-client use. The exchange type name is "`x_jms_topic`" but this is _not_
+client use. The exchange type name is "`x-jms-topic`" but this is _not_
a topic exchange. Instead it works together with a standard topic
exchange to provide the JMS topic selection function.
When JMS Selectors are used on a Topic Destination consumer, the
-destination (queue) is bound to an exchange of type `x_jms_topic`, with
+destination (queue) is bound to an exchange of type `x-jms-topic`, with
arguments that indicate what the selection criteria are. The
-`x_jms_topic` exchange is, in turn, bound to the standard Topic Exchange
+`x-jms-topic` exchange is, in turn, bound to the standard Topic Exchange
used by JMS messaging (this uses the RabbitMQ exchange-to-exchange
binding extension to the AMQP 0-9-1 protocol).
@@ -46,19 +46,9 @@ In this way, normal topic routing can occur, with the overhead of
selection only applying when selection is used, and _after_ the routing
and filtering implied by the topic name.
-## Building From Source
-
-Building is no different from [building other RabbitMQ plugins](https://www.rabbitmq.com/plugin-development.html).
-
-TL;DR:
-
- git clone https://github.com/rabbitmq/rabbitmq-jms-topic-exchange.git
- cd rabbitmq-jms-topic-exchange
- make -j dist
- ls plugins/*
## Copyright and License
-(c) 2007-2020 VMware, Inc. or its affiliates.
+(c) 2007-2023 VMware, Inc. or its affiliates.
See [LICENSE](./LICENSE) for license information.
diff --git a/deps/rabbitmq_management/BUILD.bazel b/deps/rabbitmq_management/BUILD.bazel
index e2051bd778..a2133adb35 100644
--- a/deps/rabbitmq_management/BUILD.bazel
+++ b/deps/rabbitmq_management/BUILD.bazel
@@ -80,6 +80,7 @@ plt(
plt = "//:base_plt",
apps = EXTRA_APPS,
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_management/priv/schema/rabbitmq_management.schema b/deps/rabbitmq_management/priv/schema/rabbitmq_management.schema
index e2bcf5c5c7..289bd73443 100644
--- a/deps/rabbitmq_management/priv/schema/rabbitmq_management.schema
+++ b/deps/rabbitmq_management/priv/schema/rabbitmq_management.schema
@@ -432,20 +432,6 @@ end}.
%% ===========================================================================
%% Authorization
-%% Configure OAuth2 in the management ui to work with old versions of UAA (which versions?)
-{mapping, "management.enable_uaa", "rabbitmq_management.enable_uaa",
- [{datatype, {enum, [true, false]}}]}.
-
-%% Your client application's identifier as registered with the OIDC/OAuth2. Deprecated, switch to oauth_client_id
-{mapping, "management.uaa_client_id", "rabbitmq_management.uaa_client_id",
- [{datatype, string}]}.
-{mapping, "management.uaa_client_secret", "rabbitmq_management.uaa_client_secret",
- [{datatype, string}]}.
-
-%% The URL of the OIDC/OAuth2 provider
-{mapping, "management.uaa_location", "rabbitmq_management.uaa_location",
- [{datatype, string}]}.
-
%% Enable OAuth2 in the management ui
{mapping, "management.oauth_enabled", "rabbitmq_management.oauth_enabled",
[{datatype, {enum, [true, false]}}]}.
diff --git a/deps/rabbitmq_management/priv/www/js/oidc-oauth/helper.js b/deps/rabbitmq_management/priv/www/js/oidc-oauth/helper.js
index b7fb785b60..8bc8f392e7 100644
--- a/deps/rabbitmq_management/priv/www/js/oidc-oauth/helper.js
+++ b/deps/rabbitmq_management/priv/www/js/oidc-oauth/helper.js
@@ -28,21 +28,7 @@ function rabbit_base_uri() {
}
function auth_settings_apply_defaults(authSettings) {
- if (authSettings.enable_uaa) {
- if (!authSettings.oauth_provider_url) {
- authSettings.oauth_provider_url = authSettings.uaa_location
- }
- if (!authSettings.oauth_client_id) {
- authSettings.oauth_client_id = authSettings.uaa_client_id
- }
- if (!authSettings.oauth_client_secret) {
- authSettings.oauth_client_secret = authSettings.uaa_client_secret
- }
- if (!authSettings.oauth_scopes) {
- authSettings.oauth_scopes = "openid profile " + authSettings.oauth_resource_id + ".*";
- }
- }
if (!authSettings.oauth_response_type) {
authSettings.oauth_response_type = "code"; // although the default value in oidc client
}
@@ -78,7 +64,7 @@ function oauth_initialize(authSettings) {
authority: authSettings.oauth_provider_url,
client_id: authSettings.oauth_client_id,
response_type: authSettings.oauth_response_type,
- scope: authSettings.oauth_scopes, // for uaa we may need to include <resource-server-id>.*
+ scope: authSettings.oauth_scopes,
resource: authSettings.oauth_resource_id,
redirect_uri: rabbit_base_uri() + "/js/oidc-oauth/login-callback.html",
post_logout_redirect_uri: rabbit_base_uri() + "/",
@@ -96,13 +82,6 @@ function oauth_initialize(authSettings) {
oidcSettings.metadataUrl = authSettings.oauth_metadata_url;
}
- if (authSettings.enable_uaa == true) {
- // This is required for old versions of UAA because the newer ones do expose
- // the end_session_endpoint on the oidc discovery endpoint, .a.k.a. metadataUrl
- oidcSettings.metadataSeed = {
- end_session_endpoint: authSettings.oauth_provider_url + "/logout.do"
- }
- }
oidc.Log.setLevel(oidc.Log.DEBUG);
oidc.Log.setLogger(console);
diff --git a/deps/rabbitmq_management/selenium/test/oauth/rabbitmq.conf b/deps/rabbitmq_management/selenium/test/oauth/rabbitmq.conf
index 33281429c7..7fa212ac21 100644
--- a/deps/rabbitmq_management/selenium/test/oauth/rabbitmq.conf
+++ b/deps/rabbitmq_management/selenium/test/oauth/rabbitmq.conf
@@ -1,7 +1,6 @@
auth_backends.1 = rabbit_auth_backend_oauth2
management.login_session_timeout = 1
-management.enable_uaa = true
management.oauth_enabled = true
management.oauth_client_id = rabbit_client_code
management.oauth_scopes = ${OAUTH_SCOPES}
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_oauth_bootstrap.erl b/deps/rabbitmq_management/src/rabbit_mgmt_oauth_bootstrap.erl
index deb0a3f433..f79e8279a2 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_oauth_bootstrap.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_oauth_bootstrap.erl
@@ -22,70 +22,9 @@ bootstrap_oauth(Req0, State) ->
JSContent = oauth_initialize_if_required() ++ set_token_auth(Req0),
{ok, cowboy_req:reply(200, #{<<"content-type">> => <<"text/javascript; charset=utf-8">>}, JSContent, Req0), State}.
-authSettings() ->
- EnableUAA = application:get_env(rabbitmq_management, enable_uaa, false),
- EnableOAUTH = application:get_env(rabbitmq_management, oauth_enabled, false),
- Data = case EnableOAUTH of
- true ->
- OAuthInitiatedLogonType = application:get_env(rabbitmq_management, oauth_initiated_logon_type, sp_initiated),
- OAuthProviderUrl = application:get_env(rabbitmq_management, oauth_provider_url, ""),
- case OAuthInitiatedLogonType of
- sp_initiated ->
- OAuthClientId = application:get_env(rabbitmq_management, oauth_client_id, ""),
- OAuthClientSecret = application:get_env(rabbitmq_management, oauth_client_secret, undefined),
- OAuthMetadataUrl = application:get_env(rabbitmq_management, oauth_metadata_url, undefined),
- OAuthScopes = application:get_env(rabbitmq_management, oauth_scopes, undefined),
- OAuthResourceId = application:get_env(rabbitmq_auth_backend_oauth2, resource_server_id, ""),
- case is_invalid([OAuthResourceId]) of
- true ->
- json_field(oauth_enabled, false, true);
- false ->
- case is_invalid([OAuthClientId, OAuthProviderUrl]) of
- true ->
- json_field(oauth_enabled, false, true);
- false ->
- json_field(oauth_enabled, true) ++
- json_field(enable_uaa, EnableUAA) ++
- json_field(oauth_client_id, OAuthClientId) ++
- json_field(oauth_client_secret, OAuthClientSecret) ++
- json_field(oauth_provider_url, OAuthProviderUrl) ++
- json_field(oauth_scopes, OAuthScopes) ++
- json_field(oauth_metadata_url, OAuthMetadataUrl) ++
- json_field(oauth_resource_id, OAuthResourceId, true)
- end
- end;
- idp_initiated ->
- [ json_field(oauth_enabled, true) ++
- json_field(oauth_initiated_logon_type, idp_initiated) ++
- json_field(oauth_provider_url, OAuthProviderUrl, true)
- ]
- end;
- false ->
- [ json_field(oauth_enabled, false, true) ]
- end,
- "{" ++ Data ++ "}".
-
-is_invalid(List) ->
- lists:any(fun(V) -> V == "" end, List).
-
-json_field(Field, Value) -> json_field(Field, Value, false).
-
-json_field(_Field, Value, _LastField) when Value == undefined -> [ ];
-json_field(Field, Value, LastField) when is_number(Value) ->
- ["\"", atom_to_list(Field), "\": ", Value, append_comma_if(not LastField)];
-json_field(Field, Value, LastField) when is_boolean(Value) ->
- ["\"", atom_to_list(Field), "\": ", atom_to_list(Value), append_comma_if(not LastField)];
-json_field(Field, Value, LastField) when is_atom(Value) ->
- ["\"", atom_to_list(Field), "\": \"", atom_to_list(Value), "\"", append_comma_if(not LastField)];
-json_field(Field, Value, LastField) ->
- ["\"", atom_to_list(Field), "\": \"", Value, "\"", append_comma_if(not LastField)].
-
-
-append_comma_if(Append) when Append == true -> ",";
-append_comma_if(Append) when Append == false -> "".
-
oauth_initialize_if_required() ->
- "function oauth_initialize_if_required() { return oauth_initialize(" ++ authSettings() ++ ") }".
+ ["function oauth_initialize_if_required() { return oauth_initialize(" ,
+ rabbit_json:encode(rabbit_mgmt_format:format_nulls(rabbit_mgmt_wm_auth:authSettings())) , ") }" ].
set_token_auth(Req0) ->
case application:get_env(rabbitmq_management, oauth_enabled, false) of
diff --git a/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl b/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl
index fe7b33e548..8f278e077c 100644
--- a/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl
+++ b/deps/rabbitmq_management/src/rabbit_mgmt_wm_auth.erl
@@ -25,7 +25,6 @@ content_types_provided(ReqData, Context) ->
{rabbit_mgmt_util:responder_map(to_json), ReqData, Context}.
authSettings() ->
- EnableUAA = application:get_env(rabbitmq_management, enable_uaa, false),
EnableOAUTH = application:get_env(rabbitmq_management, oauth_enabled, false),
case EnableOAUTH of
true ->
@@ -48,7 +47,6 @@ authSettings() ->
false ->
append_oauth_optional_secret([
{oauth_enabled, true},
- {enable_uaa, rabbit_data_coercion:to_binary(EnableUAA)},
{oauth_client_id, rabbit_data_coercion:to_binary(OAuthClientId)},
{oauth_provider_url, rabbit_data_coercion:to_binary(OAuthProviderUrl)},
{oauth_scopes, rabbit_data_coercion:to_binary(OAuthScopes)},
diff --git a/deps/rabbitmq_management_agent/BUILD.bazel b/deps/rabbitmq_management_agent/BUILD.bazel
index d04d5d093a..264ba38498 100644
--- a/deps/rabbitmq_management_agent/BUILD.bazel
+++ b/deps/rabbitmq_management_agent/BUILD.bazel
@@ -69,6 +69,7 @@ plt(
libs = ["//deps/rabbitmq_cli:elixir"],
plt = "//:base_plt",
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_mqtt/BUILD.bazel b/deps/rabbitmq_mqtt/BUILD.bazel
index 80e5898735..9a56036d90 100644
--- a/deps/rabbitmq_mqtt/BUILD.bazel
+++ b/deps/rabbitmq_mqtt/BUILD.bazel
@@ -80,6 +80,7 @@ plt(
apps = EXTRA_APPS,
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_peer_discovery_aws/BUILD.bazel b/deps/rabbitmq_peer_discovery_aws/BUILD.bazel
index 5fd579264c..96023b5b25 100644
--- a/deps/rabbitmq_peer_discovery_aws/BUILD.bazel
+++ b/deps/rabbitmq_peer_discovery_aws/BUILD.bazel
@@ -43,6 +43,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_peer_discovery_common/BUILD.bazel b/deps/rabbitmq_peer_discovery_common/BUILD.bazel
index 77b8ee2aa1..81fed8df89 100644
--- a/deps/rabbitmq_peer_discovery_common/BUILD.bazel
+++ b/deps/rabbitmq_peer_discovery_common/BUILD.bazel
@@ -45,6 +45,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_peer_discovery_consul/BUILD.bazel b/deps/rabbitmq_peer_discovery_consul/BUILD.bazel
index c88ce1177d..ca5855e908 100644
--- a/deps/rabbitmq_peer_discovery_consul/BUILD.bazel
+++ b/deps/rabbitmq_peer_discovery_consul/BUILD.bazel
@@ -39,6 +39,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_peer_discovery_etcd/BUILD.bazel b/deps/rabbitmq_peer_discovery_etcd/BUILD.bazel
index fd76c5fcec..66c625df01 100644
--- a/deps/rabbitmq_peer_discovery_etcd/BUILD.bazel
+++ b/deps/rabbitmq_peer_discovery_etcd/BUILD.bazel
@@ -46,6 +46,7 @@ plt(
"@eetcd//:erlang_app",
RUNTIME_DEPS,
),
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_peer_discovery_k8s/BUILD.bazel b/deps/rabbitmq_peer_discovery_k8s/BUILD.bazel
index 989e4c07d7..b6f0899fef 100644
--- a/deps/rabbitmq_peer_discovery_k8s/BUILD.bazel
+++ b/deps/rabbitmq_peer_discovery_k8s/BUILD.bazel
@@ -39,6 +39,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_prometheus/BUILD.bazel b/deps/rabbitmq_prometheus/BUILD.bazel
index 067aaa97c4..9a2620028a 100644
--- a/deps/rabbitmq_prometheus/BUILD.bazel
+++ b/deps/rabbitmq_prometheus/BUILD.bazel
@@ -48,6 +48,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_random_exchange/BUILD.bazel b/deps/rabbitmq_random_exchange/BUILD.bazel
index 1ab6e60d6c..7cc9e92fbc 100644
--- a/deps/rabbitmq_random_exchange/BUILD.bazel
+++ b/deps/rabbitmq_random_exchange/BUILD.bazel
@@ -37,6 +37,7 @@ plt(
name = "base_plt",
deps = BUILD_DEPS + DEPS,
plt = "//:base_plt",
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_random_exchange/README.md b/deps/rabbitmq_random_exchange/README.md
index 3f6f2662de..00dce95b1f 100644
--- a/deps/rabbitmq_random_exchange/README.md
+++ b/deps/rabbitmq_random_exchange/README.md
@@ -11,31 +11,13 @@ interested.
## Installation
-Install the corresponding .ez files from our
-[GitHub releases](https://github.com/rabbitmq/rabbitmq-random-exchange/releases) or [Community Plugins page](https://www.rabbitmq.com/community-plugins.html).
-
-Then run the following command:
+This plugin ships with RabbitMQ. Like all other plugins, it must be enabled
+before it can be used:
```bash
-rabbitmq-plugins enable rabbitmq_random_exchange
+[sudo] rabbitmq-plugins enable rabbitmq_random_exchange
```
-## Building from Source
-
-Please see [RabbitMQ Plugin Development guide](https://www.rabbitmq.com/plugin-development.html).
-
-To build the plugin:
-
- git clone git://github.com/rabbitmq/rabbitmq-random-exchange.git
- cd rabbitmq-random-exchange
- make
-
-Then copy all the `*.ez` files inside the `plugins` folder to the [RabbitMQ plugins directory](https://www.rabbitmq.com/relocate.html)
-and enable the plugin:
-
- [sudo] rabbitmq-plugins enable rabbitmq_random_exchange
-
-
## Usage
To create a _random_, just declare an exchange providing the type `"x-random"`.
diff --git a/deps/rabbitmq_recent_history_exchange/BUILD.bazel b/deps/rabbitmq_recent_history_exchange/BUILD.bazel
index 458d84861e..5ddd7ba9c4 100644
--- a/deps/rabbitmq_recent_history_exchange/BUILD.bazel
+++ b/deps/rabbitmq_recent_history_exchange/BUILD.bazel
@@ -42,6 +42,7 @@ plt(
plt = "//:base_plt",
apps = [ "mnesia" ],
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_recent_history_exchange/README.md b/deps/rabbitmq_recent_history_exchange/README.md
index c22391ad7a..27cfd8945b 100644
--- a/deps/rabbitmq_recent_history_exchange/README.md
+++ b/deps/rabbitmq_recent_history_exchange/README.md
@@ -2,49 +2,21 @@
Keeps track of the last 20 messages that passed through the exchange. Every time a queue is bound to the exchange it delivers that last 20 messages to them. This is useful for implementing a very simple __Chat History__ where clients that join the conversation can get the latest messages.
-Exchange Type: `x-recent-history`
+Exchange yype: `x-recent-history`.
## Installation ##
-### RabbitMQ 3.6.0 or later
+This plugin ships with RabbitMQ.
-As of RabbitMQ `3.6.0` this plugin is included into the RabbitMQ distribution.
-
-Enable it with the following command:
-
-```bash
-rabbitmq-plugins enable rabbitmq_recent_history_exchange
-```
-
-### With Earlier Versions
-
-Install the corresponding .ez files from our
-[Community Plugins archive](https://www.rabbitmq.com/community-plugins/)..
-
-Then run the following command:
+Like all other plugins, it must be enabled before it can be used:
```bash
-rabbitmq-plugins enable rabbitmq_recent_history_exchange
+[sudo] rabbitmq-plugins enable rabbitmq_recent_history_exchange
```
-## Building from Source
-
-Please see [RabbitMQ Plugin Development guide](https://www.rabbitmq.com/plugin-development.html).
-
-To build the plugin:
-
- git clone git://github.com/rabbitmq/rabbitmq-recent-history-exchange.git
- cd rabbitmq-recent-history-exchange
- make
-
-Then copy all the `*.ez` files inside the `plugins` folder to the [RabbitMQ plugins directory](https://www.rabbitmq.com/relocate.html)
-and enable the plugin:
-
- [sudo] rabbitmq-plugins enable rabbitmq_recent_history_exchange
-
## Usage ##
-### Creating an exchange ###
+### Creating an exchange
To create a _recent history exchange_, just declare an exchange providing the type `"x-recent-history"`.
@@ -52,7 +24,7 @@ To create a _recent history exchange_, just declare an exchange providing the ty
channel.exchangeDeclare("logs", "x-recent-history");
```
-### Providing a custom history length ###
+### Providing a custom history length
Typically this exchange will store the latest 20 messages sent over
the exchange. If you want to set a different cache length, then you
@@ -67,13 +39,13 @@ args.put("x-recent-history-length", 60);
channel.exchangeDeclare("rh", "x-recent-history", false, false, args);
```
-### Preventing some messages from being stored ###
+### Preventing some messages from being stored
In case you would like to not store certain messages, just
add the header `"x-recent-history-no-store"` with the value `true` to
the message.
-## Disabling the Plugin ##
+## Disabling the Plugin
A future version of RabbitMQ will allow users to disable plugins. When
you disable this plugin, it will delete all the cached messages.
diff --git a/deps/rabbitmq_sharding/BUILD.bazel b/deps/rabbitmq_sharding/BUILD.bazel
index 4e720a2f9f..6728a3a2b8 100644
--- a/deps/rabbitmq_sharding/BUILD.bazel
+++ b/deps/rabbitmq_sharding/BUILD.bazel
@@ -32,6 +32,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_shovel/BUILD.bazel b/deps/rabbitmq_shovel/BUILD.bazel
index 409b19c871..5729a685d6 100644
--- a/deps/rabbitmq_shovel/BUILD.bazel
+++ b/deps/rabbitmq_shovel/BUILD.bazel
@@ -69,6 +69,7 @@ plt(
apps = EXTRA_APPS,
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_shovel_management/BUILD.bazel b/deps/rabbitmq_shovel_management/BUILD.bazel
index 25bb1054fc..f8c84f4e47 100644
--- a/deps/rabbitmq_shovel_management/BUILD.bazel
+++ b/deps/rabbitmq_shovel_management/BUILD.bazel
@@ -46,6 +46,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_stomp/BUILD.bazel b/deps/rabbitmq_stomp/BUILD.bazel
index 70452b3ebf..01f32a056f 100644
--- a/deps/rabbitmq_stomp/BUILD.bazel
+++ b/deps/rabbitmq_stomp/BUILD.bazel
@@ -74,6 +74,7 @@ plt(
plt = "//:base_plt",
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_stream/BUILD.bazel b/deps/rabbitmq_stream/BUILD.bazel
index 44982505be..29b1221095 100644
--- a/deps/rabbitmq_stream/BUILD.bazel
+++ b/deps/rabbitmq_stream/BUILD.bazel
@@ -67,6 +67,7 @@ plt(
],
libs = ["//deps/rabbitmq_cli:elixir"],
deps = ["//deps/rabbitmq_cli:elixir"] + BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_stream_common/BUILD.bazel b/deps/rabbitmq_stream_common/BUILD.bazel
index 4a562f26cb..43daaca35c 100644
--- a/deps/rabbitmq_stream_common/BUILD.bazel
+++ b/deps/rabbitmq_stream_common/BUILD.bazel
@@ -28,6 +28,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_stream_management/BUILD.bazel b/deps/rabbitmq_stream_management/BUILD.bazel
index a610f88a15..aa15aa4fa4 100644
--- a/deps/rabbitmq_stream_management/BUILD.bazel
+++ b/deps/rabbitmq_stream_management/BUILD.bazel
@@ -42,6 +42,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_top/BUILD.bazel b/deps/rabbitmq_top/BUILD.bazel
index 8229af88aa..1ffa77a939 100644
--- a/deps/rabbitmq_top/BUILD.bazel
+++ b/deps/rabbitmq_top/BUILD.bazel
@@ -44,6 +44,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_tracing/BUILD.bazel b/deps/rabbitmq_tracing/BUILD.bazel
index fb97a333b7..270d31444c 100644
--- a/deps/rabbitmq_tracing/BUILD.bazel
+++ b/deps/rabbitmq_tracing/BUILD.bazel
@@ -53,6 +53,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_trust_store/BUILD.bazel b/deps/rabbitmq_trust_store/BUILD.bazel
index 24150d50dd..693c1d53f4 100644
--- a/deps/rabbitmq_trust_store/BUILD.bazel
+++ b/deps/rabbitmq_trust_store/BUILD.bazel
@@ -53,6 +53,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_web_dispatch/BUILD.bazel b/deps/rabbitmq_web_dispatch/BUILD.bazel
index 6ef7812588..17ef5b34f0 100644
--- a/deps/rabbitmq_web_dispatch/BUILD.bazel
+++ b/deps/rabbitmq_web_dispatch/BUILD.bazel
@@ -46,6 +46,7 @@ plt(
apps = EXTRA_APPS,
plt = "//:base_plt",
deps = DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_web_mqtt/BUILD.bazel b/deps/rabbitmq_web_mqtt/BUILD.bazel
index 89c3e96005..9c059d3e18 100644
--- a/deps/rabbitmq_web_mqtt/BUILD.bazel
+++ b/deps/rabbitmq_web_mqtt/BUILD.bazel
@@ -63,6 +63,7 @@ plt(
plt = "//:base_plt",
apps = EXTRA_APPS,
deps = BUILD_DEPS + DEPS + RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_web_mqtt_examples/BUILD.bazel b/deps/rabbitmq_web_mqtt_examples/BUILD.bazel
index 590845bb48..2a2a60e377 100644
--- a/deps/rabbitmq_web_mqtt_examples/BUILD.bazel
+++ b/deps/rabbitmq_web_mqtt_examples/BUILD.bazel
@@ -38,6 +38,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_web_stomp/BUILD.bazel b/deps/rabbitmq_web_stomp/BUILD.bazel
index c0d2c339c5..8ee588c773 100644
--- a/deps/rabbitmq_web_stomp/BUILD.bazel
+++ b/deps/rabbitmq_web_stomp/BUILD.bazel
@@ -62,6 +62,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = BUILD_DEPS + DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/deps/rabbitmq_web_stomp_examples/BUILD.bazel b/deps/rabbitmq_web_stomp_examples/BUILD.bazel
index 90f580e190..3fd841ef45 100644
--- a/deps/rabbitmq_web_stomp_examples/BUILD.bazel
+++ b/deps/rabbitmq_web_stomp_examples/BUILD.bazel
@@ -38,6 +38,7 @@ plt(
name = "base_plt",
plt = "//:base_plt",
deps = RUNTIME_DEPS,
+ ignore_warnings = True,
)
dialyze(
diff --git a/packaging/docker-image/BUILD.bazel b/packaging/docker-image/BUILD.bazel
index fbe721f205..1ff369aa79 100644
--- a/packaging/docker-image/BUILD.bazel
+++ b/packaging/docker-image/BUILD.bazel
@@ -125,6 +125,7 @@ container_image(
"@erlang_config//:erlang_25_1": ["@otp_src_25_1//file"],
"@erlang_config//:erlang_25_2": ["@otp_src_25_2//file"],
"@erlang_config//:erlang_25_3": ["@otp_src_25_3//file"],
+ "@erlang_config//:erlang_26": ["@otp_src_26//file"],
}),
)
diff --git a/release-notes/3.12.0.md b/release-notes/3.12.0.md
index 36b921717d..815924d6c1 100644
--- a/release-notes/3.12.0.md
+++ b/release-notes/3.12.0.md
@@ -1,6 +1,6 @@
-## RabbitMQ 3.12.0-beta.6
+## RabbitMQ 3.12.0-beta.7
-RabbitMQ `3.12.0-beta.6` is a preview of a new feature release.
+RabbitMQ `3.12.0-beta.7` is a preview of a new feature release.
## Highlights
@@ -24,7 +24,7 @@ RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbi
and [PackageCloud](https://packagecloud.io/rabbitmq).
-### Erlang/OTP Compatibility Notes
+## Erlang/OTP Compatibility Notes
This release [requires Erlang 25.0](https://www.rabbitmq.com/which-erlang.html) or later.
This introduces feature parity for x86- and ARM64-based CPUs: Erlang 25 offers the JIT and
@@ -34,6 +34,12 @@ for both of those major CPU architectures.
[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 25.x.
+### Erlang 26
+
+Erlang 26 introduces a number of breaking changes around networking and TLS. At the moment,
+RabbitMQ should not be considered fully compatible with Erlang 26. Erlang 26 compatibility
+will be announced separately.
+
## Upgrading to 3.12
@@ -130,9 +136,9 @@ Release notes are kept under [rabbitmq-server/release-notes](https://github.com/
GitHub issue: [#6462](https://github.com/rabbitmq/rabbitmq-server/pull/6462)
- * Initial Erlang 26 compatibility
+ * Initial (incomplete) Erlang 26 compatibility
- GitHub issues: [#7443](https://github.com/rabbitmq/rabbitmq-server/pull/7443)
+ GitHub issues: [#7443](https://github.com/rabbitmq/rabbitmq-server/pull/7443), [#7900](https://github.com/rabbitmq/rabbitmq-server/pull/7900)
* There is now a way to pre-configure users and their permissions for newly created virtual hosts:
@@ -163,6 +169,11 @@ Release notes are kept under [rabbitmq-server/release-notes](https://github.com/
rabbitmqctl set_policy at-least-once-dead-lettering ".*" '{"dead-letter-strategy": "at-least-once"}' --apply-to quorum_queues
```
+ * Reduced metric collection-induced memory use spikes every two minutes in environments with
+ a lot of mostly idle queues.
+
+ GitHub issues: [#7825](https://github.com/rabbitmq/rabbitmq-server/pull/7825), [#7896](https://github.com/rabbitmq/rabbitmq-server/pull/7896)
+
* It is now possible to limit the maximum number of virtual hosts that can be created
in the cluster.
@@ -189,6 +200,10 @@ This release includes all bug fixes shipped in the `3.11.x` series.
GitHub issue: [#7846](https://github.com/rabbitmq/rabbitmq-server/pull/7846)
+ * It is now possible to use streams in combination with the event exchange.
+
+ GitHub issue: [#7846](https://github.com/rabbitmq/rabbitmq-server/pull/7846)
+
* [Superstream](https://blog.rabbitmq.com/posts/2022/07/rabbitmq-3-11-feature-preview-super-streams/) could fail
to elect a single active consumer (SAC) in certain consumer churn conditions.
@@ -249,6 +264,11 @@ This release includes all bug fixes shipped in the `3.11.x` series.
GitHub issues: [#6015](https://github.com/rabbitmq/rabbitmq-server/pull/6015), [#6201](https://github.com/rabbitmq/rabbitmq-server/pull/6201),
[#6247](https://github.com/rabbitmq/rabbitmq-server/pull/6247)
+ * **Potentially breaking** change: deprecated UAA-specific configuration keys were removed:
+ `management.enable_uaa`, `management.uaa_*`.
+
+ GitHub issue: [](https://github.com/rabbitmq/rabbitmq-server/pull/7887)
+
#### Bug Fixes
* Default queue type key used when add a virtual host via the HTTP API has changed from