Если вы хотите создать уникальную версию для каждой комбинации из трех, самый простой способ - явно показать каждый компонент:
a - 1.0.3
b - 2.1.0
c - 1.1.1
mainprog-a1.0.3-b2.1.0-c1.1.1
Это поможет вам идентифицировать каждый отдельный компонент, составляющий единое целое.Это немного длинно, поэтому вы можете хэшировать альтернативу:
sha256(a1.0.3-b2.1.0-c1.1.1)[1..10] = 6b5da1e87f
Вы хотите сохранить таблицу каждой суммы в базовых компонентах, которые ее составили, чтобы вы могли легко найти компоненты.Либо это, либо вы можете найти вместо этого обратимый алгоритм хеширования.
Конечно, вы можете просто сложить числа, как в другом ответе:
a - 1.0.3
b - 2.1.0
c - 1.1.1
result - (1+2+1).(0+1+1).(3+0+1)
result - 4.2.4
Но здесь неоднозначно, какие три компонента составили 4.2.4.Вы должны были бы придумать некоторую запутанную математическую формулу, чтобы отдельные версии всегда добавляли отображение 1-к-1 к окончательной версии пакета.