[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#693693: ben: Partial suite support



Le 19/11/2012 13:23, Iain Lane a écrit :
> It would be good if ben had support for working with partial suites
> (e.g. experimental). One could then stage transitions without having to
> host a full repository.
> 
> I'm interested in this because we've started using a partial suite for
> Ubuntu uploads (series-proposed) before migrating to the release proper,
> and it's good to be able to carry on using ben as expected in this
> situation. It's in -proposed where transitions will happen.
> 
> My current solution is to externally concatenate and deduplicate
> Packages/Sources files. The deduplication is required not for ben but
> for edos-debcheck (it's interested in finding solutions in the whole
> repository but for the transition case we only want to know about
> solutions involving the newest packages). It would be good if we could
> somehow specify multiple suites in a .ben file and have ben DTRT itself.

As said elsewhere in this bug report, the deduplication is already done
in ben.

However, after thinking about it, I am planning to redesign the plumbing
between commands. What I am planning to do is the following:

 * "download" will only download files;
 * a new "import" command will take a list of Sources and Packages
   files (or query projectb or some other kind of database), and create
   a "ben.cache" file. This command would do the canonicalization phase
   (i.e. add source and source-version fields to all binary packages,
   etc.);
 * a new "filter" command will add the uninstallable (previously
   edos-debcheck) field, and any other additional massaging we'll want
   in the future (like keeping only the last version or the
   "is-in-testing" virtual field);
 * the "query" command will be able to output "ben.cache" files as
   well. It will basically act as the dual of "import";
 * "monitor" will only read a "ben.cache" file.

Basically, it promotes "ben.cache"-like files (which are binary dumps of
an OCaml datastructure and efficiently parsed) as first-class citizens,
and the canonical format passed between commands, with bridges to the
text control file format via import and query).

The logic for partial suite support would be put in "import", but
concatenating files, then using "import" and "filter" looks simple
enough to be done externally in a shell script.

What is your opinion on that plan?


Cheers,

-- 
Stéphane


Reply to: