Ich verwende keine (automatische) Build-Nummer. Ich zähle die manuell hoch, bei jeder Veröffentlichung (auch Testversionen). Dabei verwende ich nur 1 Stelle, so dass ein Überlauf in die nächsthöhere Stelle erfolgt und ein enstprechendes Setzen auf Null. Die Folge ist, dass es Lücken im Produktiveinsatz bei den Buildnummern gibt (also an der letzten Stelle).
Ich verwende auch eine "dynastische" Versionsvergabe, wenn es mal einen umfangreichen Sprung gab. Dies aber bloß als Zusatz, damit sich die User das leichter merken können. Dafür Suche ich mir für jedes Programm oder Paket etwas entsprechendes aus (Pharaonen, griechische Götter etc.). Das wird ja seit Jahrzehnten z.b. bei Intel (aber meist mit Städte- oder Regionsnamen) gemacht. Android verwendet Süßigkeiten
Ergebnis ist dann sowas wie "1.9.2.7 (Hephaistos)"