SmartPackageManager

Differences between revisions 14 and 16 (spanning 2 versions)
Revision 14 as of 2006-06-22 08:12:48
Size: 3196
Editor: ALagny-109-1-10-249
Comment: proofreading
Revision 16 as of 2006-06-22 14:00:47
Size: 3785
Editor: ALagny-109-1-2-101
Comment:
Deletions are marked like this. Additions are marked like this.
Line 18: Line 18:
 1. Bob upgrades his distribution and is confused because apt makes bad decisions on the upgrade. When he tries smart it is doing better.
 1. Fred wants to hack on a package-managment application. He is frustrated by the libapt interface.
Line 24: Line 27:
== Implementation == For edgy we will make it easier for people to use smart and encourage its usage. We will also start to add features to it that are currently missing but that are important for ubuntu.
Line 26: Line 29:
=== Code ===

=== Data preservation and migration ===
We will create a launchpad "smart testing" team that encourages the usage and testing of smart in ubuntu.
Line 32: Line 33:
There are various features that we would like to get for smart: There are various issues that need to be adressed:

 * make the transition from apt easier by reading apt's `sources.list` file and dynamically track the content there (http://svn.smartpm.python-hosting.com/trunk/smart/plugins/aptchannelsync.py). We may even consider making it a two way process (merging changes back from smart into apts sources.list).
 * improve the gpg key handling in smart and auto-import the apt-keys (http://lists.labix.org/pipermail/smart-labix.org/2006-June/001055.html)
 * give the Gtk UI HIG love and improve it in general (model after the synaptic glade file?)
 * Qt frontend (to make Riddell happy :) - this requires it to be possible to access the konsole terminal widget from pyqt which is not possible right now.
 * the tools like apt-listchanges/apt-listbugs/debconf need to continue working

 * port the tools (gdebi, update-manager, gnome-app-install, update-notifier, unattended-upgrades) to smart. This could be done by providing a compatibility layer for python-apt.
 * change the software-properties channel editor to edit channels in a nicer way
 * switch /etc/cron.daily/apt to smart (and provide the same features)
 * the installer makes heavy use of apt-get/aptitude, this needs to be done
 * progress information on installing/fetching via a fd needs to be supported for the installer
 * the package needs to be split into smart{-gtk,-whatever frontend}
 * dist-upgrade where the python version changes may become a issue, we need to check this (should be easier given PythonRoadmap)
 * do checking of the time/space consumption in a clean chroot for upgrade/complex installs
 * memory is a big issue on the desktop and alternate install CDs
Line 36: Line 53:
 * support for "deb-src" type URIs (still required with the NoMoreSourcePackages spec)?
Line 37: Line 56:
 * support for "deb-src" type URIs (still required with the NoMoreSourcePackages spec)?
 * Qt frontend (to make Riddell happy :) - this requires it to be possible to access the konsole terminal widget from pyqt.
 * port the tools (gdebi, update-manager, gnome-app-install, update-notifier, unattended-upgrades) to smart
 * give the Gtk UI HIG love and improve it in general (model after the synaptic glade file?)
 * change the software-properties channel editor to edit channels in a nicer way
 * improve the gpg key handling in smart and auto-import the apt-keys (http://lists.labix.org/pipermail/smart-labix.org/2006-June/001055.html)
 * make the transition from apt easier by reading apt's `sources.list` file and dynamically track the content there (http://svn.smartpm.python-hosting.com/trunk/smart/plugins/aptchannelsync.py) [make this a two way process]
 * switch /etc/cron.daily/apt to smart (but provide the same features)
 * the installer makes heavy use of apt-get/aptitude, this needs to be done
 * progress information on installing/fetching via a fd needs to be supported for the installer
 * smart testing team (with jdub in it!)
 * the tools like apt-listchanges/apt-listbugs/debconf need to continue working
 * the package needs to be split into smart{-gtk,-whatever frontend}
 * dist-upgrade where the python version changes may become a issue, we need to check this
  * should be easier given PythonRoadmap
 * do checking of the time/space consumption in a clean chroot for upgrade/complex installs
 * memory is a big issue on the desktop and alternate install CDs

Summary

There is a new package management system available written by GustavoNiemeyer called "smart". It is able to deal with debs, RPM, slackware tgz (at the same time). We should consider using it in Ubuntu and figure out what features (if any) are missing.

Rationale

Smart has a very clean architecture and is used by many other distributions already. It has the potential to become the de-facto standard as a package manager.

Use cases

  1. Bob upgrades his distribution and is confused because apt makes bad decisions on the upgrade. When he tries smart it is doing better.
  2. Fred wants to hack on a package-managment application. He is frustrated by the libapt interface.

Scope

We need to evaluate how to make a migration from apt to smart possible and painless and what features/changes are required to make smart the first-class package manager for Ubuntu.

Design

For edgy we will make it easier for people to use smart and encourage its usage. We will also start to add features to it that are currently missing but that are important for ubuntu.

We will create a launchpad "smart testing" team that encourages the usage and testing of smart in ubuntu.

Outstanding issues

There are various issues that need to be adressed:

  • make the transition from apt easier by reading apt's sources.list file and dynamically track the content there (http://svn.smartpm.python-hosting.com/trunk/smart/plugins/aptchannelsync.py). We may even consider making it a two way process (merging changes back from smart into apts sources.list).

  • improve the gpg key handling in smart and auto-import the apt-keys (http://lists.labix.org/pipermail/smart-labix.org/2006-June/001055.html)

  • give the Gtk UI HIG love and improve it in general (model after the synaptic glade file?)
  • Qt frontend (to make Riddell happy Smile :) - this requires it to be possible to access the konsole terminal widget from pyqt which is not possible right now.

  • the tools like apt-listchanges/apt-listbugs/debconf need to continue working
  • port the tools (gdebi, update-manager, gnome-app-install, update-notifier, unattended-upgrades) to smart. This could be done by providing a compatibility layer for python-apt.
  • change the software-properties channel editor to edit channels in a nicer way
  • switch /etc/cron.daily/apt to smart (and provide the same features)
  • the installer makes heavy use of apt-get/aptitude, this needs to be done
  • progress information on installing/fetching via a fd needs to be supported for the installer
  • the package needs to be split into smart{-gtk,-whatever frontend}
  • dist-upgrade where the python version changes may become a issue, we need to check this (should be easier given PythonRoadmap)

  • do checking of the time/space consumption in a clean chroot for upgrade/complex installs
  • memory is a big issue on the desktop and alternate install CDs
  • tracking and auto-removal of unused dependencies (just like aptitude)
  • use that in gnome-app-install to be able to automatically remove the dependencies that were installed for a given application
  • use the "automatically-installed" info in the problemResolver (consider non-automatic packages more important during conflict resolution)
  • support for "deb-src" type URIs (still required with the NoMoreSourcePackages spec)?

  • support for translated package descriptions (similar to the Debian DDTP format?)


SmartPackageManager (last edited 2008-08-06 16:29:27 by localhost)