fix: consistent hashing and equality for RabbitMQ schemas#2796
fix: consistent hashing and equality for RabbitMQ schemas#2796RinZ27 wants to merge 4 commits intoag2ai:mainfrom
Conversation
f1d1cd2 to
d383d1a
Compare
d383d1a to
f1bacfa
Compare
|
Explicitly defined Modified Additionally, included the missing |
|
@RinZ27 did you run tests and linter locally? |
|
Anyway, we are strongly tied to current |
606905d to
1f9c245
Compare
|
@Lancetnik I've verified the changes with ruff and ran the schema tests locally (everything is green). During my research, I noticed the current implementation violates the hash-equality invariant. Specifically, Using Logic for both Exchange and Queue now includes |
Yes, it was designed this way. And now we can't change the behavior because all existing code based on that behavior |
1f9c245 to
51a4380
Compare
|
@Lancetnik reverted However, I've kept the changes for By fixing the |
We shouldn't check |
|
I mean all tests now - are pinned behavior. Current behavior was designed to cover such behavior. Any changes requires tests updates - breaking changes. |
|
I am OK to align |
51a4380 to
9e57353
Compare
|
@Lancetnik Reverted I've kept the changes to align All schema tests are passing locally and match the current design's expectations, updated the tests to reflect these reverts. |
9e57353 to
398ee78
Compare
…alize arguments comparison
398ee78 to
c30d003
Compare
Description
Consistent hashing and equality logic for RabbitMQ schemas (Queue, Exchange, and Channel). These changes allow schema objects to be used correctly in sets or as dictionary keys, which is essential for the internal declarer cache and prevents redundant declarations.
The
robustparameter is now excluded from identity checks (__eq__and__hash__) as requested, ensuring that connection-level properties do not affect the schema's unique identity.Relates to #2791 (replacement for the closed PR)
Type of change
Checklist