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

Homebrew’s Great Migration: moving to GitHub Packages with zero downtime

Homebrew’s Great Migration: moving to GitHub Packages with zero downtime

In this talk, I discuss how we decided between available options, how compromises were between Homebrew and GitHub, how we migrated by the hard deadline and how to use “soft power” to affect change in your organisation.

Mike McQuaid

June 27, 2023
Tweet

More Decks by Mike McQuaid

Other Decks in Technology

Transcript

  1. Homebrew’s move to GitHub
    Packages with zero downtime


    Mike McQuaid
    The Great Migration

    View Slide

  2. The Background


    📦

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. Mike McQuaid


    https://github.com/MikeMcQuaid


    https://mastodon.social/@mikemcquaid


    https://twitter.com/MikeMcQuaid

    View Slide

  7. https://ben.balter.com/2015/11/12/why-urls/

    View Slide

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

    View Slide

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

    View Slide

  10. https://twitter.com/mxcl/status/608682016205344768

    View Slide

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

    View Slide

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

    View Slide

  13. https://github.com/Homebrew/homebrew-core/commit/ea309d16

    View Slide

  14. https://docs.brew.sh/Bottles

    View Slide

  15. https://docs.brew.sh/Bottles

    View Slide

  16. The Crisis



    View Slide

  17. https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

    View Slide

  18. https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/
    💩

    View Slide

  19. https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

    View Slide

  20. https://www.amazon.co.uk/Its-Not-Fair-Anita-Harper/dp/1853408972

    View Slide

  21. View Slide

  22. https://github.com/orgs/Homebrew/discussions/691

    View Slide

  23. The Investigation


    🧐

    View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. https://github.com/opencontainers/image-spec

    View Slide

  28. https://dlorenc.medium.com/oci-artifacts-explained-8f4a77945c13

    View Slide

  29. View Slide

  30. View Slide

  31. View Slide

  32. The Implementation


    🧑💻

    View Slide

  33. https://github.com/Homebrew/brew/pull/10677

    View Slide

  34. View Slide

  35. View Slide

  36. View Slide

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

    View Slide

  38. https://github.com/Homebrew/brew/pull/10835

    View Slide

  39. https://github.com/oras-project/oras

    View Slide

  40. https://github.com/containers/skopeo

    View Slide

  41. https://github.com/oras-project/oras/pull/241

    View Slide

  42. https://github.com/Homebrew/brew/pull/11070

    View Slide

  43. https://github.com/orgs/Homebrew/discussions/691

    View Slide

  44. View Slide

  45. The Result


    🏁

    View Slide

  46. https://github.com/homebrew/homebrew-core/packages

    View Slide

  47. https://github.com/Homebrew/homebrew-core/pkgs/container/core%2Fopenssl%2F1.1

    View Slide

  48. https://github.com/Homebrew/homebrew-core/pkgs/container/core%2Fopenssl%2F1.1

    View Slide

  49. View Slide

  50. https://github.com/Homebrew/homebrew-core/pkgs/container/core%2Fopenssl%2F1.1/97480112

    View Slide

  51. https://reproducible-builds.org

    View Slide

  52. https://github.com/Homebrew/brew/pull/11077

    View Slide

  53. https://github.com/Homebrew/brew/pull/11366

    View Slide

  54. https://github.com/Homebrew/brew/pull/12459

    View Slide

  55. https://github.com/Homebrew/brew/pull/12459/files

    View Slide

  56. View Slide

  57. View Slide

  58. https://github.blog/2021-06-21-github-packages-container-registry-generally-available

    View Slide

  59. The Aftermath


    📈

    View Slide

  60. https://github.com/orgs/Homebrew/discussions/1906

    View Slide

  61. https://github.com/orgs/Homebrew/discussions/1906

    View Slide

  62. https://github.com/orgs/Homebrew/discussions/1906

    View Slide

  63. View Slide

  64. Thanks!


    💜


    [email protected]

    View Slide