Looking Back on Homebrew’s First Year with Conservancy
byon February 2, 2017
This series covers new developments and exciting projects taken on by Conservancy member projects. To learn more about Conservancy member projects, or the non-profit infrastructure support and services offered by Conservancy, check out Conservancy’s Projects page. Please support Conservancy so we can continue to help all this important software.
There’s an app for that.
Need a way to download and save that cute cat video from YouTube so you can watch it offline? There’s an app for that. Want to collaborate with others using GitHub? There’s an app for that, too. But neither are in the App Store. Every day, hundreds of thousands of Mac users turn to Homebrew to download one of more than 3,000 useful software packages for their desktops and laptops that Apple does not include in its operating system and can’t be found in the App Store.
Since Max Howell began Homebrew in 2009 with the goal of creating an efficient package manager, over 6,000 people have contributed to the project. Max built the package manager to rely on software and libraries that come preinstalled in OS X and chose to limit support to recent versions of the Mac operating system so that the packages could be optimized as much as possible. Max delivered an early implementation and shepherded the project through 2013.
Mike McQuaid started contributing to Homebrew because he was an avid user. After employing Homebrew to outfit his work laptop with vital FLOSS software, he saw that there were ways that Homebrew could be improved. Mike rose from occasional contributor to maintainer to eventually become the project’s lead maintainer. Mike coordinates the technical aspects of the project, manages the vibrant community of volunteer contributors to the project and serves as Homebrew’s primary liaison with the Software Freedom Conservancy.
Software Freedom Conservancy recognized Homebrew’s technical and social successes and invited them to join as a member project in 2016. Software Freedom Conservancy was excited that they accepted the invitation and is proud to support them.
Mike was kind enough to spend some time answering questions about the project’s past success and its future goals.
We began the interview talking about the importance of having Homebrew join Software Freedom Conservancy. “I’ve been a fan of Software Freedom Conservancy for a long time thanks to using several of their member projects. Bringing Homebrew into Conservancy helps provide long-term security to the trickier financial and community aspects of Homebrew.” For example, Mike has been worried about the contingency plan for Homebrew so that its existence could outlive any single individual. Software Freedom Conservancy provides legal, fundraising and organizational support to this end.
On the technical merits, Mike described Homebrew’s cutting-edge architecture, implementation, and development practices. Every application available through Homebrew is described by a Formula. Each Formula is Ruby code and the process of adding and modifying Formulae is coordinated with Git. If a contributor wants to add a package for other Homebrew users to download and install, they can simply write a Ruby script and send a pull request to one of Homebrew’s maintainers.
Mike said that thanks to using Ruby and Git for describing Formulae and facilitating code changes, respectively, new contributors can make an immediate, positive impact on Homebrew. Using a popular language like Ruby and building a smooth workflow based on Git makes it easy for Homebrew maintainers and contributors to keep all of its Formulae up to date. Every day new features are added, bugs are patched and security vulnerabilities closed in Homebrew packages. If the process for updating Formulae was not as well designed as it is, Homebrew’s users could be stuck with outdated and insecure software.
The Homebrew community has spent significant time and energy building and implementing a continuous integration system. Continuous integration is a software development practice to test software for bugs every time new code is added. Every update to a Formula involves a modification to Homebrew’s code. Having an automated system to check Homebrew’s code every time a package is updated or added gives Homebrew’s developers assurance that the software is always ready for end users.
While Homebrew benefits from using the latest and greatest tools and techniques of FLOSS software development, it’s the active and vibrant community that really drives progress. Community is a very important part of Homebrew but such a positive, supportive, diverse community does not just happen. It takes leadership and Mike takes that role seriously.
In our interview, Mike talked extensively about the project’s commitment to community. Under his leadership, the project has established a code of conduct for its participants and created policies to encourage users to become committers, contributors to become maintainers and maintainers to become project leaders. Mike helped Homebrew create its code of conduct early on because he knew it would help create a more diverse community. While the code of conduct can be used as a tool to remove the rare disruptive member, it serves mostly to make explicit the community’s expectation that its members are to be respectful and welcoming to everyone who wants to join. “Homebrew is probably a little more diverse than your average open source project but it’s still woefully unrepresentative of society as a whole,” Mike said. “Homebrew has chosen to be proactive about diversity because studies have shown diversity makes better software and we don’t want anyone to feel alienated or excluded from our community based on who they are.”
This year Homebrew participated in the Outreachy internship program. Mike and the Homebrew team mentored Andrea Kao who worked on Homebrew’s continuous integration and testing system. Andrea said about her experience, “… [T]he Homebrew maintainer-mentors have all been so incredibly generous, encouraging, kind, and helpful to me over the past couple weeks and months. I’m so thankful for this generosity and for nabbing the Outreachy internship. In the space of two months, I’ve become an active member of several wonderful, worldwide communities—the community of Homebrew contributors, the Outreachy community, and the wider open-source software community.”
The project’s technical implementation and architecture and its commitment to building a positive, active community around Homebrew are evident from the number of its users and participants and the way they talk about the project. It is regularly among the top projects on GitHub. When version 1.0 was announced, a user commented, “[Homebrew is] great because the community is so vibrant, the user experience is so well thought out… it’s actually both a GitHub and Ruby showcase.”
Mike finished our interview by describing the project’s goals for 2017. The first goal is to improve support for installation of specific legacy versions of applications. There are many reasons why a user might need an older version of a package—to satisfy a dependency or to use a feature that no longer exists, for example.
The second goal is to improve Homebrew’s continuous integration system. As described earlier, having a continuous integration system is vital for a project like Homebrew whose code changes on a regular basis. Right now the system checks new code to make sure that it compiles. That’s a good start. However, new code could introduce bugs that are only evident when the software is run. In 2017, Homebrew will expand its continuous integration to test runtime functionality.
Conservancy is proud to have Homebrew as a member project and is excited to see what the future brings for the FLOSS package manager, its users and its community.
linux.conf.au is Like a Dream
byon January 31, 2017
I’m writing this on my way to Campus Party Brasil, and I’m finally able to report about and reflect on linux.conf.au. I’m still buoyed by the enthusiasm and passion exhibited by the Linux Australia community.
I hit the ground running in Hobart. The organizers invited me to give a presentation in the opening plenary to introduce Outreachy. I explained why we need the program, how it works on a basic level and shared the metrics that show that the program is succeeding in its goals. Chris Neugebauer, lead organizer and emcee for the week, then surprised the crowd by announcing that Outreachy would be the designated charity for the conference. Every year, LCA picks a charity and sells raffle tickets to raise money for the selected charity. Usually this is a local charity, so this year LCA focused on raising money to support interns in Australia and New Zealand.
The first two days of the conference were mini-conference days, each organized by a volunteer to have a day-long track on a particular topic. I proposed a GPL enforcement feedback session for the Linux kernel miniconf—the third in our series. So far each session has been on a different continent to make sure that people have a chance to weigh in all over the world. The session wasn’t recorded, as we wanted to make sure that attendees felt comfortable speaking candidly. James Scheibner of the University of Tasmania volunteered to take notes to make sure we kept track of what was said. The session was well attended. I didn’t count how many people were there, but others told me that it was somewhere between 80 and 100 people. I expected the session to be like the one at Linux Plumbers, with an immediate flood of thoughts about enforcement and Conservancy’s activities in particular, but instead this session started out as a Q&A. About half way into the designated time, I stopped the Q&A and specifically asked for feedback. When no one volunteered to speak, I goaded the audience a bit, eventually saying that if no one had any feedback I was going to take it that they were happy with Conservancy’s work. The audience burst into applause, and there were shouts of “thank you!” The positive response was just fantastic. We continued with Q&A and also brainstorming about things that can be done in the future. I also facilitated a discussion in the Legal & Policy miniconf on Tuesday, which included a lot of interesting discussion too.
The keynotes were all really good, and I would be remiss if I didn’t point to r0ml’s talk “Keeping Linux Great”. There’s a full write-up of it on Rodger Donaldson’s blog. As always, r0ml’s talk was a roller coaster ride, densely packed with thoughts and observations. I was especially surprised to see he included a slide with Conservancy’s logo between pictures of me and Bradley! He said (thanks to Rodger for transcribing this):
If you think I’m a bozo, you need to join Software Freedom Conservancy, because they’re the vanguard of trying to push free and open software into the future and preventing people like me from ruining it. And if you think that I have an excellent point and that this might be the future, we still need free software to build it. We still need somebody to be the rearguard to prevent the barbarians from overrunning us while we build this future. So if you agree with me you should join Software Freedom Conservancy.
The pictures of us were huge on the giant screen in Plenary Hall—Bradley turned bright red, much to my amusement!
I also gave a talk in the same room, called “Surviving the Next 30 Years of Free Software”. I plan to write a separate post about it, but the video is already up. This deals with a lot of issues I’ve been wrestling with about how our community transitions when more of us become incapacitated and pass away. It’s heavy stuff, and a hard topic to talk and think about, but it’s important. I appreciate the fact that this topic was chosen by the conference and that many in the Linux Australia community are receptive to the ideas I proposed.
There were so many great talks and an engaging hallway track. I recommend reading Kathy Reid’s write-up of her highlights. (Also at the conference Kathy was elected to the post of president for Linux Australia.)
People run down to make last-minute cash donations to fund a third Outreachy intern. Picture from linux.conf.au 2017 video.
The conference wound down with fantastic lightning talks (check out Rusty Russell’s) and then I was surprised to be called to the stage by Chris. Chris, ever the showman, walked us through an ever-increasing amount of money raised for Outreachy. First, he told us that they sold many more raffle tickets than they had anticipated such that they had to get three batches of tickets and differentiate them. Then, Chris announced that two anonymous donors matched amounts and that they raised enough to fund two interns, and Kathy announced that Linux Australia was donating AU$7000! With three interns within reach, Martin Krafft ran down to the stage and called for people to donate the last amount on the spot. And then a lot of people ran down with their cash! In the end, the conference raised enough money for three interns, and the 2018 team announced that they’ll sponsor tickets for all three interns and their mentors to attend LCA 2018 (plus I got to pick the raffle winners). It was an amazing way to end an amazing conference!
Many thanks to the LCA organizing team and the Linux Australia community for keeping such a magical community alive.
Update from On-Site at linux.conf.au 2017
byon January 19, 2017
Our Executive Director, Karen Sander, and I are both lucky to be here this week in Hobart, Tasmania at LCA (linux.conf.au) 2017. I wrote a blog post last year about how wonderful LCA 2016 was, and how important LCA is generally. LCA 2017 has not disappointed as it continues this excellent 18 year tradition.
LCA is among the few conferences that remain completely community-centric. Unlike many other Linux events, speakers at LCA are chosen by the volunteer organizers based on merit of talk proposals; talks are not for sale at any sponsorship price. The conference is assisted by the fiscal sponsorship of Linux Australia, who provide a non-profit organization that allows the volunteers to put together a truly community event.
As a result, here at LCA, I see upstream open source and free software developers sitting right next to the downstream users who use and maintain deployments of the systems those developers release. There is a friendly and collaborative conversation not just among paid employees of companies that adopt free software, but also individuals who cooperated as hobbyists, and those who aspire to be professionals in the field by attending to learn from others. The power of discussion in such an open and egalitarian environment is palpable and exhilarating. It shows that users and developers harmoniously work together in our community.
Karen and I both have been invited (and kindly funded by Linux Australia!) to speak here many years. This year, I have already participated in a MiniConf co-organized by Conservancy's Evaluation Committee Member Deb Nicholson, and (thanks to the great and efficient on-site AV team) that talk, called “A Beautiful Build: Releasing Linux Source Correctly” can already be viewed online, and so can Karen's main track talk entitled “Surviving the Next 30 Years of Free Software”. In fact, almost all the LCA talks are coming online within about 48 hours and there's a live stream of every room!, and they use free software to do it (of course).
So, if you missed the live stream of my and Karen's tutorial on copyleft earlier today, you'll be able to see it online soon.
We know that for many in the free software community, Australia is a long trip, and many of you can't be here on site for the hallway discussions, but the great content here is made available by the organizers on the Internet. Such hard work is essential to the global education about free software, and we all really appreciate it. (Karen is so excited about what's going on here that she's been giving back to this great conference by volunteering to be a track chair and mic runner for two other talks.)
Finally, I'd like to thank the conference organizers for getting excited about Conservancy's Outreachy project, as the on-site raffle this year is to raise money for LCA to fund an Outreachy intern to help with next year's conference. So, please donate to that if you can. Even if you are not at the conference, you can signup (noting you're not present in the signup comments) and still donate to the campaign (— even though you can't actually win a prize that way, you can use that method to donate to help LCA sponsor an Outreach intern).
I'll be headed back to the USA in just a few days, but I'll be anxiously awaiting for the CFP for linux.conf.au 2018 to open.
Compliance Feedback Sessions in 2017
byon January 13, 2017
While we continue our principled defense of copyleft software on behalf of developers who ask us to do it, Conservancy is committed to examining whether we’re doing things the best we we can. As we publicly promised, we’ve been running feedback sessions on GPL compliance to hear from everyone who is interested in our work.
Bradley conducted a session at Embedded Linux Conference Europe and Brett and I ran one at Linux Plumbers Conference. Both were informative and, honestly, reassuring. While there are some areas we can improve (as a free software organization, we know we can always improve!), our fundamental approach is sound and seems to be in line with what developers and other stakeholders would like us to be doing. Of course, we also have received some mixed messages. Some people strongly criticize us for not being aggressive enough, while others think our rhetoric is a little too strident. What’s been great is to have everything on the table and get people involved. As a public charity, we want to be sure that we are in fact acting in the public’s interest in everything we do.
We’ve got another feedback session scheduled next week at the Linux Kernel Miniconf at linux.conf.au on Monday afternoon. If you’re there I hope you’ll join us. I’ll also be facilitating a fishbowl discussion on GPL compliance at the Legal & Policy Miniconf Tuesday morning. Please let us know if you have any other suggestions for where we should hold more feedback sessions. We’ve been trying to strategically propose these sessions where they’ll be the most effective (we did propose a feedback session with an eye towards getting key corporate leadership feedback at the upcoming Open Source Leadership Summit, but the session was unfortunately not accepted). Other conferences we’ll be at this year include FOSDEM, Campus Party Brasil, SCaLE, LibrePlanet and OSCON. We’ll have a booth at most of these, so even if we don’t have a session please just stop by our booth and tell us what you think!
Lastly, I’d be remiss if I didn’t mention that there are only days left for us to earn our generous match from Private Internet Access. We’ve made great progress, but we’re only about 70% there! Please sign up as a Supporter - you’ll be donating to the support of our many member projects, copyleft defense, diversity work via Outreachy as well as the overall promotion and advocacy of free software. There’s still time for your donation to be amplified, but only if you sign up now!