Якщо класична схема семантичного версії "MAJOR.MINOR.PATCH" має сенс, залежить від того, до кого ви розгортаєтесь, і особливо, коли і як часто ви розгортаєтесь до кінцевого користувача . Схема найбільш корисна, якщо ви працюєте зі стабільним випуском "4.5", де ви починаєте з 4.5.0. Версії 4.5.1, 4.5.2 тощо містять лише виправлення помилок, тоді як ви вже працюєте над версією 4.6.
Наприклад, якщо ви надаєте "стабільну гілку" для свого кінцевого користувача, надайте їй версію 4.5.0 для початкового розгортання та 4.5.1, 4.5.2 кожного разу, коли випускаєте виправлення. У вашій внутрішній "спритній" розробці та розгортанні середнього спринту ви вже можете мати версію 4.6, просто називати її "бета-версією". Кожного разу, коли ви розгортаєте його у середині спринту, додайте автоматично створений номер збірки на зразок "4.6.beta build 123". Коли ваш спринт закінчиться, призначте його "4.6.0" і перемкніть номер версії для наступного спринту внутрішньо на "4.7". Починаючи з ".0" - це лише умова, ви також можете використовувати ".0" для тегування бета-версій і починати з ".1" для своїх кінцевих користувачів. ІМХО слово "бета" набагато виразніше, говорить усім спринт "ще не завершено".
Якщо ви випустите повний журнал змін кінцевого користувача з кожною бета-версією, вам належить, але принаймні наприкінці спринту журнал змін повинен бути заповнений, і щоразу, коли ви надаєте виправлення помилок кінцевому користувачеві, ви також повинні оновити документи історії.
Ви знайдете стратегію випуску двох відокремлених гілок, однієї "стабільної" гілки з семантичними номерами версій та "гілки розвитку", позначеної номерами збірки або чогось подібного, у безлічі продуктів з відкритим кодом, таких як Inkscape, Firefox або 7-zip.
Якщо, однак, ви не працюєте з окремими гілками стабільності та розробки та випускаєте нову версію для кінцевого користувача щодня, ви також повинні збільшувати номер версії щодня. У такому випадку номери версій "4.5.1", "4.5.2", ..., ймовірно, відображають ваші окремі розгортання, і не вказують на різницю між виправленнями помилок та іншими змінами. Це може бути нормально, це просто не класичне "семантичне перетворення". У цьому сценарії ви також можете розгорнути версії 4.5, 4.6, 4.7, 4.8, що не дає реальної різниці.
Що стосується вашого запитання щодо записів у вашому журналі змін: IMHO, коли щось видно кінцевому користувачеві, варто записатись у журналі змін, як тільки ви розгорнете зміни. Наприклад, якщо ви користуєтеся перемикачами функцій та вносите зміни до певної напівзапеченої функції, яка ще не активована користувачем, вона не належить до журналу змін. Якщо ви робите лише рефакторинг, без видимих змін для користувача, це не належить до журналу змін. Якщо ви виправите помилку, яка могла вплинути на деяких користувачів, вона, безумовно, належить до журналу змін - і це слід згадати там же, коли ви розгортаєте помилку. І не має значення, випускаєте ви щодня чи щомісяця чи щороку.