Я пояснював пропоновану систему збирання (Gradle / Artifactory / Jenkins / Chef) до одного з наших старших архітекторів, і він зробив зауваження, що я начебто НЕ згоден з, але я не досвідченими досить , щоб дійсно зважуванням на.
Цей проект створює бібліотеку Java (JAR) як артефакт, який слід використовувати повторно іншими командами. Для версій я хотів би використовувати семантичний підхід:
<major>.<minor>.<patch>
Де patch
вказує на виправлення помилок / аварійних ситуацій, minor
вказує на сумісні з випуском випуски та major
вказує або на масові рефакторації API та / або на зміни, несумісні із зворотом.
Що стосується доставки сюди, я хочу: розробник здійснює якийсь код; це запускає побудову до середовища QA / TEST. Деякі тести виконуються (деякі автоматизовані, деякі посібники). Якщо всі випробування пройдуть, то виробнича збірка публікує JAR нашому внутрішньому репо. До цього моменту JAR слід правильно розробити, і моє мислення було використовувати те, build.number
що автоматично генерується та надається нашим інструментом CI, щоб діяти як номер виправлення.
Таким чином, версія буде фактично такою:
<major>.<minor>.<build.number>
Знову ж, де build.number
це передбачено інструментом CI.
Архітектор відхилив це, сказавши, що використання номера збірки CI було "зловживанням" семантичним версією.
Моє запитання: чи правильно це, і якщо так, то чому? А якщо ні, то чому б і ні?