hermes:
 + when there's a commit for a package, we should create a fake commit event
   for all packages linking to this one, so that they get updated too.

buildservice:
 + if we queue something twice, then we will really do it twice. We should have
   a way to queue, and then strip the useless elements to minimize data.
 + a project configuration cache can be written twice (eg, when a project is
   devel project for two different projects). This should be avoided since we
   probably expect the first write to win (assuming the first write matches the
   first project in obs.conf).
 + in check_project(), we should probably also look at files that are checked
   out for a package and remove the ones that shouldn't be there.

database:
 + only do one update call if there was a commit and meta change for a package
 + provide the API needed by infoxml so that it doesn't need to do any SQL
   query?

upstream:
 + add a removed table: right now, obs-upstream-attributes has no way to know
   what upstream metadata got removed, which might result in stale attributes.

general:
!+ add a --deep-check mode. It would use the buildservice.py infrastructure to
   browse all packages of all projects, and check that the files all have the
   right md5. If not, it would queue packages for the next run. Or create tool
   called obs-offline-check.
