🔰 Homebrew's Google Summer of Code
Homebrew is a package manager for macOS and Linux written in Ruby and Bash.
In your application tell us:
Homebrew is actively seeking to diversify our contributors and especially welcome applications from women from all backgrounds and people of colour.
If you have general questions about Homebrew, feel free to reach out to our Discussions forum: https://github.com/Homebrew/discussions/discussions
Please read and apply via https://summerofcode.withgoogle.com/get-started/.
Mentorship happens privately on our Homebrew maintainers' Slack and publicly on GitHub pull requests. Each student and project will be assigned a mentor but all students will work with all mentors.
Check out GitHub's blog post on how to run GSoC on GitHub for the standards expected from maintainers and students: https://github.com/blog/2312-how-to-run-a-google-summer-of-code-project-on-github
Homebrew is written mostly in Ruby (with small amounts of Bash), runs on the macOS and Linux operating systems and uses Git and GitHub for version control and updates. You do not need to have used any of these before but must have access to a Mac (unless working on Linux-specific features) and be willing to learn Ruby, Git and GitHub.
Homebrew makes extensive use of GitHub Actions. Some of our workflows are very similar to each other and could be reused within the Homebrew organisation and community. This project will involve learning about Actions workflows in order to find ways to more efficiently use them across our projects.
Homebrew's boot time is slower than it needs to be. Some of our dependencies, in particular ActiveSupport, may be the cause of this. The goal of this project is to improve Homebrew's boot time without negatively impacting the project.
Many Homebrew packages use resources, a special kind of package dependency. While we have tools which automatically upgrade packages to new versions, this feature doesn't work with resources. This project will enhance our existing livecheck
feature.
HOMEBREW_INSTALL_FROM_API
This project will enhance an existing Homebrew feature which allows users to install Homebrew packages without having a local copy of the Homebrew package git repositories checked out. Contributors will learn about the features of the existing beta feature and work on enhancing it.
Homebrew currently uses Google Analytics to understand which formulae are used by our users. We would like to replace this with something open-source and which only collects as much data as we need.
You can also get inspiration from open help wanted
issues on Homebrew/brew and open help wanted
issues on Homebrew/homebrew-core. Please discuss any of these with us before submission to maximise your chances of being accepted.