Reputation: 8557
Apologies if this question is being posted into the wrong space - it doesn't feel quite right for SO, but I don't know of a better place.
I have a public nuget Package (EnumStringValues ... plug, plug plug) which I'm making a change to.
The change doesn't change the API signatures - the old code will still compile.But it does change behaviour in an edge case - mostly the result is that a usage that would previously have generated an exception now performs a different default behaviour. There's also a TryParse() call, which will (in this edge case) change a (non-exception) fail case into a success case.
The edge cases are "you've used this library in a way that it wasn't really intended to be used". i.e. I've slightly increased the intended use-scope of the library.
Is that a breaking change? and does it thus demand a new MAJOR version? Or is it merely a minor change that is "backwards compatible".
My first instinct is to say it's a change to the behaviour of existing calls and therefore a breaking change. Thoughts?
Upvotes: 1
Views: 167
Reputation: 1800
Given the following
I would say that your change is not backwards compatible. People who belong to your edge case group will have their expected functionality changed by your new package. In light of this I would say it is a new major version
Upvotes: 1