CHANGELOG.md
# Changelog
## v0.8.2 (2024-11-12)
* Add support to AMQP 4.0
## v0.8.1 (2023-11-02)
* Fix compilation warning around the use of `Logger.warn/2`.
* Fix a bug with validating a behaviour when implementing multiple behaviours.
* Fix closing connection from channel pool (see [#129](https://github.com/dashbitco/broadway_rabbitmq/pull/129)).
## v0.8.0 (2023-04-25)
* Add the `BroadwayRabbitMQ.ChannelPool` behaviour.
* Add the `[:broadway_rabbitmq, :amqp, :connection_failure]` Telemetry event.
* Bump Elixir requirement to 1.8+.
* Allow nimble_options 1.0+.
## v0.7.2 (2022-01-12)
* Support nimble_options 0.4.0 alongside 0.3.x
## v0.7.1 (2021-11-25)
* Add support to AMQP 3.0
## v0.7.0 (2021-08-30)
* Add support to AMQP 2.0
* Require Broadway 1.0
## v0.6.5 (2020-12-11)
* Add support for a few Telemetry events. See the "Telemetry" section
in the docs for `BroadwayRabbitMQ.Producer`.
* Add support for `:consume_options` when starting a
`BroadwayRabbitMQ.Producer` to pass options down to `AMQP.Basic.consume/4`.
## v0.6.4 (2020-11-23)
* Bump nimble_options dependency to 0.3.5 which fixes some deprecation
warnings.
* Fix a few potential RabbitMQ issues like possible connection leaking (see
[#83](https://github.com/dashbitco/broadway_rabbitmq/pull/83)).
## v0.6.3 (2020-11-19)
* Start using nimble_options for validation. This has no practical
consequences on the API but introduces a new dependency in broadway_rabbitmq
(which was already used by Broadway).
* Raise if acking messages fails. See the discussion in
[dashbitco/broadway#208](https://github.com/dashbitco/broadway/issues/208).
## v0.6.2 (2020-10-24)
* Deprecate use of a default `:on_failure` option.
* Expose always-present `:amqp_channel` metadata containing the `AMQP.Channel`
struct.
## v0.6.1 (2020-06-05)
* Add support for the `:after_connect` option.
* Add `auth_mechanisms` to the supported connection options for RabbitMQ.
* Support passing in an AMQP connection name.
* Update Broadway requirement to `~> 0.6.0` (it was exactly `0.6.0`) before.
## v0.6.0 (2020-02-19)
* Update Broadway requirement to 0.6.0.
* Re-initialize client options on every reconnect. This means that the `:merge_options`
function is called on every reconnect, allowing to do things such as round-robin
on a list of RabbitMQ URLs.
* Remove support for the deprecated `:requeue` option. Use `:on_success`/`:on_failure`
instead.
* Improve logging on RabbitMQ disconnections and reconnections.
## v0.5.0 (2019-11-04)
* Add support for configuring acking behaviour using `:on_success` and `:on_failure` options
* Add support for declare options `:no_wait` and `:arguments`
* Handle `:auth_failure`, `:unknown_host` and `:socket_closed_unexpectedly` errors
* Add support for a function as the `:connection`
* Add support for `:merge_options` option
* Update to Broadway v0.5.0
## v0.4.0 (2019-08-06)
* Add `:declare` and `:bindings` options to producers
* Handle consumer cancellation by reconnecting
## v0.3.0 (2019-06-06)
* Allow overriding `:buffer_size` and `:buffer_keep`
* Make `:buffer_size` required if `:prefetch_count` is set to `0`
* Allow passing RabbitMQ connection options via an AMQP URI
## v0.2.0 (2019-05-09)
* New option `:metadata` that allows users to select which metadata should be retrieved
and appended to the message struct
* New option `:requeue` that allows users to define a strategy for requeuing failed messages
## v0.1.0 (2019-04-09)
* Initial release