Skip to content

Commit 27233b3

Browse files
committed
Merge branch 'release-1.0' into main
Forward-port release-1.0 fixes into main, rebased on the now-synced upstream/main (which had moved ahead with d817bec and 09902c9 since the first attempt at this merge). Conflicts resolved by porting release-1.0's semantic changes onto main's current structure: - lib/consumer/options.ex: added the fullsweep_after queue option (previously defined in consumers_supervisor.ex, which main removed and consolidated into consumer.ex). - lib/consumer/amqp_data_consumer/starter.ex: threaded fullsweep_after through main's rebuilt childspec construction. - lib/consumer/consumers_supervisor.ex: kept deleted, per main's refactor which moved its logic into lib/consumer.ex. - lib/consumer/message_tracker/server.ex: kept main's direct AMQP.Basic usage (no more @adapter/ExRabbitPool); the requeue: false fix itself was already present upstream via d817bec. - CHANGELOG.md: release-1.0's own entries (fullsweep_after option, Horde.Registry lookup fallback) get their own [1.0.1] - Unreleased section rather than being folded into [1.1.0] - Unreleased, since release-1.0 is the 1.0.x patch line and main/master is 1.1.0. - mix.lock: regenerated via mix deps.get against the merged mix.exs, then pruned of ExRabbitPool-era orphaned entries (current_rabbit_pool, poolboy) via mix deps.unlock --unused, since deps.get alone doesn't remove lock entries no longer referenced. Verified: mix compile --warnings-as-errors, mix format --check-formatted, mix test --only unit (36 tests, 0 failures), and mix check --except ex_unit (compiler, credo, dialyzer, formatter, mix_audit, unused_deps) all pass. Integration tests require a RabbitMQ service not available in this environment.
2 parents 09902c9 + 43953d7 commit 27233b3

10 files changed

Lines changed: 115 additions & 15 deletions

File tree

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1818
- AMQPDataConsumers do not crash when a shutdown is requested.
1919
- DataUpdaters and MessageTrackers are restarted only when requested.
2020

21+
## [1.0.1] - Unreleased
22+
### Added
23+
- Allow configuring the `fullsweep_after` process flag on AMQPDataConsumer processes via the
24+
`:fullsweep_after` queue option, to avoid accumulating uncollected binaries across many minor garbage collections before a full sweep runs. Defaults to 20.
25+
26+
### Changed
27+
- `MessageTracker.get_message_tracker/1` and `DataUpdater.get_data_updater_process/1` now try a
28+
`Horde.Registry` lookup first, only falling back to `Horde.DynamicSupervisor.start_child/2` when
29+
the process is not already registered.
30+
2131
## [1.0.0] - 2025-02-07
2232
### Added
2333
- First Mississippi release.

lib/consumer/amqp_data_consumer.ex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ defmodule Mississippi.Consumer.AMQPDataConsumer do
3838
@impl true
3939
def init(args) do
4040
Process.flag(:trap_exit, true)
41+
42+
fullsweep_after = Keyword.get(args, :fullsweep_after, 20)
43+
Process.flag(:fullsweep_after, fullsweep_after)
44+
4145
queue_name = Keyword.fetch!(args, :queue_name)
4246
exchange_name = Keyword.fetch!(args, :exchange_name)
4347
connection_options = Keyword.fetch!(args, :connection_options)

lib/consumer/amqp_data_consumer/starter.ex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ defmodule Mississippi.Consumer.AMQPDataConsumer.Starter do
8686
defp amqp_data_consumers_childspecs(queues, queues_config) do
8787
connection_options = queues_config[:amqp_consumer_options]
8888
exchange_name = queues_config[:events_exchange_name]
89+
fullsweep_after = queues_config[:fullsweep_after]
8990
orchestrator = self()
9091

9192
for {queue_index, queue_name} <- queues do
@@ -95,7 +96,8 @@ defmodule Mississippi.Consumer.AMQPDataConsumer.Starter do
9596
queue_index: queue_index,
9697
exchange_name: exchange_name,
9798
connection_options: connection_options,
98-
orchestrator: orchestrator
99+
orchestrator: orchestrator,
100+
fullsweep_after: fullsweep_after
99101
]
100102

101103
{AMQPDataConsumer, init_args}

lib/consumer/data_updater.ex

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@ defmodule Mississippi.Consumer.DataUpdater do
5050
@spec get_data_updater_process(sharding_key :: term()) ::
5151
{:ok, pid()} | {:error, :data_updater_start_fail}
5252
def get_data_updater_process(sharding_key) do
53+
case GenServer.whereis(via_tuple(sharding_key)) do
54+
nil -> start_data_updater(sharding_key)
55+
pid -> {:ok, pid}
56+
end
57+
end
58+
59+
defp start_data_updater(sharding_key) do
5360
# TODO bring back :offload_start (?)
5461
case DynamicSupervisor.start_child(
5562
DataUpdater.Supervisor,
@@ -87,8 +94,11 @@ defmodule Mississippi.Consumer.DataUpdater do
8794
message_handler: message_handler
8895
]
8996

90-
name = {:via, Registry, {DataUpdater.Registry, {:sharding_key, sharding_key}}}
91-
GenServer.start_link(__MODULE__, init_args, name: name)
97+
GenServer.start_link(__MODULE__, init_args, name: via_tuple(sharding_key))
98+
end
99+
100+
defp via_tuple(sharding_key) do
101+
{:via, Registry, {DataUpdater.Registry, {:sharding_key, sharding_key}}}
92102
end
93103

94104
@impl true

lib/consumer/message_tracker.ex

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,14 @@ defmodule Mississippi.Consumer.MessageTracker do
2525
@spec get_message_tracker(sharding_key :: term()) ::
2626
{:ok, pid()} | {:error, :message_tracker_start_fail}
2727
def get_message_tracker(sharding_key) do
28-
name = {:via, Registry, {MessageTracker.Registry, {:sharding_key, sharding_key}}}
28+
case GenServer.whereis(via_tuple(sharding_key)) do
29+
nil -> start_message_tracker(sharding_key)
30+
pid -> {:ok, pid}
31+
end
32+
end
33+
34+
defp start_message_tracker(sharding_key) do
35+
name = via_tuple(sharding_key)
2936

3037
# TODO bring back :offload_start (?)
3138
case DynamicSupervisor.start_child(
@@ -51,6 +58,10 @@ defmodule Mississippi.Consumer.MessageTracker do
5158
end
5259
end
5360

61+
defp via_tuple(sharding_key) do
62+
{:via, Registry, {MessageTracker.Registry, {:sharding_key, sharding_key}}}
63+
end
64+
5465
@doc """
5566
Starts handling a message. This call is not blocking.
5667
The message will be put in the MessageTracker process FIFO queue, and processed

lib/consumer/options.ex

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ defmodule Mississippi.Consumer.Options do
8686
A string prefix for naming the queues on which Mississippi messages
8787
will be sharded. Must be the same as the one used by the consumer.
8888
"""
89+
],
90+
fullsweep_after: [
91+
type: :non_neg_integer,
92+
default: 20,
93+
doc: """
94+
Configures the `fullsweep_after` process flag on each AMQPDataConsumer process,
95+
forcing more frequent full sweep garbage collections for those processes
96+
specifically, to help bound their memory growth. AMQPDataConsumer processes
97+
handle a high volume of short-lived binary payloads, so a much lower value than
98+
the VM's default (65535) is used here.
99+
"""
89100
]
90101
]
91102
],

mix.exs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ defmodule Mississippi.MixProject do
4141
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
4242
{:hammox, "~> 0.7", only: :test},
4343
{:mix_audit, "~> 2.0", only: [:dev], runtime: false},
44-
{:horde, "~> 0.9"},
44+
# https://github.com/elixir-horde/horde/pull/291
45+
{:horde, github: "noaccOS/horde", branch: "push-ozyqtonylvpv"},
4546
{:nimble_options, "~> 1.0"},
4647
{:pretty_log, "~> 0.1"},
4748
{:styler, "~> 1.0.0-rc.1", only: [:dev], runtime: false},

mix.lock

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
%{
22
"amqp": {:hex, :amqp, "4.1.1", "f1ed311c2d26849df1e77e4797f4daa3c2c67b05bcab885d970fc4b9c4cea8d5", [:mix], [{:amqp_client, "~> 4.0", [hex: :amqp_client, repo: "hexpm", optional: false]}], "hexpm", "6d3d567bf0c74a3701e73fc3e4c758ec4f6042a78c9c8e561854d1dcbe65a65e"},
3-
"amqp_client": {:hex, :amqp_client, "4.2.1", "cff0cc13186e57457dc5745f1b3a4127c6857717cb8f5920dc457c84d0ad00a2", [:make, :rebar3], [{:credentials_obfuscation, "3.5.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:rabbit_common, "4.2.1", [hex: :rabbit_common, repo: "hexpm", optional: false]}], "hexpm", "8ae00b055a58500e0557f73d9c0ffe257487131e603f7f84fe72cbfaaf03838a"},
3+
"amqp_client": {:hex, :amqp_client, "4.3.4", "b7ce1678e1e57495d4a170403016faf3808c1301f588325c4024159391797c5a", [:make, :rebar3], [{:credentials_obfuscation, "3.5.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:rabbit_common, "4.3.4", [hex: :rabbit_common, repo: "hexpm", optional: false]}], "hexpm", "61418e1ce1097ad87ce51833929c2c1243782f1ace2e49897d8cc5a85ba53753"},
44
"bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"},
55
"credentials_obfuscation": {:hex, :credentials_obfuscation, "3.5.0", "61e282adfb4439486b3994faaec69543c7ee6cc7e70c6340e8853fd9deaf8219", [:rebar3], [], "hexpm", "843adbe3246861ce0f1a0fa3222f384834eb31defd8d6b9cba7afd2977c957bc"},
6-
"credo": {:hex, :credo, "1.7.19", "cc52129665fc7c15143d47838fda0f9cd6dac9ceced7bf4da6f85fcbfe64b12a", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "2d8bc95d5a7bb99dd2613621d4f08c6a3575c3fd4b62e6a2b48a100352a557b8"},
6+
"credo": {:hex, :credo, "1.7.16", "a9f1389d13d19c631cb123c77a813dbf16449a2aebf602f590defa08953309d4", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "d0562af33756b21f248f066a9119e3890722031b6d199f22e3cf95550e4f1579"},
77
"delta_crdt": {:hex, :delta_crdt, "0.6.5", "c7bb8c2c7e60f59e46557ab4e0224f67ba22f04c02826e273738f3dcc4767adc", [:mix], [{:merkle_map, "~> 0.2.0", [hex: :merkle_map, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c6ae23a525d30f96494186dd11bf19ed9ae21d9fe2c1f1b217d492a7cc7294ae"},
88
"dialyxir": {:hex, :dialyxir, "1.4.7", "dda948fcee52962e4b6c5b4b16b2d8fa7d50d8645bbae8b8685c3f9ecb7f5f4d", [:mix], [{:erlex, ">= 0.2.8", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b34527202e6eb8cee198efec110996c25c5898f43a4094df157f8d28f27d9efe"},
9-
"earmark_parser": {:hex, :earmark_parser, "1.4.45", "cba8369ab2a1342e419bc2760eec731b17be828941dcf494045d44766227e1d5", [:mix], [], "hexpm", "d3ec045bf122965db20c0bdb420e19ee1415843135327124918473feb4b328e8"},
9+
"earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"},
1010
"elixir_uuid": {:hex, :elixir_uuid, "1.2.1", "dce506597acb7e6b0daeaff52ff6a9043f5919a4c3315abb4143f0b00378c097", [:mix], [], "hexpm", "f7eba2ea6c3555cea09706492716b0d87397b88946e6380898c2889d68585752"},
11-
"erlex": {:hex, :erlex, "0.2.9", "7debbbaa9f4f368b8cd648983e0f1d7963028508e9c59e9d4ed504e94ef52a55", [:mix], [], "hexpm", "8cfffc0ec7159e6d73de2ab28a588064de80f88b2798d5cbe4482cbbc200178b"},
11+
"erlex": {:hex, :erlex, "0.2.8", "cd8116f20f3c0afe376d1e8d1f0ae2452337729f68be016ea544a72f767d9c12", [:mix], [], "hexpm", "9d66ff9fedf69e49dc3fd12831e12a8a37b76f8651dd21cd45fcf5561a8a7590"},
1212
"ex_check": {:hex, :ex_check, "0.16.0", "07615bef493c5b8d12d5119de3914274277299c6483989e52b0f6b8358a26b5f", [:mix], [], "hexpm", "4d809b72a18d405514dda4809257d8e665ae7cf37a7aee3be6b74a34dec310f5"},
13-
"ex_doc": {:hex, :ex_doc, "0.40.3", "4a972ffe64bc07dc605af487e98fc19b72a4185f55ca031b94c0552d6071c1d9", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "2756e357742fecd9749b489b85d67c9ce99c465f2e75728d9e6dc8d704b973de"},
13+
"ex_doc": {:hex, :ex_doc, "0.40.1", "67542e4b6dde74811cfd580e2c0149b78010fd13001fda7cfeb2b2c2ffb1344d", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "bcef0e2d360d93ac19f01a85d58f91752d930c0a30e2681145feea6bd3516e00"},
1414
"excoveralls": {:hex, :excoveralls, "0.18.5", "e229d0a65982613332ec30f07940038fe451a2e5b29bce2a5022165f0c9b157e", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "523fe8a15603f86d64852aab2abe8ddbd78e68579c8525ae765facc5eae01562"},
1515
"file_system": {:hex, :file_system, "1.1.1", "31864f4685b0148f25bd3fbef2b1228457c0c89024ad67f7a81a3ffbc0bbad3a", [:mix], [], "hexpm", "7a15ff97dfe526aeefb090a7a9d3d03aa907e100e262a0f8f7746b78f8f87a5d"},
1616
"ham": {:hex, :ham, "0.3.2", "02ae195f49970ef667faf9d01bc454fb80909a83d6c775bcac724ca567aeb7b3", [:mix], [], "hexpm", "b71cc684c0e5a3d32b5f94b186770551509e93a9ae44ca1c1a313700f2f6a69a"},
1717
"hammox": {:hex, :hammox, "0.7.1", "826a01d3caa574eb6f4cd2b7b0815b16f95951527b1a30871c2ea80bbc00aaec", [:mix], [{:mox, "~> 1.0", [hex: :mox, repo: "hexpm", optional: false]}, {:ordinal, "~> 0.1", [hex: :ordinal, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "add4d7d341c1df7898a96358798e7a7e73587cb28fd4b7127abe55232ae3f6e8"},
18-
"horde": {:hex, :horde, "0.10.0", "31c6a633057c3ec4e73064d7b11ba409c9f3c518aa185377d76bee441b76ceb0", [:mix], [{:delta_crdt, "~> 0.6.2", [hex: :delta_crdt, repo: "hexpm", optional: false]}, {:libring, "~> 1.7", [hex: :libring, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_poller, "~> 0.5.0 or ~> 1.0", [hex: :telemetry_poller, repo: "hexpm", optional: false]}], "hexpm", "0b51c435cb698cac9bf9c17391dce3ebb1376ae6154c81f077fc61db771b9432"},
19-
"jason": {:hex, :jason, "1.4.5", "2e3a008590b0b8d7388c20293e9dcc9cf3e5d642fd2a114e4cbbb52e595d940a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b0c823996102bcd0239b3c2444eb00409b72f6a140c1950bc8b457d836b30684"},
18+
"horde": {:git, "https://github.com/noaccOS/horde.git", "759d10eeee57c68c61987b46b12bcabe86454453", [branch: "push-ozyqtonylvpv"]},
19+
"jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"},
2020
"libring": {:hex, :libring, "1.7.0", "4f245d2f1476cd7ed8f03740f6431acba815401e40299208c7f5c640e1883bda", [:mix], [], "hexpm", "070e3593cb572e04f2c8470dd0c119bc1817a7a0a7f88229f43cf0345268ec42"},
2121
"logfmt": {:hex, :logfmt, "3.3.3", "6521ee4a5c532088e15d487fab9f736c07bdd161d643560c73cd4b10685deb65", [:mix], [], "hexpm", "dbd51cd3fe37c3429b9bd687bad1f531a533505f4a641592129e7a47e24104d1"},
2222
"makeup": {:hex, :makeup, "1.2.1", "e90ac1c65589ef354378def3ba19d401e739ee7ee06fb47f94c687016e3713d1", [:mix], [{:nimble_parsec, "~> 1.4", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "d36484867b0bae0fea568d10131197a4c2e47056a6fbe84922bf6ba71c8d17ce"},
2323
"makeup_elixir": {:hex, :makeup_elixir, "1.0.1", "e928a4f984e795e41e3abd27bfc09f51db16ab8ba1aebdba2b3a575437efafc2", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "7284900d412a3e5cfd97fdaed4f5ed389b8f2b4cb49efc0eb3bd10e2febf9507"},
24-
"makeup_erlang": {:hex, :makeup_erlang, "1.1.0", "835f7e60792e08824cda445639555d7bf1bbbddb1b60b306e33cb6f6db24dc74", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "1cd6780fb1dd1a03979abaed0fe82712b0625118fd5257d3ebbf73f960c73c3c"},
24+
"makeup_erlang": {:hex, :makeup_erlang, "1.0.3", "4252d5d4098da7415c390e847c814bad3764c94a814a0b4245176215615e1035", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "953297c02582a33411ac6208f2c6e55f0e870df7f80da724ed613f10e6706afd"},
2525
"merkle_map": {:hex, :merkle_map, "0.2.2", "f36ff730cca1f2658e317a3c73406f50bbf5ac8aff54cf837d7ca2069a6e251c", [:mix], [], "hexpm", "383107f0503f230ac9175e0631647c424efd027e89ea65ab5ea12eeb54257aaf"},
2626
"mimic": {:hex, :mimic, "2.3.0", "88b1d13c285e57df6ea57204317bb56e49e7329668006cdcb80a9aafc73a9616", [:mix], [{:ham, "~> 0.3", [hex: :ham, repo: "hexpm", optional: false]}], "hexpm", "52771f23689398c5d41c7d05e91c2c28e10df273b784f40ca8b02e35e46850d3"},
2727
"mix_audit": {:hex, :mix_audit, "2.1.5", "c0f77cee6b4ef9d97e37772359a187a166c7a1e0e08b50edf5bf6959dfe5a016", [:make, :mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:yaml_elixir, "~> 2.11", [hex: :yaml_elixir, repo: "hexpm", optional: false]}], "hexpm", "87f9298e21da32f697af535475860dc1d3617a010e0b418d2ec6142bc8b42d69"},
@@ -31,7 +31,7 @@
3131
"nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"},
3232
"ordinal": {:hex, :ordinal, "0.2.0", "d3eda0cb04ee1f0ca0aae37bf2cf56c28adce345fe56a75659031b6068275191", [:mix], [], "hexpm", "defca8f10dee9f03a090ed929a595303252700a9a73096b6f2f8d88341690d65"},
3333
"pretty_log": {:hex, :pretty_log, "0.9.0", "f84aab76e20c551a624ddd4656f1e5f9ca2941625db07549e9cb6a84a346bd40", [:mix], [{:logfmt, "~> 3.3", [hex: :logfmt, repo: "hexpm", optional: false]}], "hexpm", "abf9605c50fdd9377a3ce02ea51696538f4f647b9bb63a8dac209427fc7badf4"},
34-
"rabbit_common": {:hex, :rabbit_common, "4.2.1", "1d64e391e12116b76b1425eb96b7552de51f0301093eba669b5334f4759cc1e8", [:make, :rebar3], [{:credentials_obfuscation, "3.5.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:ranch, "2.2.0", [hex: :ranch, repo: "hexpm", optional: false]}, {:recon, "2.5.6", [hex: :recon, repo: "hexpm", optional: false]}, {:thoas, "1.2.1", [hex: :thoas, repo: "hexpm", optional: false]}], "hexpm", "ff509b07e639b1784898c28031e5204fea14260172e4fc339f94405586037e40"},
34+
"rabbit_common": {:hex, :rabbit_common, "4.3.4", "2911b2b563aa6a477c55bb1f4cbf83fcb7accc5412722b3bb5f3ae4e5e33f877", [:make, :rebar3], [{:credentials_obfuscation, "3.5.0", [hex: :credentials_obfuscation, repo: "hexpm", optional: false]}, {:ranch, "2.2.0", [hex: :ranch, repo: "hexpm", optional: false]}, {:recon, "2.5.6", [hex: :recon, repo: "hexpm", optional: false]}, {:thoas, "1.2.1", [hex: :thoas, repo: "hexpm", optional: false]}], "hexpm", "e5fefde66701a0d6ce7cc464133c6975b0b2661b47561d7c622cce6b7420413c"},
3535
"ranch": {:hex, :ranch, "2.2.0", "25528f82bc8d7c6152c57666ca99ec716510fe0925cb188172f41ce93117b1b0", [:make, :rebar3], [], "hexpm", "fa0b99a1780c80218a4197a59ea8d3bdae32fbff7e88527d7d8a4787eff4f8e7"},
3636
"recon": {:hex, :recon, "2.5.6", "9052588e83bfedfd9b72e1034532aee2a5369d9d9343b61aeb7fbce761010741", [:mix, :rebar3], [], "hexpm", "96c6799792d735cc0f0fd0f86267e9d351e63339cbe03df9d162010cefc26bb0"},
3737
"styler": {:hex, :styler, "1.0.0", "87daf4a8e421d7678da78f9532a632974de6b8060b80d7827abec3bca5140173", [:mix], [], "hexpm", "4ba5bc40c5eaebe2bb05ec0bb7b5a889d38c6ea6865c584dffd360b3a94ec625"},
@@ -40,5 +40,5 @@
4040
"thoas": {:hex, :thoas, "1.2.1", "19a25f31177a17e74004d4840f66d791d4298c5738790fa2cc73731eb911f195", [:rebar3], [], "hexpm", "e38697edffd6e91bd12cea41b155115282630075c2a727e7a6b2947f5408b86a"},
4141
"typedstruct": {:hex, :typedstruct, "0.5.4", "d1d33d58460a74f413e9c26d55e66fd633abd8ac0fb12639add9a11a60a0462a", [:make, :mix], [], "hexpm", "ffaef36d5dbaebdbf4ed07f7fb2ebd1037b2c1f757db6fb8e7bcbbfabbe608d8"},
4242
"yamerl": {:hex, :yamerl, "0.10.0", "4ff81fee2f1f6a46f1700c0d880b24d193ddb74bd14ef42cb0bcf46e81ef2f8e", [:rebar3], [], "hexpm", "346adb2963f1051dc837a2364e4acf6eb7d80097c0f53cbdc3046ec8ec4b4e6e"},
43-
"yaml_elixir": {:hex, :yaml_elixir, "2.12.2", "9dd1330fb4cd9a36a7b0f502e5b12486eff632792ee4a5f0eba52a4d4ec32c9c", [:mix], [{:yamerl, "~> 0.10", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm", "e7c1b10122f973e6558462d51c39026ba0e14afbc6745318e990ea82cfe9e159"},
43+
"yaml_elixir": {:hex, :yaml_elixir, "2.12.1", "d74f2d82294651b58dac849c45a82aaea639766797359baff834b64439f6b3f4", [:mix], [{:yamerl, "~> 0.10", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm", "d9ac16563c737d55f9bfeed7627489156b91268a3a21cd55c54eb2e335207fed"},
4444
}

0 commit comments

Comments
 (0)