Release Notes English: Writing Changelogs and Communicating Changes
Learn the English vocabulary and writing patterns for release notes and changelogs — added, fixed, changed, breaking changes, and communication phrases explained.
Introduction
Release notes and changelogs are some of the most frequently written — and most frequently underestimated — technical documents. They communicate changes to users, customers, and other developers. Well-written release notes build trust; poorly written ones create confusion and support burden. For non-native English speakers, mastering the specific vocabulary and writing patterns of release notes is especially valuable because it enables you to communicate changes clearly and professionally across language barriers. This guide covers the vocabulary, structure, and phrases that make release notes effective.
The Changelog Format
The most widely adopted changelog format follows the “Keep a Changelog” convention, which defines standard categories:
- Added — new features or capabilities; “Added support for webhook signature verification”
- Changed — changes to existing functionality; “Changed the default timeout from 30s to 60s”
- Deprecated — features that will be removed in a future version; “Deprecated the
/v1/sendendpoint — use/v2/messagesinstead” - Removed — features that have been deleted; “Removed the legacy XML API (deprecated since v2.0)”
- Fixed — bug fixes; “Fixed an issue where pagination tokens expired after 10 minutes instead of 24 hours”
- Security — security-related fixes; “Fixed a cross-site scripting vulnerability in the search results page”
Using these categories consistently allows readers to scan quickly for what matters to them. A developer upgrading a dependency scans “Breaking Changes” and “Removed” first. A security-focused reader scans “Security” first.
Breaking Change Communication
Breaking changes require special care and specific language:
- “BREAKING CHANGE:” — capitalised label to make breaking changes unmissable
- “This is a breaking change if you…” — explaining exactly who is affected; “This is a breaking change if you currently pass
user_idas a string — it must now be an integer” - “Migration required” — a signal that the developer must take action
- “To migrate, replace [old] with [new]” — the clearest possible migration instruction
- “This change takes effect in v4.0” — specifying the version is essential
- “Clients using [feature] must update before upgrading to this version” — setting a clear expectation
The most common mistake in breaking change communication is being vague. “We changed the API” is unhelpful. “We changed the response type of the amount field from string to integer in the /payments endpoint. Clients that parse this field as a string will break.” is precise and actionable.
Writing Effective Bug Fix Descriptions
Bug fix descriptions should follow a specific pattern: what was broken, under what conditions, and what is now correct:
- Weak: “Fixed a bug with login”
- Strong: “Fixed an issue where users who logged in with Google SSO were redirected to the wrong page after a password reset”
The word issue is preferred over bug in formal release notes because it sounds less alarming to non-technical readers. “Fixed an issue” is gentler than “Fixed a bug.”
Common patterns:
- “Fixed an issue where [condition] caused [problem]”
- “Resolved a race condition in [component] that could cause [symptom] under high load”
- “Corrected the behaviour of [function] when [edge case] — it now [correct behaviour]“
Security Advisory Language
Security fixes use specific vocabulary:
- CVE — the identifier for a publicly known vulnerability; “Addressed CVE-2024-12345 affecting the XML parser”
- “We strongly recommend upgrading” — a firm recommendation, used for serious vulnerabilities
- “This vulnerability allows an authenticated user to…” — describing the impact
- “There is no known active exploitation of this vulnerability” — reducing alarm when appropriate
- “This fix was contributed by [researcher] via our responsible disclosure programme” — crediting security researchers
Communicating Improvements (Not Just Fixes)
Beyond bugs and breaking changes, release notes communicate improvements:
- “Improved performance of [feature] by approximately 40%” — quantifying the improvement
- “Reduced memory usage in [component] from X to Y” — specific and measurable
- “Enhanced error messages for [operation] to include the field name that caused the validation failure” — describing the improvement from the user’s perspective
- “Added pagination support to [endpoint] — previously limited to 100 results, now supports up to 10,000”
Key Vocabulary
| Term | Definition |
|---|---|
| changelog | A file recording all notable changes to a project, organised by version |
| breaking change | A change that requires existing users to modify their code or configuration |
| Added | Changelog category for new features or capabilities |
| Fixed | Changelog category for bug corrections |
| Deprecated | Changelog category for features scheduled for future removal |
| migration | The process of updating existing code to work with a new version |
| CVE | Common Vulnerabilities and Exposures — an identifier for a known security issue |
| responsible disclosure | A process where security researchers privately report vulnerabilities before publication |
| issue | A polished term for a bug, preferred in external-facing release notes |
| semantic versioning | A versioning scheme where the version number communicates the type of change |
Practice Tips
-
Write release notes for your last three pull requests. Even internal changes benefit from clear descriptions. Practise the pattern: “[Category]: [What changed and how it affects the user].” This discipline makes your PRs easier to review and your releases easier to communicate.
-
Always quantify performance improvements. “Faster” is meaningless; “50% faster under load above 1,000 concurrent requests” is useful. Practise asking yourself: “Can I add a number here?”
-
Write breaking change descriptions from the user’s perspective. Not “We changed the data type of
amount” but “If your code readsamountas a string, you must update it to read as an integer. Code that does not make this change will receive a 400 error after upgrading to v3.0.” -
Read changelogs from Stripe, GitHub, and Vercel. These companies are known for excellent release note writing. Notice how they balance technical precision with accessibility, how they label breaking changes, and how they describe security fixes.
Conclusion
Release note vocabulary — added, fixed, breaking change, deprecated, migration, CVE — follows consistent patterns that make technical communication clear and professional. Well-written release notes reduce support requests, build user trust, and make your product feel polished. For non-native English speakers, mastering the standard patterns of changelog writing is highly transferable — the same vocabulary and structure appear in every well-run open source project and professional software product. Start with the “Keep a Changelog” convention and build from there.