Libzypp/Refactoring

Şuraya atla: kullan, ara

ZYPP Refactoring Plan

ma@suse.de, dmacvicar@suse.de

10.2 timeframe

Fixing

  • making yum faster

YUM extensions? https://lists.dulug.duke.edu/pipermail/rpm-metadata/2005-November/000557.html

  • making the user believe it is faster: aka. fix the reports and give feedback
  • fix rpm target (key read, etc)

Refactoring

Apply refactorings described below, in the following way:

  • directory zypp2 created in libzypp/ same layout as zypp/
  • directory zypp2 created in libzypp/testsuite same layout as libzypp/testsuite/zypp
  • directory examples created in libzypp/ providing tasks examples.
  • directory tools created in libzypp/ (for tools like inst_sources)

All new classes created for the refactoring moved to zypp2 directory and namespace. New classes need to provide unit test and if possible examples.

New classes are independent and developed in the subdirectory in trunk.

10.3 timeframe

  • zypp2 classes integrated into zypp

Planed Refactorings

http://svn.suse.de/trac/zypp/file/trunk/doc/block-diagram.png?rev=3785&format=raw

Target and Sources

Target is a source, a target provides resolvables, There should be a ResolvableSource interface common for sources and target. Commit should be a separate class.

Media Handling

  • Rip out media access code from Sources
  • Mix Media Set and that code into a MediaSetAccess class not tied to the sources
  • handling of download and verification of downloaded metadata.

SourceCache

This class will provide readwrite access to a sqlite database

SourceCacher

Source specific handlers that will use MediaSetAccess (if required) to download metadata and use SourceCache to cache it.

CachedSource

Will construct resolvables directly from the database using source cache

Plain dir source

Will implement volatile sources reading direcly from a directory of rpms

This design somehow implies other sources will need to be cached first

Key handling

Separate "import" from "trust". You can trust a key without importing it into the trusted keyring. It has the same effect, except that next time it will be untrusted. It is required to make noninteractive programs work, as they cal always skip importing keys.

PublicKey

class to encapsulate all PublicKey Information

Signature

Same as PublicKey, but for signatures


Last edit in Trac '07/21/06 13:23:40' by 'dmacvicar'


Last edit in Trac '07/21/06 13:23:40' by 'dmacvicar'


Last edit in Trac '07/21/06 13:23:40' by 'dmacvicar'


Last edit in Trac '07/21/06 13:23:40' by 'dmacvicar'