Semantic Versioning in Swift

I'm not sure why it isn't possible to respect SemVer? There are several things one can do in a minor, including:

  • Any rearranging of internal symbols
  • Adding new classes or structs
  • Adding method to structs and to existing public (not open) classes
  • Adding methods to existing protocols, as long as a default implementation is also provided
  • Making classes conform to new internal protocols
  • Deprecating (without removing; with @available(… deprecated…) or similar*) existing functionality and replacing it with new methods

etc.

*: Pitches are welcome for deprecation schemes that do not involve OS versions.