This appears to be from 2013: <a href="https://github.com/mojombo/semver/commits/v2.0.0" rel="nofollow">https://github.com/mojombo/semver/commits/v2.0.0</a>
I've been at so many companies where someone is pushing to adopt semantic versioning without actually following step 1 in the spec...<p>> 1. Software using Semantic Versioning MUST declare a public API. This API could be declared in the code itself or exist strictly in documentation. However it is done, it should be precise and comprehensive.<p>SemVer doesn't even make sense if you don't have a public API. SemVer doesn't make sense for end user products that don't have an API. I really wish people would stop trying to abuse it.
See <a href="https://github.com/mojombo/semver/compare/v1.0.0...v2.0.0" rel="nofollow">https://github.com/mojombo/semver/compare/v1.0.0...v2.0.0</a> for the changelog.<p>Edit: Changes, that is, not a changelog.
Are there any projects that follow this specification strictly? It seems like most projects are willing to do backwards-incompatible "bug fixes" to the behavior of their API without incrementing the major version. These are usually harmless in practice, but technically break rule 8. It seems difficult to me to prove that any given set of changes can't break someone else's code (even allocating an extra byte of memory has the potential to do this).