ConfigContext: Remove default value for Bind(T defaultValue) parameter#79
Conversation
According to Microsoft documentation, this is a source break at worst, NOT a binary break. Pros: - It is never used without an actual value for the defaultValue argument. - Not providing any defaultValue never made much sense. Cons: - It is part of public API. https://learn.microsoft.com/en-us/dotnet/core/compatibility/library-change-rules > ❌ DISALLOWED: Changing the default value of a property, field, or parameter > > Changing or removing a parameter default value is not a binary break. > Removing a parameter default value is a source break, and changing a > parameter default value could result in a behavioral break after > recompilation.
|
what's the difference between a source break and a binary break? wont people who have accessed this function have to recompile? |
|
Binary break == dependent libs won't load, everything's on fire. Very bad. Source break == you might be unable to recompile dependent code without changes. Like, here you would need to pass an explicit value for the third argument if you didn't do so before. So basically, projects might need to modify their code in order to bump their dependencies during development. The reason is it only a source break, is that |
|
so if somebody had already filled in a defaultValue, they're good? |
yeah, just like 55 places in DawnLib.Dusk itself, they won't need to change anything. |
According to Microsoft documentation, this is a source break at worst, NOT a binary break.
Pros:
Cons:
https://learn.microsoft.com/en-us/dotnet/core/compatibility/library-change-rules