Use semantic versioning (X.Y.Z) so version numbers are meaningful, not arbitrary. Patch updates should fix bugs or improve logic/performance without changing visible behavior. Minor and major updates ...