Merge pull request #62 from Homebrew/sync-triage-config
[Homebrew/gsoc.git] / README.md
blobe16a5942cbbde23e4346fb9a5df6a83e6b3939fe
1 # Homebrew's Google Summer of Code
2 Homebrew is a package manager for macOS and Linux written in Ruby and Bash.
4 ## Application Instructions
6 In your application tell us:
8 1. Who you are: your name and how we contact you (e.g. email).
9 2. What idea are you proposing: the name of the idea you've chosen, or a full description of your own project idea.
10 3. How will you implement it: provide a detailed work timeline that breaks the project into one or two week milestones.
11 4. Why you: link to a previous Homebrew pull request you've submitted (this is a requirement to be accepted).
13 Homebrew is actively seeking to diversify our contributors and especially welcome applications from women from all backgrounds and people of colour.
15 If you have general questions about Homebrew, feel free to reach out to our Discussions forum: https://github.com/Homebrew/discussions/discussions
17 ### Google Summer of Code
18 Please read and apply via https://summerofcode.withgoogle.com/get-started/.
20 ## Mentors
21 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.
23 Check out GitHub's blog post on how to run GSoC on GitHub for the standards expected from maintainers and students:
24 https://github.com/blog/2312-how-to-run-a-google-summer-of-code-project-on-github
26 ## Pass Requirements
28 - To be accepted, one trivial pull request for your project to Homebrew will need to be merged (this can be far prior to the program).
29 - To pass the mid-term assessment, one non-trivial pull request for your project to Homebrew will need to be merged.
30 - To pass the final assessment, more than one non-trivial pull request for your project to Homebrew will need to be reviewed and merged.
32 ## Technologies Used and Requirements
34 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.
36 ## 2022 Ideas
38 ### Deduplicate and cleanup GitHub Actions
39 #### Length: 175 hours
40 #### Skills Required: shell scripting, ruby
41 #### Difficulty: Medium
42 #### Description
43 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.
44 #### Mentors: Thierry, Rui
45 #### Homebrew issue: https://github.com/Homebrew/brew/issues/11101
47 ### Speed up Homebrew
48 #### Length: 350 hours
49 #### Skills Required: ruby
50 #### Mentors: Thierry
51 #### Difficulty: Hard
52 #### Description
53 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.
54 #### Homebrew issue: https://github.com/Homebrew/brew/issues/10508
56 ### Autobumping resources
57 #### Length: 175 hours
58 #### Skills Required: ruby
59 #### Mentors: Nanda
60 #### Difficulty: Medium
61 #### Description
62 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.
63 #### Homebrew issue: https://github.com/Homebrew/gsoc/issues/49
65 ### Improve behaviour of `HOMEBREW_INSTALL_FROM_API`
66 #### Length: 350 hours
67 #### Skills Required: ruby
68 #### Mentors: Misty
69 #### Difficulty: Medium
70 #### Description
71 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.
72 #### Homebrew issue: https://github.com/Homebrew/gsoc/issues/45
74 ### Replacing Google Analytics
75 #### Length: 350 hours
76 #### Skills Required: ruby, database
77 #### Mentors: Misty, Rui
78 #### Difficulty: Medium
79 #### Description
80 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.
81 #### Homebrew issue: https://github.com/Homebrew/gsoc/issues/46
83 ----
85 ### Other Ideas
86 You can also get inspiration from [open `help wanted` issues on Homebrew/brew](https://github.com/homebrew/brew/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) and [open `help wanted` issues on Homebrew/homebrew-core](https://github.com/homebrew/homebrew-core/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). Please discuss any of these with us before submission to maximise your chances of being accepted.