English for Open Source Contribution

The English phrases and conventions you need to contribute to open source projects — issues, pull requests, code reviews, and community communication.

Contributing to open source projects is one of the best ways to improve as a developer — and one of the most language-intensive activities in software engineering. You write issues, pull request descriptions, code review comments, and discussion posts — all in public, in English, for maintainers who may be volunteers with limited time.

Clear, professional English is not just about communication: it is about respect for the maintainers’ time. The better you write, the more likely your contribution is to be accepted.


Writing a Good Bug Report

A great bug report answers three questions: what did you expect, what actually happened, and how can someone reproduce it?

Template structure:

Title: Descriptive, specific — not “It doesn’t work”

Expected behaviour: “Clicking the ‘Submit’ button should trigger form validation and display errors if required fields are empty.”

Actual behaviour: “Clicking ‘Submit’ submits the form without validation. Required fields are not highlighted.”

Steps to reproduce:

  1. Navigate to /signup
  2. Leave the email field empty
  3. Click Submit
  4. Observe that no validation error appears

Environment: Node 20.11, Chrome 125, macOS 14

Additional context: “This worked correctly in version 2.3.1. I first noticed the issue after upgrading to 2.4.0.”

Useful phrases for bug reports:

“I believe this is a regression introduced in…”

“I have confirmed this happens consistently with…”

“I have not been able to reproduce this with…”

“Workaround: the issue can be avoided by…”


Writing a Feature Request

Title: “Add support for custom error message templates”

“Currently, validation error messages are hard-coded strings. For teams building localised applications, this requires forking the error handling logic.

I’d like to request the ability to pass custom error message templates via a configuration option. This would allow consumers to localise messages without modifying library source code.

Happy to implement this if the maintainers agree on the approach — I’d want to confirm the proposed API before starting work.”

Key elements: state the problem, not just the feature; explain the use case; offer to help.


Writing a Pull Request Description

A good PR description gives the reviewer everything they need without asking:

What: “Adds support for custom validation error message templates.”

Why: “Fixes #234. Teams building localised apps currently need to fork the validation module to customise error messages. This adds a messages option to the validator config that overrides defaults.”

How: “The createValidator function now accepts an optional messages object. Keys match the validation rule names; values are strings or functions that return strings. A full list of overridable keys is in the updated README.”

Testing: “Unit tests cover all message override scenarios. I’ve also tested manually in the example app included in the repo.”

Breaking change: “No. Existing configurations without a messages option continue to work as before.”


Responding to Maintainer Feedback

Accepting changes:

“Thanks for the review — these are fair points. I’ll update the implementation to match the existing pattern and add the missing test cases.”

“Good catch. I’ve pushed a fix in the latest commit — please take another look when you have a moment.”

Asking for clarification:

“I’m not sure I follow this comment — could you expand on what you mean by ‘prefer a functional approach’ here? I want to make sure I understand the expected pattern before I refactor.”

Respectfully disagreeing:

“I appreciate the suggestion. I considered that approach, but it would require changing the public API, which I wanted to avoid to maintain backward compatibility. I’m happy to discuss this further if you feel strongly.”

When a PR is closed without merge:

“Thanks for considering this — I understand the decision. I’ll close the fork and continue using the workaround for now. If the requirements change in the future, I’d be happy to revisit.”

This last response matters. Maintainers remember contributors who respond gracefully.


Writing in Discussions and Issue Threads

Adding information to an existing issue:

“I can confirm this — I’m seeing the same behaviour on Windows 11 with Node 22. Happy to provide a more detailed trace if that would help.”

Offering to help:

“I’d be willing to take a look at this if it’s something that would be accepted. Can you point me to the relevant code? I’m new to the codebase but familiar with the underlying pattern.”

Summarising a long discussion:

“To summarise the discussion so far: the main approaches proposed are X and Y. X is simpler but doesn’t handle edge case Z. Y handles everything but adds complexity. Does that capture it correctly before we decide on a direction?”


Common Open Source Phrases

PhraseMeaning / When to use
LGTMLooks Good To Me — informal approval
WIPWork in Progress — not ready for review yet
nitMinor stylistic comment, not blocking
cc @nameNotify someone by mentioning them
PTALPlease Take Another Look — after addressing feedback
bikesheddingDebating trivial details; use: “I don’t want to bikeshed this, but…“
upstreamThe original project you forked from
downstreamProjects that depend on yours
cherry-pickApply a specific commit from one branch to another

Open source contribution is as much a communication skill as a technical one. Clear, respectful, and thorough written communication makes your contributions more likely to be accepted, more likely to be merged quickly, and more likely to lead to long-term collaboration.

Open source communities thrive on clear, concise communication. However, simply writing well isn’t always enough; understanding the subtle nuances of professional English within a developer context is crucial for effective collaboration and project success. Many non-native speakers find themselves struggling with phrasing that feels overly formal or, conversely, too casual for a professional setting. Let’s look at some common pitfalls and how to refine your approach – particularly when it comes to seeking feedback and proposing changes.

One frequent challenge arises during code reviews. Receiving a comment like, “This needs more work” is incredibly vague. A stronger response would be to say, “I noticed this section could benefit from clearer variable naming according to our project’s conventions – specifically using camelCase instead of snake_case. Could you explore refactoring those lines?” This demonstrates understanding of the team’s standards and provides a specific area for improvement, rather than simply criticizing the code itself. Similarly, when drafting pull request descriptions, avoid overly enthusiastic declarations like “This is amazing!” Instead, focus on objective observations: “This PR addresses the reported bug by implementing [specific change]. The tests have been updated to reflect these changes.” The goal isn’t to boast; it’s to clearly articulate what you’ve done and why.

Slack conversations can also expose weaknesses. A simple, “Fixed it!” is insufficient. Consider: “Resolved issue #123 by updating the [component] logic. Added a unit test for regression.” This provides context and demonstrates proactive communication. Furthermore, be mindful of asking for help; phrasing your questions clearly is paramount. Instead of blurting out, “This doesn’t work,” try, “I’m encountering an issue with [specific functionality]. I’ve reviewed the relevant documentation and have tried debugging using [tools], but haven’t been able to resolve it yet. Could someone provide some guidance?” Demonstrating you’ve already put in effort reduces frustration and invites helpful responses.

Finally, remember that active listening and thoughtful response are just as important as your initial communication. Don’t be afraid to ask for clarification if something isn’t clear – asking “Could you elaborate on what you mean by ‘performance bottleneck’?” is perfectly acceptable. Building a reputation based on clear, respectful, and constructive communication will significantly enhance your contributions and integration within the open source community.

Frequently Asked Questions

What English level do I need to read "English for Open Source Contribution"?

This article is tagged Intermediate. If you find the vocabulary difficult, start with a related Writing vocabulary exercise first, then come back — technical reading gets much easier once the core terms feel familiar.

Is this article free to read?

Yes. Every article on CoderSlingo, including this one, is free to read with no account, sign-up, or paywall.

How is reading this article different from doing an exercise?

Articles like this one explain concepts and vocabulary in context through prose, while exercises are interactive drills — fill-in-the-blank, matching, and multiple-choice — that test and reinforce specific terms. Reading builds understanding; exercises build recall.