I experience the problem Pragmatic Versioning is trying to solve. For a commercial software product there are often two root causes to change the "major" number in a software product version.
1. There was a breaking change to the API.
2. The company wants to signal great new features.
With pure Semantic Versioning the second reason can not be used alone. And breaking changes in the API are actually not good news for the users.
I think semantic versioning is adopted broadly because great new features often also introduce breaking API changes. So that conflict does not need to be resolved.
Pragmatic versioning helps solving this conflict by splitting um the "major" version number into two new ones for breaking changes and great new features.
The main advantage Semantic Versioning has is that it is the default. So seeing a version tag with three numbers means Semantic Versioning today.
1. There was a breaking change to the API.
2. The company wants to signal great new features.
With pure Semantic Versioning the second reason can not be used alone. And breaking changes in the API are actually not good news for the users.
I think semantic versioning is adopted broadly because great new features often also introduce breaking API changes. So that conflict does not need to be resolved.
Pragmatic versioning helps solving this conflict by splitting um the "major" version number into two new ones for breaking changes and great new features.
The main advantage Semantic Versioning has is that it is the default. So seeing a version tag with three numbers means Semantic Versioning today.