As a software developers we often run into setting up semantic versioning tags on our Github projects. We've been told to think in terms of MAJOR.MINOR.PATCH for our versioning. Due to the nature of npm, composer, and other package managers this doesn't always help us understand at what point a breaking change occurs. The reason this happens, especially in the javascript community, is that breaking changes can end up being applied at the patch level of sem ver.

Eric Elliot has written a fun article called Software Versions are Broken explaining his thought process. He suggests we think in terms of BREAKING.FEATURE.FIX for our versioning. Definitely worth a read.