6 Things to Avoid When Contributing to Open-Source Projects
With #HacktoberFest being a thing, there has been an influx of devs desperately trying to contribute to their favorite Open-Source projects. Unfortunately, many of these pull requests have been a waste of time, with the maintainers ultimately unable to use the contributions. Maintainers don’t want to waste their time reviewing bad PRs, and contributors don’t want to waste their time writing code that will never make it into production.
Let’s take a look at some common pitfalls that developers fall prey to when working on an open-source project.
1. Pull Requests Should Handle ONE Thing
Don’t open a PR like this:
- Fixes bug #543
- Adds new linting rules
- Includes feature #456
Your PR should do one thing. Large diffs increase the cognitive load of the reviewer and make it easier to get your code into the main branch. If you have beef with multiple issues in a project then open multiple PRs.
2. Don’t Break Consistency
This one happens the most often to me in my own projects. Well-intentioned developers open pull requests with any of the following annoyances:
- Omitting semicolons in a project that prefers them
- Using spaces in a project that has clearly been using tabs
- Introducing snake_case in a camelCase repo
When you contribute to an existing project, use the existing styling. No one gives two hoots about your preference on the “tabs vs spaces” debate in the context of this pull request.
If you think styling needs to change, see points #1 and #3.
3. Don’t Start Work Without Approval
If you hop into a GitHub repo and find something you don’t like, don’t immediately open a pull request. Follow these steps instead:
- Is there already an issue logged? If not, make one.
- If there is an issue, reach out to the maintainers (just comment on the issue) and let them know you are working on it, and give a quick overview of how you will address it. If they have problems with that approach, they will likely let you know.
- Start work on your PR.
This will help mitigate the creation of pointless PRs that will never be accepted on the basis of a flawed premise.
4. Don’t Re-Open Known Problems/Solutions
Some codebases have thousands of open issues, take the Go language project or the nocode repository as an example. No one wants to read your duplicate issue or review your duplicate pull request. Make sure there isn’t an existing open or closed issue for what you are trying to address.
5. Squash Those Commits
Not every project will require (or care) about commit squashing. That said, there are no projects that require not squashing commits. To be on the safe side just give ’em a squash.
6. Be Meaningful
Rewording documentation and other frivolous changes make you look like these assholes. This particularly atrocious example is not only scoped to pointless documentation changes but actually makes the documentation worse.
Related Articles
Top 4 Coding Languages To Learn For Beginners in 2026
Oct 07, 2020 by Lane Wagner - Boot.dev co-founder and backend engineer
Coding languages, tools, and frameworks are in a constant state of flux, improvement, deprecation, and popularity swings. Let’s take a look at the top 4 languages for new programmers to learn in 2026.
Education's Shameful State of the Art
Oct 05, 2020 by Lane Wagner - Boot.dev co-founder and backend engineer
Higher education had its problems before Covid-19. Now the crippling inefficiencies, backbreaking cost, and lack of alternatives are being forced into the spotlight. We’re working on what will eventually grow into the alternative to overpriced universities and ineffective Bootcamps at boot.dev. In the meantime, let’s take a look at education’s biggest problems, and how we can solve them.
Practical Patterns for Technical Writing
Sep 22, 2020 by Ben Barten
Writing technical documents like API or architectural documentation which exceeds a simple flow diagram can be a daunting task. If you have some experience with technical documents, you will probably agree that there is nothing more frustrating than bad documentation.
Your Parent's Internet - How to Mitigate Misinformation
Jul 31, 2020 by Lane Wagner - Boot.dev co-founder and backend engineer
The age of information is not what we all hoped it would be. We successfully digitized the majority of human knowledge, and we even made it freely accessible to most. Now the problem is different, we have too much information. Answers to most questions can be found in thousands of distinct places online, and the new problem is “whose information can we trust?”