How does assembly versioning work?