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
andrusqlite
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
forsrc/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.