I would really like to see build numbers generated globally, preferably as a direct map between a hash derived from the current VCS root changesets and all their dependencies and an integer.
The big advantages of doing this are:
- If you do builds on multiple platforms, but using the exact same source configuration, you get the same build number.
- Build numbers can reliably used in version numbers.
- A single number reliably identifies a source code configuration. Currently, you need both the build task name and the build number - if you choose to go that way.
I recently built a system that manages it, and it has proven to be a wonderful platform to add in additional metadata, for example builds included in the current build, changeset descriptions etc.
Note that I was totally thrilled by the fact that TeamCity 7.0 now propagates changeset descriptions through snapshot dependencies. The super cool step would be to be able to "diff" two builds. Just imagine: you can take the previous release build, diff it with the current release build, and presto: instant release notes...