pizauth: First Stable Release

Recent posts
Why the Circular Specification Problem and the Observer Effect Are Distinct
What Factors Explain the Nature of Software?
Some Reflections on Writing Unix Daemons
Faster Shell Startup With Shell Switching
Choosing What To Read
Debugging A Failing Hotkey
How Often Should We Sharpen Our Tools?
Four Kinds of Optimisation
Minor Advances in Knowledge Are Still a Worthwhile Goal
How Hard is it to Adapt a Memory Allocator to CHERI?

Blog archive

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!

Newer 2023-08-13 08:00 Older
If you’d like updates on new blog posts: follow me on Mastodon or Twitter; or subscribe to the RSS feed; or subscribe to email updates:

Footnotes

[1]

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.

[2]

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.

Comments



(optional)
(used only to verify your comment: it is not displayed)