08. Maintenance & Iteration

The Art of Writing a Great Changelog

Table of Contents
In: 08. Maintenance & Iteration

Why This Stage Matters

A changelog is more than a list of commits. It’s a record of progress, a way to build trust, and one of the simplest ways to show your users — and contributors — that your project is alive and improving.

When done well, a changelog helps people:

  • Understand what changed and why
  • Decide whether to update or wait
  • See the value of your work
  • Feel invited to contribute

If you’re maintaining an Open Source project, writing changelogs should become part of your rhythm.


Step 1: Write for Humans, Not Just Devs

Your changelog doesn’t need to list every commit or pull request.

Instead, focus on:

  • What changed
  • Why it changed
  • Who it helps

Write in clear, readable language. Use bullet points. Group related changes. Add context when it’s helpful.

Bad example:

  • Fixed #41
  • Added export button
  • Refactor

Better example:

  • Added a new “Export to CSV” feature for users who need to download reports
  • Fixed a bug where the dashboard wouldn’t load in Firefox
  • Refactored API handling to reduce duplicate calls (internal only)

Step 2: Use a Consistent Format

You don’t need to follow a formal spec, but consistency helps others (and future you).

A simple structure looks like:

## [1.2.0] – 2025-09-18

### Added
-
Support for exporting quiz results to CSV
- Optional dark mode toggle in settings

### Fixed
-
Layout bug on mobile Safari
- Login redirect issue when using social auth

### Changed
-
Updated dependencies to latest stable versions

Stick to a format that’s easy to scan, and group changes by purpose.


You don’t have to include every ticket number, but it’s helpful to link to:

  • Major features
  • Community contributions
  • Bug reports that inspired a fix

This provides traceability without clutter. You can do it inline:

Fixed layout issue on mobile (#42)

Or in a footnote-style list at the bottom.


Step 4: Include Changelogs in Your Releases

If you’re tagging releases (and you should be), include a summary in the GitHub Releases page or wherever you publish updates.

Don’t just tag a version — explain what’s new.

Even a single sentence helps:

Version 1.0.2 includes bug fixes, dependency updates, and accessibility improvements on the login screen.

Step 5: Credit Contributors When Possible

If someone opened an issue or pull request that led to a change, mention them.

  • Fixed crash when uploading large files (thanks @user123)
  • Added dark mode toggle (@dev-daniel via #53)

This builds goodwill and reinforces that your project is a team effort — even if that team is small.


TL;DR

  • Changelogs are for humans, not just version control
  • Focus on what changed, why, and who it helps
  • Use a consistent, readable format with simple groupings
  • Link to issues and PRs when relevant
  • Credit contributors and publish your changelog with each release

A thoughtful changelog doesn’t take much time — but it leaves a lasting impression.

Written by
Cory Fail
Cory Fail leads the Software for Progress Foundation, helping developers build Open Source tools for education, accessibility, and social good through mentorship and community support.
Comments
More from Software for Progress Foundation
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to Software for Progress Foundation.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.