The contribution that taught me to write smaller patches
A 400-line PR taught me more about contributing than ten merged ones — by taking three weeks to die in review.
By Nzubechukwu Cyprian · Pharmacy student at UNN, full-stack developer
My proudest early contribution was also my worst: a 400-line pull request that fixed a bug, refactored two modules, and renamed things I found unclear. It sat in review for three weeks and died. The maintainer's only comment: "This is three PRs, and I only needed one."
What the failure taught
Review capacity is the bottleneck of every project. A maintainer's queue is time, and my big PR consumed a day of it before offering any value. Small PRs give value per minute of review — that's the actual currency.
Scope is a promise you make to reviewers. One fix means the review is about the fix. Mix in refactors and every comment splits across concerns, nothing lands, and the PR drowns in its own ambition.
The unsolicited refactor is a tax. Those unclear names I renamed? Someone wrote them on purpose, or at least with context I lacked. Changing them inside my bug fix made my diff someone else's surprise.
My rules now
- one PR, one purpose — if I spot an unrelated fix, it becomes its own PR
- fix the bug first, propose improvements second, as issues
- aim for diffs a maintainer can read in one sitting — under a couple hundred lines
The three-week death of that PR cost more time than it saved. Its lesson was free forever.
Keep reading
- Open source
Your first open source contribution doesn't need code
Docs, reproduction steps, and tested bug reports are contributions. The barrier you imagine is lower than the one that exists.
- Open source
Reading the issue tracker: the skill nobody teaches
Issue trackers are where projects tell the truth. Learning to read them well reveals what to contribute and what to avoid.
- Open source
The anatomy of a pull request that gets merged
Small scope, clean description, tests, and the maintainer's style. What separates merged PRs from the ones that die open.