The SemVer specification gives these instructions:
- Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards compatible bug fixes are introduced. [...]
- Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards compatible functionality is introduced to the public API. [...]
- Major version X (X.y.z | X > 0) MUST be incremented if any backwards incompatible changes are introduced to the public API. [...]
So basically, Z is incremented for fixes, Y is incremented for features, X is incremented for breaking changes whether they're about features or fixes.
While in the initial developments phase, we just don't deal with the breaking change part because we have no production users. Therefore, we should increment Z for fixes, and Y for features,
no matter if the changes are backwards compatible or not.