Nesse caso específico, é um bug em uma API de uma biblioteca usada internamente que outros desenvolvedores usam.
Se esses outros desenvolvedores pensaram que o comportamento era um recurso, é provável que eles o tenham usado e que tenham desenvolvido software funcional . A correção do bug provavelmente quebrará o código existente e eles o culparão por isso. Isso torna a correção do bug uma troca e você deve considerar
é realmente importante corrigir o erro, por exemplo, porque há um alto risco de permitir que os usuários da sua API travem seus aplicativos caso o bug não seja corrigido? Ou isso é apenas sobre a consistência da API?
ou é mais importante manter o software existente estável e sua biblioteca compatível com versões anteriores?
A resposta para a pergunta nem sempre é simples: você deve levar em consideração o número possível de usuários da sua API, a quantidade potencial de trabalho que eles terão para alterar o software deles, a quantidade de software que será interrompido se você alterar a API. , mas também os riscos do que pode acontecer se você não corrigir a API.
Só porque você documenta a alteração de correção de bug em uma "lista de alterações mais recentes em sua próxima versão principal" não deixa seus clientes satisfeitos - se você fizer isso, deve haver pelo menos algum raciocínio à prova de balas por que você não pode deixar a API como ela foi antes. Muitas vezes, manter a compatibilidade com versões anteriores é mais importante do que corrigir um bug. Portanto, corrija-o apenas se você puder estimar o impacto na base de usuários e no software deles e tiver certeza de que não fará esforços irracionais para eles quando tentarem atualizar para a versão mais recente da biblioteca. E se você não tiver informações suficientes para fazer uma boa estimativa sobre isso, provavelmente será melhor não mudar o comportamento.
(E sim, se você deseja fazer uma alteração na API que não seja compatível com versões anteriores, os números de versão devem expressar isso claramente, não importa se você o nomeou como "correção de bug" ou não).