In pizauth: dump and restore I said:
However, there was one feature I couldn’t find a good design for: persisting state to disk. This missing feature had been nagging away at me (and a small, though growing, number of other people) for quite a while: recently I finally alighted upon a design that I thought would work well. pizauth-0.2.2 is the first release to support this. Perhaps this will be the last release before 1.0.0!
I was a little too optimistic. One of pizauth’s configuration option names had long bothered me, and addressing that caused a backwards-incompatible change that forced a 0.3.0 release.
Since then, I’ve added only one feature to pizauth: an info
sub-command. This was explicitly inspired by Chris Siebenmann’s “Everything that uses configuration files should report where they’re located” post.
pizauth info [-j]
informs the user where pizauth is looking for
configuration files and so on. For example:
$ pizauth info pizauth version 1.0.0: cache directory: /home/ltratt/.cache/pizauth config file: /home/ltratt/.config/pizauth.conf
Adding -j
outputs the same information in JSON format [1] for integration with external tools. The
info_format_version
field is an integer value specifying the
version of the JSON output: if incompatible changes are made, this integer will
be monotonically increased.
It’s just under a year since pizauth’s first alpha release. While I have made three breaking changes since that first release, I did so early on. Two of the three changes are fairly trivial renamings of configuration options; the third is only marginally more “breaking”. All in all, pizauth’s initial interface seems to have held up fairly well, and while I can think of some possible additions I might make one day, I can’t think of any breaking changes.
It thus seems that the time is right for the pizauth’s first stable release: 1.0.0 is out! By “stable” I mean that, as far as possible, future releases will not change (though I might add to) the interface — and if such changes are necessary, the major version number will be bumped [2]. In one sense, the 1.0.0 version number means very little, but in another it means a great deal. When releasing software, it’s easy to jump too early to “stable” or to be scared to ever do so. 11 months after pizauth’s first release, and with a growing number of users, feels about the right time to me to commit to a stable release. Enjoy!
Footnotes
I am not especially fond of JSON per se, but it is now a widely accepted interchange format. The older I get, the more I tend to prefer standards, even if they’re not the standard that I would most have preferred.
I am not especially fond of JSON per se, but it is now a widely accepted interchange format. The older I get, the more I tend to prefer standards, even if they’re not the standard that I would most have preferred.
Yes, I will be following Semantic Versioning — another standard that I’m not especially fond of, but which is better than nothing.
Yes, I will be following Semantic Versioning — another standard that I’m not especially fond of, but which is better than nothing.