Итак, на офф ресурсе кратко написано
https://semver.org/lang/ru/
Учитывая номер версии МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ, следует увеличивать:
МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.
МИНОРНУЮ версию, когда вы добавляете новый функционал, не нарушая обратной совместимости.
ПАТЧ-версию, когда вы делаете обратно совместимые исправления.
Дополнительные обозначения для предрелизных и билд-метаданных возможны как дополнения к МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ формату.
С мажором всё понятно, тут вопросов нет. С минором в принципе тоже, особенно когда мы добавляем целые разделы (в приложении) или новые точки входа (в api)
А вот что делать когда в приложении (да я знаю что semver разрабатывался для api, там везде только и видишь api api, а мне нравится semver я хочу везде ее использовать), в одной таблице добавились новые столбцы - это патч или минор? (вроде как патч, ведь толком ничего не поменялось, но вроде как новый функционал)
В подробном описании написано что патч это только исправление багов (а если "забыли" добавить этот столбец таблицы, это считается за баг?)
Патч-версия Z (x.y.Z | x > 0) ДОЛЖНА быть увеличена только если содержит обратно совместимые баг-фиксы. Определение баг-фикс означает внутренние изменения, которые исправляют некорректное поведение.
Или вот еще пример:
Изменён код определения mime-типа загружаемого файла, была одна функция, а теперь загружена сторонняя библиотека и проверка делается с помощью нее, по сути в коде поменялась одна строчка. Это уже минор и считается новой фичей или это рефакторинг и считается патчем? Ведь теоретически со старой функцией могли быть в будущем проблемы, а с новой этих проблем не будет
А в подробном описании минора указано
Она МОЖЕТ включать в себя изменения, характерные для патчей.
Может просто забить на патчи и пользоваться только мажор.минор и вопросов не возникнет ))