pizauth: First Stable Release

August 13 2023

Blog archive

 
Last 10 blog posts
How Hard is it to Adapt a Memory Allocator to CHERI?
"Programming" and "Programmers" Mean Different Things to Different People
pizauth: First Stable Release
The Need to Explain
Two Stories for "What is CHERI?"
My Interview with Eelco Visser on Parsing
Why Split Lexing and Parsing Into Two Separate Phases?
Displaying My Washing Machine's Remaining Time With curl, jq, and pizauth
pizauth: dump and restore
How Big Should a Programming Language Be?
 
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!

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.
[2]Yes, I will be following Semantic Versioning — another standard that I'm not especially fond of, but which is better than nothing.
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.

Comments



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

Can't load comments