The approach
Small changes stay in a project for good
A merged pull request does not expire. A corrected sentence in the docs, a clearer error message or a test for a forgotten edge case keeps helping every person who uses the project after it.
So I work on one thing at a time. A small change is quick to review, easy to understand and simple to undo if something is off. Maintainers can say yes to it without a long meeting or a weekend of reading.
The loop
Four steps, then start again
-
Notice
Use the project and write down the one thing that tripped me up.
-
Open an issue
Describe it plainly, with what I expected and what happened, so others can confirm it.
-
Send a small PR
Fix only that thing, link the issue and explain the change in a few sentences.
-
Follow it through
Answer review comments, adjust, and wait for the merge before picking up the next one.
Only one change is open at a time.
Why small
How big is your pull request?
Drag the slider and see how a reviewer is likely to feel.
A rule of thumb, not data. I aim for the left side of the slider.
What counts as small
Changes a reviewer can read in a minute
- A typo or a dead linkDocs and READMEs are the first thing a new user reads.
- A clearer first lineSay what the project does before anything else.
- A missing exampleOne short snippet that shows how a function is called.
- A clearer error messageSay what went wrong and what to try next.
- A test for an edge caseEmpty input, a very large value or an unusual locale.
- A well-written issueSteps to reproduce a bug can be a contribution on their own.
What it looks like
A sample pull request
An illustration of the size and shape I aim for. The project is made up, and nothing here is real. Press the green button to merge it.
Make the README's first line say what the project does
OpenThe README opens with only the project name, so new visitors have to scroll to find out what tinyparse is for. This adds a short summary to the title line.
Closes the linked issue. Docs only, no code changes.
README.md @@ -1,3 +1,3 @@- # tinyparse+ # tinyparse: read INI files in one line, no dependencies ## Install
Say hello
Got an idea or a swan pun?
Questions and ideas are welcome. Start a conversation or open an issue on one of my projects on GitHub.
Visit my GitHub