I think MS-DOS already used in the 80s what you call "semantic" versioning. (Most probably even earlier examples, this is just the first thing that came to mind.)
Semantic versioning is not what I call it, it’s a formal specification: https://semver.org/