Jul 09

State of the Aptitude (week 7)

Category: Summer of Code, debianObey Arthur Liu @ 10:39 pm

New status update!

Here’s what Aptitude looks like:

aptitude-20080709-9

(more screenshots after the break)

I’ve been exploring how the APT libraries work and how to interact with the aptitude back-end and here’s what it can do now:

  • Update package lists
  • Display package lists
  • Basic package search
  • Mark packages for install/remove/purge/keep/hold
  • Display package actions for execution
  • Display conflicts
  • Display and navigate between package conflict solutions
  • Apply them
  • Execute package actions (ie. actually install stuff)

What’s missing:

  • A real user interface
  • Being reliable…
  • Packages dependencies, pre-dependencies, etc.
  • Hyperlinks between packages
  • Advanced package search
  • Tags support (tag clouds ?)
  • Linking with interesting data sources like popcon
  • A lot of interesting things

Basic functions of a package manager are already covered. We’re still at the APT API exploration phase although we’re almost done with it. I will soon start working on the final user interface and the real code design.

The current code is about 2000 lines of hastily hacked together C++ and XML. I’ll have to restart the coding with a more elaborate Object design. Something that will be easier to work with in the future.

The code is on http://dev.graffit.net/aptitude/trac. You can try to compile it and play with it. On the other hand I’m going to scrape most of the code soon for the restart so if you’re bored..

A walkthrough and more screenshots after the break.

Here’s a walkthrough of what you can do right now:

aptitude-20080709-2

aptitude-20080709-3

aptitude-20080709-4

aptitude-20080709-5

aptitude-20080709-6

aptitude-20080709-7

aptitude-20080709-8

aptitude-20080709-9

7 Responses to “State of the Aptitude (week 7)”

  1. Luca Bruno says:

    Great work! Just some questions:
    1. Why have you named it “aptitude”?
    2. I see a terminal in the last screenshot, so what’s the difference with synaptic?

  2. Mikko Rantalainen says:

    Re: resolver UI:
    The current resolver UI is similar to command line apt; only one solution is displayed at a time and there are prev/next buttons (here named “back” and “forward” which suggests that all these solutions should be applied in a given order) in addition to apply. How about displaying all the solutions on one page one below another with a possibility to choice exactly one solution? For example, the UI could display one solution in a frame/box/fieldset with a radio button in front of the box. Repeat for all the possible solutions. The just put all those radio buttons and boxes in a scrollable viewport. (Not too far from the UI used in Toos – Addons menu selection in Firefox 3 – there is one item for each extension and each item consists of an icon, title, description and possible action buttons. In case of aptitude, the action button could be “Apply this solution”)

    Well done otherwise!

  3. Obey Arthur Liu says:

    @Luca Bruno
    1. The original program is nammed Aptitude..
    2. The terminal is only for debugging purposes. The final interface will probably have the dpkg run in an embedded terminal like Synaptic.

  4. Sebastian Heinlein says:

    Hello,

    I worked on the Synaptic user interface some years ago and the redesign of gnome-app-install. Have you been in contact with Michael Vogt (mvo) mvo or Canonical’s usability expert Matthew Paul Thomas (mpt)? The later one has got some ideas about a new package manager. It would be sad to see just another package manager that makes all the mistake that we already made twice.

    You should try to write a workflow orientied and not feature orientied user interface.

    Cheers

  5. Daniel Burrows says:

    Sebastian,

    Arthur has talked about a workflow-oriented interface.  At the moment he’s focused on understanding how to implement all the features that he will need, hence the current feature-oriented approach.

  6. itux says:

    it seems to be cool, maybe useful to people who loves a GUI.
    but i prefer the terminal better, anyway, it’s really a great job!

  7. Anton Piatek says:

    Looks cool, I like the layout – better than synaptic imho.
    One thing I find really difficult in synaptic is resolving tricky dependencies (especially ones that apt fails on, but aptitude often offers a solution, but it looks like you already fix that)
    Also trying to force newer/older versions of a package is rather trying in synaptic
    What is in the first tab? Surely you just need a button to update the cache?
    How about an editor to the apt config files and sources list (the ubuntu package thing has something like that, though I found it annoying).
    Definitely worth talking to the people mentioned by Sebastian

Leave a Reply