Bots and multiple build systems

Now that we’re getting bots for more platforms, I think it’s becoming more important to make sure that our build system changes are tested across other platforms before committing. I know in the past we’ve had a system where people who were responsible for maintaining a particular platform would jump in and help when a build system change went in that broke their platform, but now that we are starting to get bots, I think the priority should be on keeping the bots green.

This means that people on Windows and Linux will need to checkin xcode project patches at the time of first submit, and people on Mac will need to check in CMake changes at the time of first commit.

I want to emphasize that this is more painful for the non-Mac people than it is for the Mac people, because CMake is edited without the use of a tool, so it’s very easy to do this on any platform, whereas editing the Xcode stuff cannot be done without Xcode. Regardless of that, we still need to do it IMO. I already have a Mac that I’ve gotten explicitly for this purpose. For people that don’t have a Mac, please either try to get one, or coordinate on IRC to have someone who does have one test make the Xcode fixes before comitting the patch.

For people on Mac who have no familiarity with CMake, you’re in luck. 90% of changes are very trivial to make. If all you’re doing is adding or removing a .cpp file, then all you have to do is add the name of the file to a list in the corresponding CMakeLists.txt file. For more complicated changes, I’m happy to help on #lldb IRC or on email.

We have bots that should be sending out emails about build breakages. If an email is not sent out, then that’s a bug that we need to fix with the bot and you shouldn’t be expected to stop what you’re doing when we finally notice a day or 3 later. But if you do get an email about a build breakage, please either fix immediately or revert if you cannot get a fix in under a half hour. Leaving bad changes in masks other failures, as the bots will not send out an email if a bot was red before and is still red.

We had this problem over the weekend where a bot was red, and someone checked in an LLVM change that broke LLDB on Linux. But no email was sent out, because the bot was already red. PLEASE MAKE SURE THE TREE STAYS GREEN.