Skip to content

v4.2.x: Switch CLI tools to Thoas for JSON serializer#15966

Merged
michaelklishin merged 2 commits intov4.2.xfrom
mk-double-elixir-dep-on-elixir-1.18-and-later-v4.2.x
Apr 9, 2026
Merged

v4.2.x: Switch CLI tools to Thoas for JSON serializer#15966
michaelklishin merged 2 commits intov4.2.xfrom
mk-double-elixir-dep-on-elixir-1.18-and-later-v4.2.x

Conversation

@michaelklishin
Copy link
Copy Markdown
Collaborator

…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)
@michaelklishin michaelklishin added this to the 4.2.6 milestone Apr 8, 2026
@mergify mergify Bot added the make label Apr 8, 2026
@michaelklishin michaelklishin merged commit ea79ba1 into v4.2.x Apr 9, 2026
594 of 596 checks passed
@michaelklishin michaelklishin deleted the mk-double-elixir-dep-on-elixir-1.18-and-later-v4.2.x branch April 9, 2026 00:24
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