In our build system, we pull in external sources and try to build them. I recently made some changes to improve how we deal with in-house modifications to the external sources. The fact is, in-house modifications will not successfully apply if they are not applied on to clean external sources. The sources _will_ be clean the first time you build the external, but not the second time since they were made dirty from having in-house changes applied to them the first time. So, since we usually don’t have to try building an extern more than once, 95% of the time everything will be okay. But, 95% is not very good, so I added a line to clean the external sources before trying to patch them. This is sensible. The only drawback is that this put a small dependency on our build system which required that we enable one more built-in extension in our version control tools.
Today, the developer above me just committed a changeset that removed that line I wrote. So, now, if one does not successfully build the external, they not only have to deal with that problem but they will also have to fix our builder or manually clean their sources as the build system will halt after failing to apply our in-house modifications. On the bright side, now we are down one less dependency!
So the lesson learned is that rigour is bad, and cutting corners is good if you can cut down on dependencies (which can be satisfied by adding one line to your .hgrc file) and produce numbers that management will interpret as favourable…
Recent Comments