Se o esquema clássico de versão semântica "MAJOR.MINOR.PATCH" fizer sentido, depende de quem você implanta e, principalmente, quando e com que freqüência você implanta no usuário final . O esquema é mais útil se você trabalha com a versão estável "4.5", onde começa como 4.5.0. As versões 4.5.1, 4.5.2 e assim por diante contêm apenas correções de bugs, enquanto você já trabalha internamente na versão 4.6.
Por exemplo, se você fornecer uma "ramificação estável" ao usuário final, forneça uma versão 4.5.0 para a implantação inicial e 4.5.1, 4.5.2 sempre que você lançar um patch. No seu desenvolvimento "ágil" interno e na implantação no meio do sprint, você já pode ter uma versão 4.6, basta chamá-la de "versão beta". Sempre que você implantá-lo no meio do sprint, adicione o número de compilação gerado automaticamente como "4.6.beta build 123". Quando o seu sprint terminar, atribua a ele "4.6.0" e troque o número da versão do próximo sprint internamente para "4.7". Começando com ".0" é apenas uma convenção, você também pode usar ".0" para marcar versões beta e começar com ".1" para seus usuários finais. IMHO a palavra "beta" é muito mais expressiva, dizendo a todos que o sprint "ainda não está concluído".
Se você liberar um log de alterações completo do usuário final com cada versão beta, é sua escolha, mas pelo menos no final do sprint, o log de alterações deve ser concluído e, sempre que você fornecer uma correção de bug ao usuário final, também deverá atualizar os documentos históricos.
Você encontrará a estratégia de liberar duas ramificações separadas, uma ramificação "estável" com números de versão semânticos e uma "ramificação de desenvolvimento" marcada com números de compilação ou algo semelhante, em muitos produtos de código aberto como Inkscape, Firefox ou 7-zip.
Se, no entanto, você não trabalha com ramificações estáveis e de desenvolvimento separadas e libera uma nova versão para o usuário final diariamente, também deve incrementar um número de versão diariamente. Nesse caso, os números de versão "4.5.1", "4.5.2", ... provavelmente refletirão suas implantações individuais e não indicarão a diferença entre correções de erros e outras alterações. Isso pode ser bom, simplesmente não é mais o "versionamento semântico" clássico. Nesse cenário, você também pode implantar as versões 4.5, 4.6, 4.7, 4.8, que não dão diferença real.
Em relação à sua pergunta sobre entradas no seu log de alterações: IMHO quando algo estiver visível para o usuário final, vale a pena uma entrada no log de alterações, assim que você implantar a alteração. Por exemplo, se você usar alternâncias de recursos e fazer alterações em algum recurso incompleto que ainda não esteja ativado para o usuário, isso não pertence a um registro de alterações. Se você apenas refatorar, sem alteração visível no usuário, isso não pertence a um registro de alterações. Se você corrigir um bug que possa ter afetado alguns usuários, ele definitivamente pertence ao changelog - e deve ser mencionado lá ao mesmo tempo em que você implanta o bugfix. E não importa se você libera diariamente ou mensalmente ou anualmente.