Goal

Last time I implemented support for OpenPGP card credentials, but ran into problems with actually using them, and noticed that creating a client doesn't create an initial credential.

Today I'll merge the card credential changes, and change obnam client init to create at least one credential. I'll remove credential removal from obnam store init.

Roadmap

I've decided to stop maintaining the roadmap in these blog entries. For various reasons it's cumbersome, so I'll merely maintain one in the main obnam repository. Or maybe on the web site at some point, we'll see.

Plan

  • Merge card credential changes.
  • Change obnam client init to create an initial credential.

Notes

Merge card credentials

  • Have a somewhat messy branch from last time. I'll create a new branch where I tidy that up. Which was easy enough, as the branch was less messy than I remembered.
  • I'm not adding acceptance scenarios for OpenPGP credentials, as running the test suite would then require having access to an OpenPGP card. I'll stick to manual testing and relying on the Rust type system.

Add initial credential creation to obnam client init

  • I already had this code in obnam store init, so in principle it's easy.
  • Changed the scenario to create a client to use a OpenPGP software key credential.
  • However, this let to the realization that obnam client list only lists clients with a given client key. That doesn't really seem useful now.
  • I'll bypass that and return to this when I start making obnam comfortable to use.
  • Adjusted the scenario for creating a client so it verifies that a credential is created.
  • Also removed unnecessary credential creation from obnam store init.
  • Merged into main. Yay.

Bonus work

  • I finished the above work in an hour and a half, and I allocate three hours to these sessions, so I have some spare time.
  • Updated dependencies on clingwrap and rusqlite to current versions.
  • Review list of open issues. Updated a bunch, and closed several by doing a lot of chores for simple fixes.
  • Added some missing tests found by cargo mutants for src/config.rs. Eventually I'll need to run this in CI, but for now, manually is OK.

Summary

I fixed the confusion about initial credential creation that I caused myself, and finally got client creation to work with OpenPGP credentials. This is a big step towards making obnam ready for others to contribute to.

Comments?

If you have feedback on this development session, please use the following fediverse thread: https://toot.liw.fi/@liw/115240996839960583.