Skip to content
← Bookmarks
Added 4 Aug 2026semver.orgfiled under Plugin Modernization

What a version number promises the people depending on you

A note on Semantic Versioning 2.0.0 by Tom Preston-Werner, published on semver.org.

Everyone knows major-minor-patch. Far fewer have read the spec, and the useful part is the definition rather than the format.

A major version is required when the public API changes incompatibly. The question that follows, what counts as the public API, is where plugin work gets interesting. In a WordPress plugin the public surface is much larger than the functions you documented. It is every hook other developers have attached to, every filter whose return shape they rely on, every database column a site owner has written a report against. Rename a hook and you have shipped a breaking change regardless of what the version number says.

The spec is also clear that the scheme only works if the API is declared. Without that, every consumer decides for themselves what is public, and the answer becomes "everything they happened to use".

Worth reading alongside the strangler fig entry: both are ultimately about making change survivable for people you cannot coordinate with, which is the defining constraint of shipping to an install base you do not control.

This is the thinking behind supporting a plugin across WordPress versions.

Read the original ↗ versioning · plugins · apis
also read
let's talk

Building something where this kind of work matters?

I'm in GMT+6 and work async-first, so your timezone is never a reason not to reach out.

Get in touch
Copyright © Hasan Misbah. All rights reserved.Privacy
Hasan Misbah