bunny 3.2.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 712a18cac951945d52173bb1222fc7f31db91caa07b38ab70939f0d82ba16716
4
- data.tar.gz: 545adc41e89744dcf9b28737e174f3006f61f5d174e157a74441e60d34bbeb62
3
+ metadata.gz: 1a2354707d0c6f725a8992baaff54c129113312407166c6c7275b6aef9c6d10b
4
+ data.tar.gz: 5e0bfc1d60c0ccd0c0718fea83b537a4be5cca88c1c17795a7340d5fa39df168
5
5
  SHA512:
6
- metadata.gz: 15b48abb0e61c6dd1d19bfa3e1c9135315106bf1e9da78ce619c7fcab665b2d462747abe3f1bd8b2a3cc16530c58b10cf882c6c547b1cf0cc03a235c700f8087
7
- data.tar.gz: fcdaef2f5bda1df881f7c6ba27ded1c591fd7c0b77ec816ce45b8554220062183918af19224d216cd50e0bc613bfae6add49b976232ba05d7d672a0dc92d509c
6
+ metadata.gz: 85cda03336b6f4130335f39d5641054e8be776e2cb6a14291075954fa5364c62f631044c0a5364fd9473634e9680ed5a46331c1e8ec588470ea9281d0b5943bc
7
+ data.tar.gz: 58f094229752eb2718345c078cb6ed2baa7f5642b59f37e211dd8f963e8543960ec0423fb3a7c4b0e7cb3c1a4daf6be1a747d14eb5b3a625b4abd8873d33b9fd
data/ChangeLog.md CHANGED
@@ -1,3 +1,28 @@
1
+ ## Changes between Bunny 3.2.0 and 3.3.0 (Aug 29, 2026)
2
+
3
+ ### Passive Declarations No Longer Affect Topology Recovery
4
+
5
+ `Bunny::Channel#queue` and `Bunny::Channel#exchange` recorded passively declared
6
+ queues and exchanges for topology recovery by mistake. Passive declares are just
7
+ existence checks and should not be replayed by topology recovery.
8
+
9
+ `Bunny::Session#queue_exists?` and `Bunny::Session#exchange_exists?` were affected
10
+ in the same way, since both are implemented using passive declarations.
11
+
12
+ ### Queue Recovery Recorded `exclusive` and `auto_delete` in Reverse
13
+
14
+ `Bunny::Channel#queue_declare` passed the `exclusive` and `auto_delete` properties
15
+ to the topology registry in the wrong order, so a queue that used one but not the
16
+ other was recovered with both properties flipped.
17
+
18
+
19
+ ### `amq-protocol` Bump to `2.9.0`
20
+
21
+ [`2.9.0` release notes](https://github.com/ruby-amqp/amq-protocol/releases/tag/v2.9.0).
22
+
23
+ This version requires Ruby `3.2.0` or later.
24
+
25
+
1
26
  ## Changes between Bunny 3.1.0 and 3.2.0 (Aug 19, 2026)
2
27
 
3
28
  ### Modernization for Ruby 3.x
data/lib/bunny/channel.rb CHANGED
@@ -523,7 +523,7 @@ module Bunny
523
523
 
524
524
  q = find_queue(name) || Bunny::Queue.new(self, name, opts)
525
525
 
526
- record_queue(q)
526
+ record_queue(q) unless opts[:passive]
527
527
  register_queue(q)
528
528
  end
529
529
 
@@ -1352,7 +1352,7 @@ module Bunny
1352
1352
  args = opts[:arguments]
1353
1353
 
1354
1354
  result = self.queue_declare_without_recording_topology(name, opts)
1355
- self.record_queue_with(self, result.queue, is_server_named, durable, exclusive, auto_delete, args) unless passive
1355
+ self.record_queue_with(self, result.queue, is_server_named, durable, auto_delete, exclusive, args) unless passive
1356
1356
 
1357
1357
  result
1358
1358
  end
@@ -108,8 +108,9 @@ module Bunny
108
108
 
109
109
  # for basic.return dispatch and such
110
110
  @channel.register_exchange(self)
111
- # for topology recovery
112
- @channel.record_exchange(self)
111
+ # for topology recovery. A passive declaration does not own the exchange,
112
+ # so it must not overwrite what was recorded for it earlier
113
+ @channel.record_exchange(self) unless @options[:passive]
113
114
  end
114
115
 
115
116
  # @return [Boolean] true if this exchange was declared as durable (will survive broker restart).
data/lib/bunny/queue.rb CHANGED
@@ -91,8 +91,9 @@ module Bunny
91
91
 
92
92
  # for basic.deliver dispatch and such
93
93
  @channel.register_queue(self)
94
- # for topology recovery
95
- @channel.record_queue(self)
94
+ # for topology recovery. A passive declaration does not own the queue,
95
+ # so it must not overwrite what was recorded for it earlier
96
+ @channel.record_queue(self) unless @options[:passive]
96
97
  end
97
98
 
98
99
  # @return [Boolean] true if this queue was declared as durable (will survive broker restart).
data/lib/bunny/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Bunny
4
4
  # @return [String] Version of the library
5
- VERSION = "3.2.0"
5
+ VERSION = "3.3.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bunny
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Duncan
@@ -19,14 +19,14 @@ dependencies:
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: '2.8'
22
+ version: '2.9'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '2.8'
29
+ version: '2.9'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: logger
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -136,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  requirements: []
139
- rubygems_version: 3.6.9
139
+ rubygems_version: 4.0.16
140
140
  specification_version: 4
141
141
  summary: Popular easy to use Ruby client for RabbitMQ
142
142
  test_files: []