Tuesday, December 9, 2008

RIS Specification Updated

I filled some missing parts in the Repository Index Service specification, mainly regarding client handling the repository index. I would consider it done already, but there are still a few things i would like to see done in the future:
  1. The distro_target attribute should be turned into some standard distribution identifier to make it really useful. The CPE looks like a good candidate.
  2. The spec does not say how to handle repositories of type unknown to the client. They should be ignored, but the type attribute of <repo> is currently optional so the type does not need to be known when refreshing the service. One solution could be to make the type attribute required, another could be to require that the client removes any repositories comming from a service that are of unknown type. The latter seems to be cumbersome, i would go for the former.
  3. It might be worth to add the examples from this Duncan's post to the page (they're much better than those of mine :O).
  4. The specification should not be kept solely as a wiki (should not be editable by broad public; version control is problematic, etc.). Any suggestion where it should be instead?
Feel free to drop a comment about the specification, or the concept, etc.

Some TODOs for libzypp:
todo: sync repo URI with the repoindex, if changed
todo: ignore repos with unknown type when refreshing service

1 comment:

Loki said...

How about adding more machine parseable information in there, such as <arch/> child nodes under <repo/> ?

<?xml version="1.0"?>
<repoindex>
   <repo alias="os11-main" name="..."
     url="..." target="..." prio="...">
    <arch>i586</arch>
    <arch>x86_64</arch>
    <arch>ppc</arch>
  </repo>
</repoindex>