Skip to content
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

Consider recording particularly bad/surprising silent semantic changes #1

Open
GrahamTheCoder opened this issue Aug 31, 2015 · 0 comments

Comments

@GrahamTheCoder
Copy link
Owner

These are things which don't strictly break binary compatibility. I'm considering adding some of them in future but want to have a reasonably exhaustive list of changes that fall into this category, and criteria for which ones are included. At that point I may redefine the project to be focussed on "binary semantics", i.e. what an average programmer would expect to happen

Possible candidates in order of likelihood of inclusion:

  • Enum values (which are compiled into the consuming assembly)
    • Form a set of valid values which is highly likely to cause problems if a value disappears.
    • Many people may be surprised by the old value being used.
  • Constant field values (are compiled into the consuming assembly)
    • Some people may be surprised by the old value being used.
    • Sometimes used like enums, i.e. may have a small set of valid values
  • Default method parameter values (are compiled into the consuming assembly)
    • Some people may be surprised by the old value being used.
  • Method body change
    • Could obviously completely change the semantics of a method without changing its signature
    • People should fully expect to get the new behaviour, that's the whole point of this
@GrahamTheCoder GrahamTheCoder changed the title Silent semantic changes not recorded Consider recording particularly bad/surprising silent semantic changes Aug 31, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant