A constant vexation to programmers is keeping their users up-to-date with latest versions of the software they write. Obsolete versions don’t take advantage of bug-fixes and added functionality, and if your code implements some process then obsolete output isn’t just buggy, it’s doing the wrong thing. Trivial solutions, like emailing your co-workers to alert them of a newly-released version, just doesn’t (1) scale to a large user-base and (2) isn’t compelling, so users will continue using old code.
When what you’re sharing is a “simple” command-line program, perhaps hosted on a Github repository, this is doubly vexing because there are no update-checker libraries (like Sparkle, for macOS). Faced with imminent deployment of a process-related tool, I had to come up with a lightweight mechanism to ensure the deployed code was always up-to-date.
Using curl
to handle the communication and Github’s REST-ful developer API I did just that, and then documented it.
White-paper and source code both available; corrections and comments gratefully accepted.