[JLBP-3] Use Semantic Versioning

Semantic versioning is a convention in which “version numbers and the way they change convey meaning about the underlying code and what has been modified from one version to the next.” It has a detailed specification that lays out a number of rules designed to align with common practice.