Здається, це очевидно, але: мета номерів версій - це легко визначити, яку версію програмного забезпечення хтось працює.
Якщо є шанс, що хтось отримає доступ до певної ітерації коду, і в іншому випадку не зможе визначити унікальний ідентифікатор, тоді ця ітерація повинна мати унікальний номер версії. Я вважаю це "першим правилом". Як наслідок, окремі випуски, очевидно, хочуть чітких номерів версій.
Однак, все більше грає:
Один із способів бути впевненим у цьому - збивати номери версій з кожним комітом, але це, як правило, не є хорошою ідеєю. Для відносно невеликої зміни може знадобитися кілька комітетів / ітерацій, і зовнішньому світу це заплутано, щоб побачити версію 0.0.1 -> 0.0.2 внаслідок великої кількості накопичених змін, а потім 0,0.2 -> 0,0 .56, оскільки хтось, що вчинив пробіл, виправляє один файл за один раз і нічого не змінює.
Наскільки далеко вниз від "однієї версії за повний випуск" до "однієї версії за кожну комісію" насправді залежить від вас, інших користувачів та систем, які ви готові використовувати для заповнення прогалин.
Я особисто звик працювати над малими проектами, і я з задоволенням використовую git хеші, поки не використовуються версії, якими користуються інші, і bump-версії для кожного з них (незалежно від того, як мало людей я очікую на це). Однак у великих компаніях та великих проектах використовується щось поза семантичним номером версій, але меншою точністю, ніж кожна комісія, як нумерація кандидатів у випуску. Вони мають переваги, але додають складності.