Hope I am not hijacking my own thread that much; after all, the word "versions" is in the title. I don't agree that version numbers should be meaningless. Semantic Versioning is not meaningless and it is very well spelled out what is meant by it. Refer to https://semver.org/ For the in-house programs that I manage, I use Semantic Versioning which provides me with real life benefits, for example, dependency compatibility and long term support. For example, let's say: - program B V4.2.1 is the latest production version at the time program A is written - program A depends on B to do some processing; to that end, A knows how to put together the input for B and knows how to read its output, too What I do in the launcher for A is to specify that it requires B V4.x; meaning, it should pick up the greatest version 4 available. In this way, program A benefits from any bug fixes done on B and released in, say, V4.2.2, V4.2.3, etc. ; or even from backwards compatible enhancements in B released in versions V4.3.x, V4.4.x, etc. When program B V5.0.0 is released, program A knows not to use it since it is not backwards compatible; and, so, program A does not break and continues to work just fine. Of course, this requires that a program release does not over-write the previous version so that one ends up with just one version (the leates) deployed; instead, I must keep all version out there, or at least the latest from every major release. Those are my 2 cents. Germán