Как я могу комбинировать семантические версии? - PullRequest
1 голос
/ 04 апреля 2019

У меня есть продукт, который поставляется в двух форматах: отдельные пакеты и комбинированная единая упаковка.Один пакет программно генерируется из отдельных пакетов.Семантические версии отдельных пакетов определяются и устанавливаются вручную.

Как рассчитать семантическую версию для отдельного пакета на основе семантических версий каждого отдельного пакета, которые соблюдают правила семантического управления версиями отдельных пакетов?

В целях обсуждения предположим, что у меня есть три отдельных пакета:

a - 1.0.3
b - 2.1.0
c - 1.1.1

Как рассчитать версию отдельного пакета?

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Если вы хотите создать уникальную версию для каждой комбинации из трех, самый простой способ - явно показать каждый компонент:

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 к окончательной версии пакета.

0 голосов
/ 05 апреля 2019

Числа станут довольно большими, но одним из решений является суммирование отдельных компонентов:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...