DDD EA – Lightning talk 1 – versioning
Versioning by Toby Henderson @holytshirt
.net was supposed to stop DLL hell but nothings changed. It helps with some things but lot of people still don’t understand.
Versioning is to give a unique name or number to a piece of software but there’s lots of different ways to do it.
In .net is minor major build revision.
Suggested to use minor.major.patch with optional prerelease/alpha/beta keyword on the end. Also don’t use negative numbers.
Everyone knows assemblyversion. This is the version number you are compiling against. If the version changes, you need to recompile
Assemblyfileversion where build servers build same files but on different machine. This is also used in production to select which version of the file it’s updated. If this value is not present we fall back to assembly version
Also available is assemblyibformationalversion. This is used to determine product version of a collection of dll but this isn’t used.
A myth of versioning is that only major.minor are used. It did used to do this is .net 1 beta 1 but hasn’t since.
Versioning is important: if the release is backwards compatible don’t change the assembly version. Only change this if there are breaking changes.