-
Notifications
You must be signed in to change notification settings - Fork 803
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for RabbitMQ.Client version 7. #2323
Conversation
test/HealthChecks.RabbitMQ.v7.Tests/HealthChecks.RabbitMQ.v7.Tests.csproj
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have not released the 9.0 version yet, so it theory we could include this breaking change now and then release 9.0. So those who need the old packages would keep using the 8.0 version.
Thoughts?
When is the planned release date of release 9.0? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tests only run for HealthChecks.Rabbitmq. Tests should be run for HealthChecks.Rabbitmq.v7 too.
RabbitMQ.Client version 7 made major breaking changes - interface renames, all sync methods are removed and only async methods remain. Handle this breaking change by splitting our package into 2, one for each major version. 1. For the current HealthChecks.Rabbitmq package, we put a NuGet version limit on our dependency: [6.8.1,7.0.0). This way people won't be able to update to the 7.0.0 version, which will break their app. 2. We add a new, forked component named HealthChecks.Rabbitmq.v7 which will have a dependency on 7.0.0 and contains updates so the health checks will work with v7. People who explicitly want to use version 7 can opt into using this package. 3. When the next major version of HealthChecks ships, we can "swap" the dependencies around. The HealthChecks.Rabbitmq package will be updated to depend on version 7 of RabbitMQ.Client. If RabbitMQ.Client v6 is still in support, we can create HeatlhChecks.Rabbitmq.v6 which has the dependency limit [6.8.1, 7.0.0) and works with the version 6 of RabbitMQ.Client. HealthChecks.Rabbitmq.v7 will be dead-ended.
… version. Update to latest master branch.
6ee691f
to
6f1ffaa
Compare
- add workflows for the new v6 package - remove unnecessary csproj edits
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #2323 +/- ##
==========================================
- Coverage 66.88% 66.55% -0.33%
==========================================
Files 268 255 -13
Lines 8730 8651 -79
Branches 631 623 -8
==========================================
- Hits 5839 5758 -81
- Misses 2723 2727 +4
+ Partials 168 166 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, big thanks for putting so much attention into details @eerhardt !
|
||
return _connection; | ||
internal static class ConcurrentDictionaryExtensions |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not related to this PR, but it shows that we really need to get rid of that static cache, as it brings so much complexity and increases a risk for various bugs (leaks etc).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes - agreed. I will try to make that change next.
RabbitMQ.Client version 7 made major breaking changes - interface renames, all sync methods are removed and only async methods remain.
Handle this breaking change by splitting our package into 2, one for each major version.
HealthChecks.Rabbitmq.v6
package.Fix #2319
Please make sure you've completed the relevant tasks for this PR, out of the following list: