Chapter 23. Please Release Me

I heard an Angel singing

When the day was springing,

“Mercy, Pity, Peace

Is the world’s release.”

William Blake I Heard an Angel

Creating a software release is an incredibly important step in your software development process, and not one that should left to the last minute. It requires discipline and planning.

image with no caption

Many times I have run into silly, perfectly avoidable problems that were caused by a lackadaisical approach to the construction of software releases.

Most of these were caused by the sloppy habit of creating a “release” from a local working directory, rather than from a clean checkout. (Hint: this is not a real software release, it’s a “build” of your code, you need a lot more process and diligence to create a proper release.)

Some examples:

  • A software release was made from a developer’s local working directory. The developer hadn’t cleaned the code first, and the directory contained uncommitted source file changes. He noticed, but made the “release” anyway. When problems were reported, we had no record of exactly what went into that build. The result: debugging the software was a nightmare, mostly guesswork.
  • A software release was made from a local directory that wasn’t up-to-date; the developer hadn’t updated to the HEAD of the Subversion code repository. So the release was missing features and bug fixes. Helpfully, the developer tagged the HEAD ...

Get Becoming a Better Programmer now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.