Description of problem: All yum related tools: command line, pirut, yumex have long delays in starting as they query the upstream repository. For a user who wants to quickly initiate an update this is frustrating as it can take quite some time. Expected results: The user can start using the application immediately with no query delays. Proposed solution: The query of the repository is to get the latest repository information and updates. Most people are updating daily or infrequently so in fact if they are a day out it doesn't impact them. My suggestion is that two things be done: 1) That a cron job collects the repository information on a regular basis and that the tools can then allow a user to requery the data or use the current data in cache. 2) That dependencies be precalculated in the same process. Thus a user would not see any of the dependency problems as the cron job has already precalculated and stored those. These of course would then be rerun if the dependency cache wa stale.
Not downloading the metadata can quite possibly lead to a user then not being able to download a file if things have changed and a package is no longer available. Things are currently playing the balancing act of downloading to have accurate data but also to not download too often by using a timeout (metadata_expire) in yum.conf. Precalculating the dependencies isn't really doable as deps can be satisified by multiple things and the resolution depends on a) what you have installed as of that moment (nothing says you can't be removing packages between when a resolution run would have happened and when you decided to install something) and b) the package set that you've chosen.