La prima cosa che dovresti fare è assicurarti che i tuoi test siano migliorati, in modo che almeno uno fallisca con il codice corrente e passi quando viene corretto su come avrebbe dovuto funzionare.
Successivamente, se possibile, canvas i tuoi utenti. A volte è facile, ad esempio se si tratta di una licenza a pagamento, potenzialmente si hanno i dettagli di contatto per ogni cliente. Se si tratta di una libreria OOS, potresti non avere idea di chi la usi. Ma se puoi avvisarli, fallo e dai loro feedback se interromperà il loro codice.
Se non riesci a comprimere gli utenti, devi stimare la probabilità che rotti il codice di qualcuno. Quanto è oscuro un bug? Il solo dire "è stato lì fin dalla v1" non dà molto senso a questo. Quanti anni fa è stato rilasciato v1? Quanti 10, 100, 100.000 utenti hai? Se la discrepanza è svantaggiosa per l'utente, allora la probabilità di rompere le cose è inversamente proporzionale a no. di utenti * tempo. Se, però, il codice funziona in un modo che è vantaggioso, allora sarà proporzionale (e direi che dovresti correggere i documenti in quel caso, non il codice).
Se è molto probabile che il codice si rompa in modo significativo, per molti utenti, diventa una release importante. Se è davvero improbabile rompere il codice, falla diventare una patch. Ma anche, prendere in considerazione la probabile reazione a questa correzione. Si sono lamentati centinaia di persone? Se è così, tendi verso un'importante release solo per promuovere il fatto che sia stato corretto. Se nessuno lo ha segnalato, inclinati nuovamente verso una patch.
In conclusione, devi valutare un gruppo di fattori specifici per la tua situazione e sceglierne uno. E ricorda, non importa quale scegli, qualcuno si lamenterà; questa è solo la natura umana:)