Skip to content

Switch CLI tools to Thoas for JSON serializer; re-enable Dialyzer for 4 plugins (backport #15964)#15965

Merged
michaelklishin merged 2 commits intov4.3.xfrom
mergify/bp/v4.3.x/pr-15964
Apr 9, 2026
Merged

Switch CLI tools to Thoas for JSON serializer; re-enable Dialyzer for 4 plugins (backport #15964)#15965
michaelklishin merged 2 commits intov4.3.xfrom
mergify/bp/v4.3.x/pr-15964

Conversation

@mergify
Copy link
Copy Markdown

@mergify mergify Bot commented Apr 8, 2026

Elixir 1.18+ introduces a standard library JSON module which conflicts with the json library we've been using in CLI tools for --formatter=json and such.

Since the two Elixir versions are not compatible
and we have reasons to not bump Elixir too aggressively just yet, the most pragmatic option was to switch CLI tools to use thoas, the Erlang JSON
parser RabbitMQ core and HTTP API use.

This unblocks Dialyzer runs in four plugins disabled about 10 months ago and reveals a rabbitmq_mqtt Dialyzer failure due to a field that was removed
from a record but not its type spec.

The plugins in question added CLI tools to their PLT_APPS.

Due to the MQTT plugin issue above, this can only
be backported to v4.3.x, a v4.2.x version
will need some tweaks.


This is an automatic backport of pull request #15964 done by [Mergify](https://mergify.com).

…lugins

Elixir 1.18+ introduces a standard library JSON module
which conflicts with the `json` library we've been using
in CLI tools for `--formatter=json` and such.

Since the two Elixir versions are not compatible
and we have reasons to not bump Elixir too aggressively
just yet, the most pragmatic option was to
switch CLI tools to use `thoas`, the Erlang JSON
parser RabbitMQ core and HTTP API use.

This unblocks Dialyzer runs in four plugins disabled
about 10 months ago and reveals a `rabbitmq_mqtt`
Dialyzer failure due to a field that was removed
from a record but not its type spec.

Due to the MQTT plugin issue above, this can only
be backported to `v4.3.x`, a `v4.2.x` version
will need some tweaks.

(cherry picked from commit b4ed713)
at least as closely as practical for RabbitMQ's
needs.

(cherry picked from commit ff97d99)
@mergify mergify Bot added the make label Apr 8, 2026
@michaelklishin michaelklishin added this to the 4.3.0 milestone Apr 8, 2026
@michaelklishin michaelklishin merged commit 07c93fa into v4.3.x Apr 9, 2026
191 checks passed
@michaelklishin michaelklishin deleted the mergify/bp/v4.3.x/pr-15964 branch April 9, 2026 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant