A versioning scheme for end-user software