Whilst I was waiting at Changi Airport waiting for my flight to Cairo I created a new branch of the TFS Dependency Replicator code. The change that I have been making is changing the code so it uses IBuildDefinition and IBuildDetail instances instead of BuildData instances. In doing so I made it aware of the alternative configuration paths for the build directory (where the TFSBuild.proj file is located).
The implication is that the traditional location of the TeamBuildTypes folder may no longer be valid. Instead it will look for the DependencyReplicator.xml file in the same directory as the TFSBuild.proj file. The side effect (implications leading to side effects, is that like a double pointer?) is that the BuildType property on the Rule element is no longer required, rather it is implied by the location of the DependencyReplicator.xml file.
Before I unilaterally go and change the Trunk with this change I want to implement the code so it falls back to its original behaviour but I also wanted to know what others thought. There are a few other issues that I need to address in a future release:
- Performance, at the moment it is a very heavy poll mechanism. I avoided TFS evening because of previous reliability experiences, but and event based model would be better.
- Plug-ins. Birgir Stefansson is going to be working on the code base soon and wants the rule base system to be more configurable, I can grok that but I’d be interested in others thoughts about how plug-ins would be useful.