I have an app that is made up of multiple different components, each with their own version number and history. I would like to create a version number of the entire application, preferably somehow based on the version numbers of the components. I am not sure if this is possible at all, but I would like:
The version number be unique for each version of the components, so that when I upgrade the version number of one of the components, the version number of the whole app will change as well, and the number must not be ambigous so that it could refer to some other constellation of components.
It would be nice if there was a way to reverse the process to go from a combined version number to see what versions of components it consists of.
It is also nice if the combined version number is not too long to remember
It's a plus if the combined version number always increases with the increase of a component version number.
I am aware that some of these desires are not possible to accomodate together (such as short AND reversable since you would lose information when shortening)
The easiest approach is of course to just add the version number together in a long row, but that would be too long to be practical. Another is to create some kind of hash, but it would not be very readable.
Is there a standard way of doing this? Or will I have to name the major version manually and take note of what component versions it consists of?