Assessment of the iteration that has ended

The goal of the previous iteration was:

The goal of this iteration is to prepare for future changes: document threats against the chunk server API (so that authentication can be added in the future), and making an client-internal abstraction for using the chunk store (so that it can later be local as well as remote).

The following issues were chosen for this iteration:

  • obnam#206Lacks a release with recent changes
    • done
  • obnam#207What threats would a server API authentication defend against?
    • done
  • obnam#208Needs internal interface for using chunk storage
    • not done
    • Lars ran into a problem he couldn’t solve
    • Alexander suggested a solution
    • Lars was busy with work and life and dropped the ball on Obnam and hasn’t really done anything in recent months


Restarting Obnam development

Lars wants to pick up the ball on Obnam again, and feels that the best way to do that is to start actually using it and relying on it. For this, Lars needs:

  • reasonable performance: a full backup of his main computer overnight
    • about 250 GiB
    • about 3 million files
  • sufficient security that he dares run a server on the public Internet
    • server API needs to be authenticated

Given realities of life, Lars doesn’t expect to be spending large amounts of time on Obnam. However, he hopes to spend at least few hours a month. To reflect this, he expects to do Obnam planning meetings monthly rather than biweekly, and pick at most eight hours of work for each iteration.

Repository review

Lars reviewed all the open issues, merge requests, and CI pipelines for all the projects in the Obnam group on

Container Images

  • Open issues: 1
  • Merge requests: 0
  • Additional branches: 0
  • CI: OK, ran today

  • Open issues: 0
  • Merge requests: 0
  • Additional branches: 0
  • CI: not defined


  • Open issues: 11
  • Merge requests: 0
  • Additional branches: 0
  • CI: not defined


  • Open issues: 0
  • Merge requests: 0
  • Additional branches: 0
  • CI: not defined


  • Open issues: 0
  • Merge requests: 0
  • Additional branches: 0
  • CI: not defined


  • Open issues: 51
  • Merge requests: 1
  • Additional branches: 2
    • one for the MR
    • one for chunk store internal interface
  • CI: failed, because of Rust version problems with MR


Goal for 1.0 (not changed this iteration)

The goal for version 1.0 is for Obnam to be an utterly boring backup solution for Linux command line users. It should just work, be performant, secure, and well-documented.

It is not a goal for version 1.0 to have been ported to other operating systems, but if there are volunteers to do that, and to commit to supporting their port, ports will be welcome.

Other user interfaces is likely to happen only after 1.0.

The server component will support multiple clients in a way that doesn’t let them see each other’s data. It is not a goal for clients to be able to share data, even if the clients trust each other.

Goal for the next few iterations (not changed for this iteration)

The goal for next few iterations is to have Obnam be easier and safer to change, both for developers and end users. This means that developers need to be able to make breaking changes without users having to suffer. User shall be able to migrate their data, when they feel it worthwhile, not just because there is a new version.

Goal for this iteration (new for this iteration)

The goal of this iteration is to restart Obnam development.

Commitments for this iteration

Lars intends to work on the following issues:

  • obnam#208Needs internal interface for using chunk storage
    • Lars to add an internal interface and implement it for a remote chunk store
    • most of the work is hopefully done, but Lars need to solve the issue he ran into based on Alexander’s suggestion, or some other way, or else determine that it can’t be solved with reasonable effort
    • estimate: 4h
  • obnam#209Uses structopt instead of clap v3 for command line parsing
    • work on this has started, but ran into a problem where the container used by CI has such an old version of Rust that it can’t handle clap v4
    • Lars hopes to target either latest stable Rust (which moves every six weeks), or whatever is in Debian testing (currently 1.60), and to change the container to provide one of those
    • estimate: 4h

Meeting participants

  • Lars Wirzenius