An automated review and testing system for the Homebrew OS X package manager to speed up handling community contributions.
Homebrew is an OS X package manager that installs the stuff you need that Apple didn’t. We have thousands of packages (known as formulae) and contributions from thousands of users.
But Homebrew has a problem - we got too popular! Homebrew now receives so many contributions from users that our team of six has a hard time keeping up with them. Testing builds and making binary packages (known as bottles) are time-consuming and it's hard for a given developer to have every possible configuration set up to test with.
Enter brew test-bot. CI for Homebrew is challenging, given all of the OSs and Xcode combinations we support. brew test-bot will be set up on multiple Mac Minis with VMs of every OS X version we support.
How it works
Every time a commit is made or a pull request is submitted brew test-bot will be notified by Jenkins to automatically download the code and run a build on every one of its VMs. Once they finish, brew test-bot will post the results to the issue to let us know that it's ready to be pulled or what needs to be fixed before it can be.
Much of the brew test-bot code is already done and shipped with Homebrew right now! We've tested it and the Jenkins integration using non-final hardware and are confident it's close to ready to roll out.
With your help, we'll purchase multiple Mac Minis to dedicate to brew test-bot and set it up with VM images of every supported version of OS X. Once the hardware is set up in a data centre we can get to work testing brew test-bot and finish up the code. If all goes well, we hope to get it ready for production before April.
How will this affect Homebrew?
Once we're up and running new releases of software, bugfixes and community contributions should be available much quicker in Homebrew. We'll be able to provide bottles (binary packages) for more formulae and provide automated feedback even when we're sleeping.
Who is running this project?
Risks and challenges Learn about accountability on Kickstarter
The code is mostly written and tested on other hardware so there should not be a problem delivering brew test-bot. There may be possible delays with some further functionality as it's dependent on Homebrew developer time but we've planned to work on this following the (hopefully successful) Kickstarter conclusion.
After funding we will need to order the various rewards and, although we have sourced suppliers, there may be unforeseen setbacks here which we would keep you informed about.
We've priced these items but not finished the final designs yet. Trust us though, they will look great!
The initial goal was planning for a single, mid-range Mac Mini running all the OSs we support on a single box with VMs running in a Homebrew developer's house. If we get enough money we'll have one Mac Mini per-OS running in a colo with decent bandwidth so we can self-host more of our current services and provide better uptime than we have relying on third-parties. Anything beyond this will basically be spent sensibly on future Homebrew development (so we don't have to ask for money again in the near future). Homebrew has its own UK bank account so you don't need to worry about your money, it will be handled correctly and professionally.