Global Build Number

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.

See also:

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...

Comment actions Permalink

A related feature I would love to see is being able to arbitrarily "diff" two builds.

The diff should show:

  • Changes included in the later build but not present in the earlier build
    • Should work recursivly through the snapshot dependencies
    • For git, should also show removed or rebased changesets
  • Artifacts that are different between the two builds

Just think how nice this would be to generate release notes. Just diff two release builds.

Comment actions Permalink

I've created a feature request to address build numbers that reflect unique sources state: TW-21162.


Please sign in to leave a comment.