Здається, що ви обминаєте звичайні умови лише для того, щоб уникнути накладних витрат / аудитів. Це ... вражає мене як щодо.
Що ви робите, це ефективно робити додатковий номер версії (ваш незначний показник PCI) дещо навмисно, щоб перенести свою функцію / незначні номери версій назад на місце, щоб більше не викликати ваші критерії внутрішнього аудиту.
У будь-якому випадку, діючи до вашого питання про семантичну версію, специфікація для семантичної версії говорить:
Враховуючи номер версії MAJOR.MINOR.PATCH, збільшуйте:
- ОСНОВНА версія, коли ви вносите несумісні зміни API,
- МІНОРОЖНА версія, коли ви додаєте функціональність у сумісному сумісному режимі, і
- Версія PATCH, коли ви робите назад сумісні виправлення помилок.
- Додаткові мітки для попереднього випуску та збирання метаданих доступні як розширення до формату MAJOR.MINOR.PATCH .
Наголос мій.
Отже, питання полягає в тому, чи використовуєте ви четвертий символ для передвипуску / збирання метаданих? Або це в основному ще одна вказівка на версію, що випускаєте?
Якщо "так", то параметри семантичної версії цього дозволяють. Якщо "ні", то ви технічно не дотримуєтесь смислової версії.
І як питання вищого рівня та більш спірне питання, чи це насправді навіть важливо?
Хочете ви жорстко слідувати цьому чи ні, це рішення, яке ви повинні приймати з вашою командою. Метою семантичної версії є допомога в сумісності API:
Виправлення помилок, що не впливають на приріст API версії патча, додатково сумісні додатки API / зміни, збільшуючи незначну версію, і назад несумісні зміни API збільшують основну версію.
Я називаю цю систему "семантичною версією". За цією схемою номери версій та спосіб їх зміни передають значення основного коду та того, що було змінено з однієї версії на іншу.
Це система, яка допомагає зробити це більш зрозумілим, коли версія впливає на нижчих користувачів API.
Поки ваш API аналогічно зрозумілим, який шлях ви виберете не дуже. Семантична версія просто виявляється простою, наприклад, якщо я використовую 3.4.2 і мені потрібно оновити до 3.4.10, я знаю, що можу це зробити, нічого не порушуючи. Якщо нова версія 3.5.1, я знаю, що вона сумісна назад. І я знаю, що версія 4.0.1 була б суттєвою зміною.
Це все, що означає номери версій.
@enderland Так, в основному. ГОЛОВНА (PCI) .MINOR (PCI) .FEATURE.HOTFIX + BUILD. В основному нам дозволяється лише змінювати 3-й та 4-й компоненти, не втягуючи PCI (а згодом і PCI суперлідер у компанії). Мені здається, що це трохи надумано, я не впевнений, що вони виправдані в тому, як вони керують номером версії, але я не знаю достатньо про PCI та процес аудиту, щоб сказати інше.
Гаразд, це добре. У вас є система, яка працює для вас і відповідає вашим потребам. У цьому сенс версії.
Якщо ваш API приватний (лише внутрішній), це не має значення, як ви оновлюєте версію, якщо це має сенс для вас і всіх, хто її використовує. Якщо версія в стандартному форматі має значення, коли у вас є багато інших споживачів вашого API, які повинні знати, "що означає ця версія?"
Наявність довільної версійної системи може заплутати людей, які звикли до інших систем, таких як семантична версія. Але якщо ніхто не реально використовує вашу систему версій, крім людей, які її створюють - це насправді не має значення.