$30 off During Our Annual Pro Sale. View Details »

Homebrew: A Packagers Deep Dive

Mike McQuaid
November 09, 2021

Homebrew: A Packagers Deep Dive

A deep-dive on the interesting (both good and bad) aspects of the Homebrew package manager that will be interesting to other package manager maintainers or enthusiasts.

Based on my experience as a user (and very sporadic packager) of other OS system and language package managers I detail the things I feel that Homebrew does well, badly and what we plan on changing and what we cannot.

Mike McQuaid

November 09, 2021
Tweet

More Decks by Mike McQuaid

Other Decks in Technology

Transcript

  1. Homebrew


    A Packagers Deep Dive


    Mike McQuaid

    View Slide

  2. Project Leader (2019-Present)


    Maintainer (2009-Present)


    https://github.com/MikeMcQuaid


    https://twitter.com/MikeMcQuaid
    A

    View Slide

  3. 📜 History


    😍 Does Well


    😭 Does Badly


    ❄ Cannot Change


    🆕 Planned Change

    View Slide

  4. 📜 History

    View Slide

  5. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  6. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  7. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  8. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  9. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  10. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  11. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  12. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  13. https://github.com/Homebrew/brew/commit/29d85578e

    View Slide

  14. 📚 Avoid duplication


    🧘 Focused scope


    👪 Community ownership


    👷 Easy contribution

    View Slide

  15. 😍 Does Well

    View Slide

  16. https://github.com/Homebrew/homebrew-core

    View Slide

  17. https://docs.brew.sh/How-To-Open-a-Homebrew-Pull-Request

    View Slide

  18. https://docs.brew.sh/Manpage#bump-formula-pr-options-formula

    View Slide

  19. brew upgrade shellcheck

    View Slide

  20. https://docs.brew.sh/Maintainers-Avoiding-Burnout

    View Slide

  21. https://mikemcquaid.com/2018/03/19/open-source-maintainers-owe-you-nothing/

    View Slide

  22. 👪 Community ownership


    👷 Easy contribution


    👩🔬 Sensible defaults


    👩🔧 Prioritise maintainers

    View Slide

  23. 😭 Does Badly

    View Slide

  24. 👪 Community ownership


    👷 Easy contribution


    👩🔬 Sensible defaults


    👩🔧 Prioritise maintainers

    View Slide

  25. 👪 No individual ownership


    👷 Expect user contribution


    👩🔬 Bad “power user” defaults


    👩🔧 Prioritise low support load

    View Slide

  26. https://github.com/Homebrew/homebrew-core/issues/88655

    View Slide

  27. https://github.com/Homebrew/homebrew-core/issues/88660

    View Slide

  28. https://docs.brew.sh/Manpage#environment

    View Slide

  29. https://docs.brew.sh/Manpage#environment

    View Slide

  30. https://docs.brew.sh/Manpage#developer-subcommand

    View Slide

  31. https://github.com/Homebrew/homebrew-core/issues/new?template=bug.yml

    View Slide

  32. 🆕 Cannot Change

    View Slide

  33. https://docs.brew.sh/Versions

    View Slide

  34. https://docs.brew.sh/Tips-N'-Tricks#installing-previous-versions-of-formulae

    View Slide

  35. https://docs.brew.sh/Installation

    View Slide

  36. https://docs.brew.sh/Formula-Cookbook#homebrew-terminology

    View Slide

  37. https://github.com/Homebrew/brew

    View Slide

  38. 🆕 Planned Change

    View Slide

  39. https://docs.brew.sh/Manpage#environment

    View Slide

  40. https://github.com/Homebrew/brew/issues/10846

    View Slide

  41. https://github.com/Homebrew/brew/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22

    View Slide

  42. 🏎 Faster updates


    🍾 More relocatable bottles


    ❓ Who knows?

    View Slide

  43. ❤ Thanks!


    🙋 Questions?


    @MikeMcQuaid

    View Slide