It's a well known fact that versioning webparts is a real pain in the butt. Big Jim in DC and I have been pondering, searching the Internet and discussing what are some good ways to version web parts and features. Today we decided to do something about it and came up with a simple strategy. Use pre-build events to call a script that writes a value to the AssemblyFileVersion attribute of the assebmlyInfo.cs (sorry vb'ers your just going to have to modify the scripts on your own ). Then with another script read that value from the assemblyInfo.cs and write it to the feature.xml. The description attribute to be specific. That way from the user interface you can see the version and time built.
Jim wrote the script to update the Assembly and it can be found here.
This is what my pre-build events look like:
cscript /nologo ...