Skip to content

Commit d10e6c6

Browse files
authored
Merge pull request #1327 from rabbitmq/rabbitmq-dotnet-client-6.5.0
6.5.0 CHANGELOG
2 parents 262fe50 + 0c68579 commit d10e6c6

File tree

2 files changed

+324
-0
lines changed

2 files changed

+324
-0
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# Changelog
2+
3+
## [v6.4.0-rc.1](https://github.com/rabbitmq/rabbitmq-dotnet-client/tree/v6.4.0-rc.1) (2022-06-14)
4+
5+
[Full Changelog](https://github.com/rabbitmq/rabbitmq-dotnet-client/compare/v6.4.0...v6.4.0-rc.1)
6+
17
## Changes Between 6.3.1 and 6.4.0
28

39
This release adds the ability to specify a maximum message size when receiving data. The default
@@ -313,3 +319,6 @@ GH issue: [rabbitmq-dotnet-client#239](https://github.com/rabbitmq/rabbitmq-dotn
313319
### Occasional `NullReferenceException` in Endpoint Resolution
314320

315321
GH issue: [rabbitmq-dotnet-client#238](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/238)
322+
323+
324+
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*

HISTORY.md

Lines changed: 315 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,315 @@
1+
## Changes Between 6.3.1 and 6.4.0
2+
3+
This release adds the ability to specify a maximum message size when receiving data. The default
4+
values are:
5+
6+
* RabbitMQ .NET client 7.0.0 and beyond: 128MiB
7+
* RabbitMQ .NET client 6.4.0 up to 7.0.0: no limit by default
8+
9+
Receiving a frame that specifies a content larger than the limit will throw an execption. This is to
10+
help prevent situations as described in [this discussion](https://github.com/rabbitmq/rabbitmq-dotnet-client/discussions/1213).
11+
12+
To set a limit, use the set `MaxMessageSize` on your `ConnectionFactory` before opening connections:
13+
14+
```
15+
// This sets the limit to 512MiB
16+
var cf = new ConnectionFactory();
17+
cf.MaxMessageSize = 536870912;
18+
var conn = cf.CreateConnection()`
19+
```
20+
21+
GitHub milestone: [`6.4.0`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/58?closed=1)
22+
Diff: [link](https://github.com/rabbitmq/rabbitmq-dotnet-client/compare/v6.3.1...v6.4.0)
23+
24+
## Changes Between 6.3.0 and 6.3.1
25+
26+
GitHub milestone: [`6.3.1`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/57?closed=1)
27+
Diff: [link](https://github.com/rabbitmq/rabbitmq-dotnet-client/compare/v6.3.0...v6.3.1)
28+
29+
## Changes Between 6.2.4 and 6.3.0
30+
31+
GitHub milestone: [`6.3.0`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/52?closed=1)
32+
Diff: [link](https://github.com/rabbitmq/rabbitmq-dotnet-client/compare/v6.2.4...v6.3.0)
33+
34+
## Changes Between 6.2.3 and 6.2.4
35+
36+
GitHub milestone: [`6.2.4`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/55?closed=1)
37+
38+
This release contains some important bug fixes:
39+
40+
* [Fix connection leaks on auto recovery](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/1145)
41+
* [Fix buffer overflow when writing long strings](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/1162)
42+
* [Fix regression resulting in `ObjectDisposedException`](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/1154)
43+
* [Fix regression that could affect consuming after auto recovery](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/1148)
44+
45+
## Changes Between 6.2.1 and 6.2.3
46+
47+
GitHub milestone: [`6.2.3`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/54?closed=1)
48+
GitHub milestone: [`6.2.2`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/51?closed=1)
49+
50+
## Changes Between 6.2.0 and 6.2.1
51+
52+
6.2.0 was published incorrectly, resulting in version 6.2.1
53+
54+
GitHub milestone: [`6.2.1`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/50?closed=1).
55+
56+
## Changes Between 6.1.0 and 6.2.0
57+
58+
A full list of changes can be found in the GitHub milestone: [`6.2.0`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/49?closed=1).
59+
60+
## Changes Between 6.0.0 and 6.1.0
61+
62+
This release continues with improvements to memory use and object allocations.
63+
64+
A full list of changes can be found in the GitHub milestone: [`6.1.0`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/48?closed=1).
65+
66+
## Changes Between 5.2.0 and 6.0.0
67+
68+
This major release of this client introduces substantial improvements
69+
in terms of memory footprint and throughput. They come at the cost
70+
of minor but important **breaking API changes** covered below.
71+
72+
The client now requires .NET Framework 4.6.1 or .NET Standard 2.0.
73+
Earlier versions are no longer supported by the `6.x` series.
74+
75+
Key improvements in this release have been the result of hard work by
76+
our stellar community members (in no particular order): @stebet, @bording,
77+
@Anarh2404, @danielmarbach, and others.
78+
79+
A full list of changes can be found in the GitHub milestone: [`6.0.0`](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/41?closed=1).
80+
81+
### The Switch to System.Memory (and [Significantly Lower Memory Footprint](https://stebet.net/real-world-example-of-reducing-allocations-using-span-t-and-memory-t/) that Comes with It)
82+
83+
The client now uses the [`System.Memory` library](https://www.nuget.org/packages/System.Memory/) for message and command payloads. This significantly
84+
reduces object allocation and GC pressure for heavy workloads but also
85+
**potentially requires application changes**: consumer delivery payloads are now of instance [`System.ReadOnlyMemory<byte>`](https://docs.microsoft.com/en-us/dotnet/api/system.readonlymemory-1?view=netcore-3.1)
86+
instead of `byte[]`.
87+
88+
While there's an implicit conversion for these types,
89+
instances of `System.ReadOnlyMemory<byte>` **must be copied or consumed/deserialised before delivery handler completes**.
90+
Holding on to delivered payloads and referencing them at a later point **is no longer safe**.
91+
92+
The same applies to publishers and the `IModel.BasicPublish` method: prefer using `System.ReadOnlyMemory<byte>`
93+
over `byte[]` and dont' assume that this memory can be retained and used outside of the scope of the publishing
94+
function.
95+
96+
GitHub issue: [#732](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/732)
97+
98+
### Timeouts Use `System.TimeSpan`
99+
100+
All timeout arguments now use `System.TimeSpan` values.
101+
102+
GitHub issue: [#688](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/688)
103+
104+
### Reduced Public API Surface
105+
106+
No major changes here but this is potentially breaking. Only public classes that were never meant
107+
to be publicly used have been turned internal to the client.
108+
109+
GitHub issue: [#714](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/714)
110+
111+
### Requires .NET Framework 4.6.1 or .NET Standard 2.0
112+
113+
The client now requires .NET Framework 4.6.1 or .NET Standard 2.0. Earlier versions are no longer
114+
supported.
115+
116+
GitHub issue: [#686](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/686)
117+
118+
### `Microsoft.Diagnostics.Tracing.EventSource` Dependency Dropped
119+
120+
`Microsoft.Diagnostics.Tracing.EventSource` dependency has been removed. It was an annoying
121+
dependency to have for some environments.
122+
123+
### Source Linking
124+
125+
The library now supports source linking.
126+
127+
GitHub issue: [#697](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/697)
128+
129+
### NuGet Source Packages
130+
131+
Source packages are now also distributed via NuGet.
132+
133+
### CRL Checks for Server x.509 (TLS) Certificates
134+
135+
Added a TLS option to enforce CRL checks for server certificates.
136+
137+
GitHub issue: [#500](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/500)
138+
139+
140+
141+
## Changes Between 5.1.2 and 5.2.0
142+
143+
Please see the milestone for all changes:
144+
145+
[GitHub `5.2.0` Milestone](https://github.com/rabbitmq/rabbitmq-dotnet-client/milestone/42?closed=1)
146+
147+
Selected highlights:
148+
149+
### Add support for `netstandard2.0`
150+
151+
GitHub issues: [#428](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/428), [#435](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/435)
152+
153+
### Re-introduce lock for all socket writes
154+
155+
GitHub PR: [rabbitmq-dotnet-client#702](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/702)
156+
157+
158+
159+
## Changes Between 5.1.1 and 5.1.2
160+
161+
### Bump System.Net.Security to 4.3.2
162+
163+
## Changes Between 5.1.0 and 5.1.1
164+
165+
### Deprecate messaging patterns
166+
167+
GitHub PR: [rabbitmq-dotnet-client#654](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/654)
168+
169+
### Fix stack overflow
170+
171+
GitHub PR: [rabbitmq-dotnet-client#578](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/578)
172+
173+
### Byte conversion support
174+
175+
GitHub PR: [rabbitmq-dotnet-client#579](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/579)
176+
177+
### Heartbeat write deadlock fix
178+
179+
GitHub PR: [rabbitmq-dotnet-client#636](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/636)
180+
181+
182+
## Changes Between 5.0.x and 5.1.0
183+
184+
### Batch Publishing
185+
186+
GitHub PR: [rabbitmq-dotnet-client#368](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/368)
187+
188+
### Introduced a Static Property to AmqpTcpEndpoint to specify the default TLS Protocol Version(s)
189+
190+
GitHub PR: [rabbitmq-dotnet-client#389](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/389)
191+
192+
### All Exceptions are Collected When Selecting an Endpoint
193+
194+
GitHub PR: [rabbitmq-dotnet-client#377](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/377)
195+
196+
### Reduced Lock Contention for Frame Writes
197+
198+
GitHub PR: [rabbitmq-dotnet-client#354](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/354)
199+
200+
201+
## Changes Between 4.1.x and 5.0.1
202+
203+
### Async consumers
204+
205+
GitHub PR: [rabbitmq-dotnet-client#307](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/307)
206+
207+
### Enable connection recovery by default
208+
209+
GitHub issue: [rabbitmq-dotnet-client#271](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/271)
210+
211+
### Replace Console.WriteLine logging with EventSource
212+
213+
GitHub issue: [rabbitmq-dotnet-client#94](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/94)
214+
215+
### Add events for connection recovery errors and connection success
216+
217+
GitHub issue: [rabbitmq-dotnet-client#156](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/156)
218+
219+
### noAck renamed to autoAck
220+
221+
GitHub issue: [rabbitmq-dotnet-client#255](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/255)
222+
223+
### Make uri and Uri setters in ConnectionFactory obsolete
224+
225+
GitHub issue: [rabbitmq-dotnet-client#264](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/264)
226+
227+
### Ensure connection recovery does not keep going after the connection has been closed
228+
229+
GitHub issue: [rabbitmq-dotnet-client#294](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/294)
230+
231+
### Synchronize access to the manuallyClosed field in AutorecoveringConnection.
232+
233+
GitHub issue: [rabbitmq-dotnet-client#291](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/291)
234+
235+
### Use concurrent collections inside AutorecoveringConnection
236+
237+
GitHub issue: [rabbitmq-dotnet-client#288](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/288)
238+
239+
### Add property to allow an endpoint to specify the address family
240+
241+
GitHub issue: [rabbitmq-dotnet-client#226](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/226)
242+
243+
### Fix potential EventingBasicConsumer race condition
244+
245+
### Re-introduce a Uri property on IConnectionFactory
246+
247+
GitHub issue: [rabbitmq-dotnet-client#330](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/330)
248+
249+
### Add CreateConnection overload to IConnectionFactory
250+
251+
GitHub PR: [rabbitmq-dotnet-client#325](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/325)
252+
253+
## Changes Between 4.1.0 and 4.1.1
254+
255+
### Fixed XML Documentation Generation
256+
257+
GitHub issue: [rabbitmq-dotnet-client#269](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/269)
258+
259+
Contributed by Brandon Ording.
260+
261+
### Fixed WinRT Project Build
262+
263+
GitHub issue: [rabbitmq-dotnet-client#270](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/270)
264+
265+
Contributed by Brandon Ording.
266+
267+
### `TcpClientAdapter` Nullifies Socket Field on Close
268+
269+
GitHub issue: [rabbitmq-dotnet-client#263](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/263)
270+
271+
### `HeartbeatReadTimerCallback` Handles Potential `NullReferenceException`
272+
273+
GitHub issue: [rabbitmq-dotnet-client#257](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/257)
274+
275+
276+
## Changes Between 4.0.2 and 4.1.0
277+
278+
`4.1.0` was released on **September 14th, 2016**.
279+
280+
### No lock contention at consumer work service
281+
282+
Switched to a "thread-per-model" approach in the `ConsumerWorkService`.
283+
284+
The TaskScheduler property on `ConnectionFactory` has been obsoleted and can no
285+
longer be used to control concurrency.
286+
287+
Utility class changes:
288+
289+
- `BatchingWorkPool` has been removed
290+
- `ConsumerWorkService` no longer has a constructor that takes a `TaskScheduler`
291+
- `ConsumerWorkService.MAX_THUNK_EXECUTION_BATCH_SIZE` has been removed
292+
- `ConsumerWorkService` no longer has the `ExecuteThunk` or `RegisterKey` methods
293+
294+
Contributed by Brandon Ording and Szymon Kulec.
295+
296+
GH issue: [rabbitmq-dotnet-client#251](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/251)
297+
298+
299+
## Changes Between 4.0.1 and 4.0.2 (September 1st, 2016)
300+
301+
### TcpClientAdapter Didn't Respect IP Address Family
302+
303+
GH issue: [rabbitmq-dotnet-client#244](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/244)
304+
305+
## Changes Between 4.0.0 and 4.0.1 (August 25th, 2016)
306+
307+
### `ConnectionFactory#CreateConnection` Deadlock
308+
309+
`ConnectionFactory#CreateConnection` could deadlock in some circumstances.
310+
311+
GH issue: [rabbitmq-dotnet-client#239](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/239).
312+
313+
### Occasional `NullReferenceException` in Endpoint Resolution
314+
315+
GH issue: [rabbitmq-dotnet-client#238](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/238)

0 commit comments

Comments
 (0)