Normally one release is being built at a time. A hotfix is the exception. It is a release in a lane of its own, for a fix that cannot wait for the release in progress.
How a hotfix differs#
| An ordinary release | A hotfix | |
|---|---|---|
| Starts from | The default branch as it is now | What is already in production |
| Version | The next minor version | A patch on the released version |
| Can be open alongside another release | No | Yes, alongside the release in progress |
| When it ships | Offers to open the next release | Opens nothing |
So two releases can be in flight at once: the one being built, and a hotfix. A second hotfix at the same time is refused, and so is a second ordinary release.
Ship a hotfix#
- Create a release and choose Hotfix as its kind.
- Put the fix in it. Raise the bug, approve it at triage and choose the hotfix as its release. It starts straight away.
- Let it run through its workflow: diagnose, fix, review, QA, merge.
- Cut the hotfix as you would any release.
The release in progress carries on throughout.
After it ships#
The project’s last released version moves on to the hotfix’s version, so the next ordinary release is numbered from there.