Simon Willison’s Weblog

Subscribe
Atom feed for semantic-versioning

2 posts tagged “semantic-versioning”

2025

If your library doesn't have any documentation, it can't have any bugs.

Documentation specifies what your code is supposed to do. Your tests specify what it actually does.

Bugs exist when your test-enforced implementation fails to match the behavior described in your documentation. Without documentation a bug is just undefined behavior.

If you aim to follow semantic versioning you bump your major version when you release a backwards incompatible change. Such changes cannot exist if your code is not comprehensively documented!

Inspired by a half-remembered conversation I had with Tom Insam many years ago.

# 22nd May 2025, 1:55 am / testing, semantic-versioning, documentation

2009

Semantic Versioning. Tom Preston-Werner provides a name, specification and URL describing the relatively widely used Major.Minor.Patch versioning system. This is really useful—by giving something a name and a spec, people can say “this project uses semantic versioning” and skip having to explain their backwards compatibility policy in full.

# 15th December 2009, 9:53 pm / tom-preston-werner, versioning, open-source, software, naming-things, semantic-versioning