Версия продукта обычно не существует как отдельная сущность, поскольку не несёт в себе никакой смысловой нагрузки. Если ваш сайт состоит из набора сервисов - хватит их версионирования, нет смысла его "объединять"
Станислав Макаров, может это больше организационный момент или что-то у меня не складывается
История
Есть milestone = сейчас у нас интерпретируется, как выпускаемая версия релиза. Куда могут входить разные версии сервисов, каждый сервис используем TBD.
Планируется внести некий функционал в выпускаемый релиз.
Соответственно в клиентском и серверном приложении и всех связанных сервисах, которые требуют изменений , заводится ветка, название которой совпадает с планируемым релизом, к примеру 2.3.
И в это и заключается сложность, т.к могут использовать доп. сервисы который должны попасть в этот релиз, но они не требуют изменений, у них версия 1.1. Да и клиенту может не требоваться никаких изменений, но ему все равно заводится ветка, название который совпадает с выпускаемым релизом, для контроля совместимых версий.
Плюс могут разрабатываться, несколько параллельных версий релиза.
Вы пытаетесь решить несуществующую проблему.
1. Нет никакой проблемы в том что два разных приложения (клиент и сервер) имеют разную нумерацию.
2. semver нужен только если у тебя есть какой-то контракт, который тебе нужно соблюдать. Если контракта нет - можно использовать просто номера релизов.