Skip to content

Porcelain to set up a suite

Setting up a new suite in an experiment workspace currently involves a few manual steps. We should automate them to make it easier for people to create repositories without substantial knowledge about Debusine. Fortunately, it can now all be done client-side. The steps are as follows (assuming the experiment workspace has already been created, which I think should be a separate step since one might well want to create multiple suites at different times in a single workspace):

  • Create the suite collection: this is approximately debusine collection create --workspace {workspace} debian:suite {suite}, specifying components and architectures in the collection's data. Until #495 is fixed, the suite name should be different from anything in the parent workspace.
  • Create a suitable workflow template to get packages into the suite. This is probably best done by taking an existing workflow template from the parent workspace and modifying it, since we'd want to preserve things like vendor, codename, backend selection, extra_repositories, regression_tracking_qa_results, and so on; but we should clear enable_upload and instead set suite to the new suite collection.

We don't yet have much of a pattern for opinionated porcelain subcommands in the client (I suppose the closest thing is task-config), although #1113 is another example where it would be useful to have such a pattern. How about we put archive management commands under debusine archive (matching the collection category name), making this something like debusine archive suite create (or suite-create if we don't want an extra level, but I think it works OK in Incus)? #1113 could then be something like debusine archive package copy, and that leaves obvious space for things like debusine archive package remove.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information