LogPulse / templates

Open-source changelog template

Use this fictional example as a starting point. Replace versions, dates, supported environments and behavior with tested facts from your release.

Example 1

A versioned release with concrete next steps

Improved

[2.0.0] — 2026-06-10

Added

  • Async parser entry point: parseAsync().

Changed

  • Minimum supported Node.js version is now 20.

Removed

  • parseLegacy(); replace with await parseAsync(input).

Deprecated

  • strictMode option; use validation: "strict". Removal version is undecided.

Upgrade check

  • Run parsing fixtures on Node 20 and verify rejected inputs are handled.

Why it works: Names the changed surface and includes a verification action rather than asking consumers to infer the migration.

Copy the markdown · replace illustrative details
## [2.0.0] — 2026-06-10

### Added
- Async parser entry point: `parseAsync()`.

### Changed
- Minimum supported Node.js version is now 20.

### Removed
- `parseLegacy()`; replace with `await parseAsync(input)`.

### Deprecated
- `strictMode` option; use `validation: "strict"`. Removal version is undecided.

### Upgrade check
- Run parsing fixtures on Node 20 and verify rejected inputs are handled.

What makes a great changelog?

  • Verify every command against the released artifact.
  • Publish versions and breaking changes as structured fields as well as readable markdown.
  • Keep unresolved removal dates explicitly undecided.

Keep reading

Common questions

Keep your writing toolkit close

Less setup. More shipping.

Give your next release an audience.

Up to 10 releases and 100 subscribers, with the ⚡ Powered by LogPulse badge. Pro is €12/month or €99/year.