Master

A release that exists only to fix

A version that ships because something is broken, not because something is ready. It has a different shape: the fix is the whole content, the gates are tighter, and the version number has to say what it is, because a consumer comparing numbers will be misled by a number that jumped.

What you will see

True - the hotfix sorts after the version it fixes. A number that sorts lower is the trap.

About 1 min of reading

Try It

Bump the right number.

1

The bump

print('2.4.9 -> 2.4.10')

Before you run it, say out loud what it will print. Then open the answer.

What it prints
Patch only. A minor bump here claims a feature that does not exist.
2

The sort check

print(Version("2.4.10") > Version("2.4.9"))

Before you run it, say out loud what it will print. Then open the answer.

What it prints
True - the hotfix sorts after the version it fixes. A number that sorts lower is the trap.

Data Flow

A fix becomes a small release.
1 Take the reproduction
↓
2 Fix only that
↓
3 Bump patch only
↓
4 Ship with a named line
Line by line

Read the first example one line at a time. A line that prints shows what appears on screen; the rest set things up quietly.

print('2.4.9 -> 2.4.10') Patch only. A minor bump here claims a feature that does not exist.
Why this works
Test the fix alone

The reproduction from the report, run against the new build. That one test is the gate that matters most here, and it is the test that catches a fix that did not fix.

Check the ordering

A hotfix number has to sort after the release it fixes. A 2.4.9 hotfix after a 2.5.0 release is a version that looks older than the one it came from, and consumers sort on it.

Examples

Patch only

A hotfix moves the patch number, never the minor. A hotfix that bumps minor is a release that claims a feature was added, and the consumer then writes code against nothing.

Skip the unfinished

The release contains the fix and nothing that was in progress. Shipping half a feature with a fix is the way a broken thing becomes two broken things.

Say it is a hotfix

The changelog line names it as a fix release. A consumer reading the numbers sees 2.4.9 to 2.4.10 and learns nothing; the line is what tells them nothing was added.

Words this lesson uses

Each one is defined here on this site. Open the entry for the full definition and the other words it points at.

← Planning a release as a document
Previous Lesson
Planning a release as a document
Next Lesson
Rolling back a bad release
Rolling back a bad release →