Staff Software Engineer

Nagging

There are several different trains of thought when it comes to software “nagging” users about updates. Naturally, I want to talk a bit about how this works in the open-source developer tools world.

The spectrum of update nagging varies from “none” to “auto-updating”. Homebrew, for example, auto-updates every so often whenever you run a brew ... command. It eschews releases, and basically makes staying on what you percieve as a “stable” version impossible. On the other end of the spectrum, tools like openssl will never tell you there’s a new version. You never get a “nag” to update, but you also never get a warning when major bugs are fixed (including those that could make your system vulnerable to attack).

A couple of things I work on (CocoaPods, Bundler) have decided to chart a middling course. They never auto-update, but they’ll tell you when the version that’s running is out-of-date. I think this is the best of both worlds – your development environment will never be silently changed without your consent, but you’ll also stay aware of new versions and be given an impetus to update.

And keeping your tools up-to-date is important. As someone who maintains lots of open source software, I can say with 100% confidence that the only way to get support is to be on the latest version. Fixes usually don’t get backported, and my first response to an issue is almost always to ask “is this fixed with the latest release?” As a maintainer, I can’t help someone who doesn’t update. And the only route I have to get people to stay up-to-date is to advise them that there’s an update available.