Two new Hypothesis releases and continuous deployment of libraries

I forgot to mention because it was so small, but I shipped a 1.8.1 Hypothesis release yesterday. It’s a workaround for Python 2 being terrible at unicode (Please upgrade to Python 3) and a common way of falling victim to that. Today I’ve shipped 1.8.2. It lt was also going to be a single bug fix release, but the travis build didn’t finish before I got on the plane, so I wrote another one mid-atlantic. So it’s a two bug-fix release:

  • When using ForkingTestCase you would usually not get the falsifying example printed if the subprocess exited abnormally (e.g. due to os._exit).
  • Improvements to the distribution of characters when using text() with a default alphabet. In particular produces a better distribution of ascii and whitespace in the alphabet.

If either of those things sound like a big deal to you, feel free to upgrade.

One thing that’s interesting is that the fact that I do this is really weird, and I don’t understand why. This sort of “I fixed a bug. Lets ship a patch release!” behaviour just doesn’t seem to happen, and I don’t understand why. I’ve often found myself incredibly frustrated because a library I was using hasn’t shipped a new version for months and there’s a one line patch that fixes my problem sitting in master.

If you’re using semantic versioning or similar, shipping a patch release is cheap. It doesn’t break anything (and if you accidentally introduced a new bug people can just not upgrade), it makes peoples’ lives better, why not do it? As long as you’ve got a reasonably good test suite, all the usual arguments for continuous deployment apply – you’re less likely to break things when shipping small changes, and if something does goes wrong it’s much easier to figure out what. Moreover your users will love you to bits – people are so happy when I go “Oh yeah, that’s a bug. Here’s a new version that fixes it”.

Usual arguments about free labour of course apply. You shouldn’t feel obligated to do this, especially if you can’t free up the time or brain for working on something right now, but if you can do this I think you’ll find it will make your life easier in the long run and users will love you for it.

This entry was posted in Hypothesis, Python on by .