I think a better solution would be a less-strict SemVer: the notion of "breaking changes" that require a major bump would be tempered by the number of users affected by the change. If it's rarely used feature or API edge case, then we can risk a minor bump. If we've changed a commonly used API that will break some large % of user experiences, or a large number of uncommonly-used APIs that might in aggregate affect a large % of users, then we do a major bump. Of course this require some intuition about usage, and a very human judgment call, but that's all versions ever have been: a toplevel way for developers to communicate to users the degree of change and risk of upgrading.
Major Version Numbers Are Not Sacred
11–14 of 14 posts
Re: Major Version Numbers Are Not Sacred
#12Earlier quoted context omitted.
The only reason fixed-width integer types exist is more or less a hack/optimization for doing fast and space-efficient integral math. Since these are total non-issues for the problem domain where version numbers are involved, there's no reason not to use a bignum instead, if available. Similar test: which is a more appropriate data type for ZIP codes, int or string?
Non US ZIPs regularily have strings in them (e.g. Dutch ZIP codes) so a string would be appropriate.
Re: Major Version Numbers Are Not Sacred
#13I was hoping that Tom was going to 'loosen' SemVer a bit, but instead he's doubling down, and that's to our detriment. Following SemVer as stated--any "breaking change" to the API must be released with a major version bump--communicates less than an ad hoc versioning system. Because some "breaking changes" may be in areas of the API that is used by few people (and sometimes literally no one), but a major version bump…
Re: Major Version Numbers Are Not Sacred
#14Earlier quoted context omitted.
Non US ZIPs regularily have strings in them (e.g. Dutch ZIP codes) so a string would be appropriate.
This is half right. String would be more appropriate than an integer type even if that weren't true. ZIP codes really don't have anything to do with the fundamental numerical operations that are defined for integer types.