3 ms·
SemVer isn't broken, and you already outlined the obvious solution: 1. Don't depend on 0.x.x version modules unless you are willing to accept the pain of upda
by 33a 12y ago
SemVer isn't broken, and you already outlined the obvious solution:
1. Don't depend on 0.x.x version modules unless you are willing to accept the pain of updating versions constantly.
2. Bump major versions liberally.
If enough people just get used to this reality, then everything will be fine. The problem is trying to impose artificially conceived notions of how things "ought" to work on top of this.
Until someone invents a viable system for checking invariants and interfaces on codes statically, semver is pretty much the only show in town for specifying compatibility between code modules.
- bryanlarsen 12y agoExactly, if you claim to be following semver, and your major version is 1, 2, 3; you're probably not following semver. People have to get used to the fact that bumping the major version is not a big deal. All that it means is that there was an API update or breaking change; it may have been tiny. Chrome is up to version 38; they're doing it right. For example, IIRC, Rails 2.3.5 introduced some API changes. That should have bumped the major version. Rails 3.0 was a "rewrite your code" type bump; that should have been signified with a name change or other similar type of marketing codename. Rails+, for example. I was really disappointed that Linus went with "Linux 3.0" rather than "Linux 40" as the version following 2.6.39 when he finally acknowledged that the '2.6' no longer had any meaning.