[Yum-devel] yum todo lists/ideas

seth vidal skvidal at phy.duke.edu
Fri Oct 22 04:51:35 UTC 2004


Hi folks,
 I had a few folks ask me for this so here it is - this is a list of
todo items and zany ideas that I'd love to see people play with in yum
2.1.x. I'll say that again - I don't want to see any of this for yum
2.0.X, only for 2.1.X :)
These are in no particular order.

- yum deplist packagename:
   looks in the metadata for the packagename(s) and returns a list of
its requirements. It should list the specific dependency then give a
short list of packages that provide that requirement from the metadata

- yum list obsoletes:
  - list obsoletes of packages in the format - it needs to fit on one 
    line (80chars) per obsolete.
    package-ver-rel from repo obsoletes otherpackage-ver-rel

- leaf-node list/removal - I'd like an option to list/remove leafnodes. 
  These are packages (especially libs) upon which nothing depends. 
  There is some code in rpmUtils/transaction.py to return lists of them 
  - the bit that needs to be done is figuring out what is a lib and 
  what is an end-application.

- transactioninfo.py work - this is something I want to work on :)

-  Xtrigger - once transactioninfo.py is done then menno's code can be
included, too.

- new logging output and possible history saving. Logs are fine, they
let you list some changes, but I think it might be useful to save a much
more detailed log of what occurred, including error/output messages from
each package in the transaction. This could be cool to implement a 'yum
history' command - that printed out what happened, etc in a transaction
so you can look back at what you've done.

- the above requires that we get some code in place to dup the output
file descriptors from the rpm callback and capture their output. This
_should_ be doable.

- importkey - I'd like yum to be able to import keys, if anyone wants to
go the extra mile and write up code for stripping off extra signatures
of the gpg keys so it won't mess up the rpmdb on import, I'd be your
best friend :)

- rpm debug option - equivalent to passing -vv to rpm

- yum-shell - talked about quite a bit - an interactive shell for
querying/packing/etc a yum transaction

- transaction chunking. As Daniel described elsewhere some way of
reliably breaking up a large transaction into discrete and self-complete
transactions. This would make play back and error recovery easier.

- make the diskspacecheck and other rpm transaction problem filters
easier to specify

- xml-rpc interaction for sending yum commands to other systems - I
think this would be cool and potentially useful - but I do also see the
dangers therein - if someone wanted to work on an xml-rpc server
implementation that exposed the major yum commands as methods I think
that'd be a cool project and a good place to work on code outside of
yum. At the very least - putting together some query/read-only code for
collecting data from yum-running machines would be terribly interesting
- especially for those people managing a bunch of yum-enabled machines
but with limited central-server resources.

-  similar to the bottom of above - if someone wanted to write an
rssparser for yum generate-rss updates that consolidated the lists and
made a nicer display of a set of machines and what updates they needed,
I think that person would make a lot of friends. :)

- download package callback - right now yum downloads packages but it
doesn't give you an idea of how many it has left to download - this
should be added - this is about a 10 minute job :)

- some thought needs to be put into yum downgrade - the depresolution is
all based around the idea of updating out of dependency problems. Some
of that will need to be rethought in order to implement downgrade. I'll
be honest this one is not a high priority for me, however I would like
to be able to implement two things:
  - yum reinstall somepackage-ver-rel
  - yum downgrade /some/package/that/is/older/than/what/I/have/installed
  I'm really not interested in a global downgrade path - there lies an
enormous amount of pain, I think.

- includeonlypkg - this won't be hard to implement either - stub code is
in place in yum/__init__.py - just needs to delete packages from the
packagesack based on what it finds in the config.

- groupinstall should be able to take options about what types of
packages to install - optional, default, mandatory - right now it just
does default and mandatory but I can see someone wanting to do
otherwise.

- logging to syslog - need a syslog object and to point filelog there -
done

- repackage all erasures should work - I don't think this one is hard
either - it just needs some attention for a few minutes. :)

- all the execptions I'm using need error numbers to make it easier for
a gui to use and for other reasons - especially translations.

- outputs strings in cli.py, callback.py and output.py at level 2 or
below need to have the _() function from i18n wrapped around them for
translation

- yum queue! - I want this one to be implemented badly and when I'm
through a few more things I'm sure I'll look at it - if anyone gets to
it first, go for it - most of it should be simple, parse xml file, look
at metadata, run the update/install/erase functions as necessary.

- integrate the yum downloader patches.

- work on a yum-source program for dealing with/installing/etc src-rpms 
  including their BuildRequirements.

- the yum webpage and documentation on the webpage needs an overhaul. I
like the look of the page - snaplook is great, but I think the content
needs some love.

Whew. I think that's all I have for right now.  A lot of these are
programs outside of yum, but they'll be using the yum modules and/or
would be very exciting to see somewhere on the yum webpages.

Now the fun part, If there is anything you're working on that you want
to patch INTO yum it must:
 - work in python 2.2 - I'm using this stuff on python 2.2 systems
 - work with rpm 4.2.X
 - not pull too many crazy requirements.

If you see something you like start working on it, If you'd like to talk
about the idea some more to flesh it out - then post it to the yum-devel
mailing list or bounce me a message.

-sv





More information about the Yum-devel mailing list