Dynamically generate version