Roadmap (updated 08.08.2010)

This is a list of planned, not promised, future ideas for apt-rpm. New ideas and feedback welcome and so are patches...

Mid-term

* Next "new feature"-release:
  - fix the md5/sha1sum handling for source downloads
  - create all the necessary directories and (dummy) config files from 
    Makefiles so that apt is usable after "make install" 
  - fix ShowVersions to not mix up versions on replaced and removed packages
  - review and merge useful bits from debian-apt 
  - continued code cleanup + bugfixing
  - add rollback support (patch exists)
  - review and merge useful patches from altlinux and other vendors' packages
    (started)
  - improved apt-cache viewing (just compare 'yum list' and
    'apt-cache pkgnames') and other misc "cosmetical" things (started)
  - implement installing by arbitrary filenames for repomd (done)
  - see if there are any low-hanging fruits for optimizing repomd (done)
  - enable access to package changelog and file list data via libapt-pkg, 
    cli and Lua interface (done)
  - create libapt-pkg-level install progress meter API that can be sanely
    used from Synaptic etc (started)
  - add package erasure/cleanup progress meter to rpm transaction (done,
    but related to above)
  - dont munge filenames on download (done)
  - implement sqlite db as repodata extension to repomd (done)

Long-term (lorg5 and beyond), in no particular order:

* Introduce proper repository configuration into apt
  - per-repo settings such as signature checking, proxy config...
  - mirror handling
  - cannot be sanely done with sources.list format - going to be a big
    hassle wrt Synaptic and other apt-based software!
* Integrated package signature checking
  - per-repo signature(s) 
  - auto-importing (with confirmation)
* Improve documentation
  - find and document all configuration options
  - remove debianisms from the documentation
* Improve pinning
  - saner syntax
  - pinning by package signature
* Improvements to command line tools
  - --update cli+config option to update + (dist)upgrade/install in single go
  - cli+config option to clean (all) archives aftern upgrade/install operations
  - easy runtime switching of enabled/disabled repositories
* Enable repomd groups file processing (eg synaptic tasks etc)
* Implement signed repomd support: 
  http://en.opensuse.org/Secure_Installation_Sources
* Capture rpmlib messages about *.rpmsave etc files for viewing/processing after
  transaction completes 
* Download cache reorganization (depends on repository configuration
  improvements)
* Investigate further optimization possibilities especially with repomd
  (midlevel caches etc)
* Saner allow-duplicated + multilib package handling 
* Drop support for ancient rpm versions (rpm < 4.1 or so) to get rid of 
  LOTS of #ifdef's and ugly code, make better use of the "new" rpmlib API.
  Better yet, figure out a way make the code more 
  maintainable even with all the old versions.
* Continued general code cleanups 
* (Gradually) reformat the whole codebase for readability + consistency?
* Work with libapt-front folks for better APT API
  - make it work with apt-rpm
  - make sure it takes rpm's requirements into account
  - help design + implement the API
* Add support for delta rpm's

Last updated 08.08.2010