Todo mundo escolhe o que quer fazer com esses números. Fui tentado a chamar releases de abc, já que é bastante bobo. Dito isto, o que vi nos últimos 25 anos de desenvolvimento tende a funcionar dessa maneira. Digamos que o número da sua versão seja 1.2.3.
O "1" indica uma revisão "principal". Geralmente, este é um release inicial, uma grande alteração no conjunto de recursos ou uma reescrita de partes significativas do código. Depois que o conjunto de recursos é determinado e pelo menos parcialmente implementado, você passa para o próximo número.
O "2" indica um lançamento dentro de uma série. Freqüentemente usamos essa posição para nos atualizarmos com os recursos que não chegaram à última versão principal. Esta posição (2) quase sempre indica uma adição de recurso, geralmente com correções de erros.
O "3" na maioria das lojas indica uma liberação de patch / correção de bug. Quase nunca, pelo menos no lado comercial, isso indica um recurso significativo. Se os recursos aparecerem na posição 3, provavelmente é porque alguém fez o check-in antes que soubéssemos que tínhamos que fazer uma correção de bug.
Além da posição "3"? Eu não tenho idéia de por que as pessoas fazem esse tipo de coisa, fica mais confuso.
Notavelmente alguns dos OSS por aí jogam tudo isso fora de moda. Por exemplo, a versão 10 do Trac é realmente 0.10.XX Eu acho que muitas pessoas no mundo OSS não têm confiança ou simplesmente não querem anunciar que eles têm um grande lançamento.