Mike McQuaid on 16 years of maintaining Homebrew | Episode 5 | The GitHub Podcast

By GitHub

Share:

The GitHub Podcast: Interview with Mike McUade of Homebrew

Key Concepts:

  • Homebrew: A package manager for macOS, simplifying the installation of open-source and other software.
  • Package Manager: A system for automating the process of installing, upgrading, configuring, and removing software packages. (e.g., MacPorts, apt, yum)
  • Maintainer: An individual or team responsible for the upkeep, development, and support of an open-source project.
  • Bus Factor: A measure of the risk to a project if key people become unavailable. A low bus factor indicates high risk.
  • DSL (Domain Specific Language): A computer language specialized for a particular application domain. Homebrew uses a Ruby-based DSL for defining package installations.
  • Contributor Funnel: The process by which new contributors are onboarded and become active participants in a project.
  • Open Source Governance: The structures and processes used to manage and guide open-source projects.
  • AI-Assisted Development: Utilizing Artificial Intelligence tools (like GitHub Copilot) to aid in software development tasks.
  • Spectrum Development: A methodology for building software that focuses on understanding the user's needs and context.

I. Introduction & Homebrew’s Origins

The podcast features an interview with Mike McUade, the project leader of Homebrew, a widely used package manager for macOS. Homebrew is described as an “app store for open-source software in your terminal,” facilitating the installation of tools like databases and programming languages. It’s estimated to be installed on tens of millions of Macs globally. The podcast highlights McUade’s extensive 16+ year involvement with the project, making him a highly experienced open-source maintainer.

Homebrew originated from Max Howell’s frustration with MacPorts while working at a London startup. Howell created a “beer-themed package manager” as a result, and McUade initially became involved as a user and contributor shortly after its creation. Early contributions were submitted via IRC and direct commits to Howell’s repository, predating GitHub’s pull request functionality. McUade quickly became a maintainer, a role he continues to hold today.

II. Homebrew’s Growth & Maintainer Team

The Homebrew maintainer team has grown significantly from its initial two members (Howell and McUade) to 29 as of the recording date. While not all maintainers are actively involved daily, roughly half contribute on a weekly basis. This growth is notable considering Homebrew’s massive user base. The project boasts a 100:1 ratio of contributors to maintainers, a statistic McUade attributes to a deliberate strategy of empowering contributors rather than solely relying on maintainers to do all the work.

III. The Homebrew Philosophy: Automation & Contribution

McUade emphasizes Homebrew’s focus on automation and ease of contribution. The project utilizes a readable Ruby-based DSL for defining package installations, making it accessible even to those with limited programming experience. A key feature is a single command that automates the process of creating a pull request for version updates, significantly lowering the barrier to entry for new contributors.

The team prioritizes shifting human review into automated tests, employing a “shift left” approach to quality assurance. Integration with editors like VS Code provides inline guidance and auto-formatting, further streamlining the contribution process. This focus on reducing friction is central to Homebrew’s success in attracting and retaining contributors.

IV. Maintaining a Large Open-Source Project: People & Culture

McUade discusses the challenges of maintaining a large open-source project and keeping contributors motivated. He advocates for “soft power” over “hard power,” prioritizing conversation and persuasion over directives. He stresses the importance of creating a positive and supportive environment, stating that Homebrew has a low tolerance for unpleasant behavior towards maintainers. He explains that losing maintainers is more detrimental than losing users, given the project’s scale.

He emphasizes the importance of regular team gatherings, such as the annual Homebrew AGM coinciding with FOSDEM, to foster community and build relationships. He also highlights the need to balance welcoming contributions with maintaining project quality, sometimes requiring difficult decisions about which features to prioritize or reject. He notes that it's better to clearly state "no" than to make promises that aren't kept.

V. GitHub & the Evolution of Open Source Tooling

McUade reflects on the evolving relationship between Homebrew and GitHub. He acknowledges that GitHub provides a significant amount of infrastructure (actions, copilot, hosting) to open-source projects for free, a benefit that was less prevalent in the early days of Homebrew. He notes that while GitHub’s priorities may shift, the fundamental value lies in the free resources it provides to the open-source community. He also acknowledges the changes brought about by Microsoft’s acquisition of GitHub, noting both positive and negative aspects.

VI. The Impact of AI on Open Source Contribution

The discussion turns to the impact of AI tools like GitHub Copilot on open-source contributions. McUade reports positive experiences using Copilot to accelerate development, particularly in addressing bugs. He emphasizes that AI should augment, not replace, human review. He suggests that the key to successful AI integration is for contributors to thoroughly review AI-generated code before submitting it for maintainer review. He also highlights the value of AI in overcoming the “blank page problem” – the initial difficulty of starting a new task.

VII. Open Source Zone at GitHub Universe & Project Recommendations

The podcast promotes Homebrew’s presence at the Open Source Zone at GitHub Universe (October 28-29). Attendees are encouraged to visit the booth, thank the team, and provide feedback on how to improve Homebrew. McUade advises focusing on describing the problem experienced rather than prescribing a specific solution.

The hosts and guest each recommend an open-source project:

  • Mike McUade: SOMO (somo.theopfr.com) – a tool for identifying open ports on macOS.
  • Andrea Griffith: Microsoft’s Spec Kit – a toolkit for spectrum development utilizing AI.
  • Abby: CSS Diner (flukeout.github.io) – a fun, interactive tool for learning CSS.

Notable Quotes:

  • Mike McUade: “Homebrew is basically like a pack app store for open source software in your terminal.”
  • Mike McUade: “If you come after my peeps, like they're my people and I'm going to be defensive over my people and I'm going to look after them.”
  • Mike McUade: “The bus factor is essentially how many people need to get hit by a bus before the project dies.”
  • Mike McUade: “You need to have a human review the output [of AI] before their co-workers do it.”

This summary aims to provide a detailed and specific overview of the podcast episode, preserving the original language and technical precision of the transcript. It includes key concepts, detailed explanations, examples, and notable quotes, structured for clarity and actionable insights.

Chat with this Video

AI-Powered

Hi! I can answer questions about this video "Mike McQuaid on 16 years of maintaining Homebrew | Episode 5 | The GitHub Podcast". What would you like to know?

Chat is based on the transcript of this video and may not be 100% accurate.

Related Videos

Ready to summarize another video?

Summarize YouTube Video