automatic versioning framework