To be done
==========

[post-beta]
- [3.0 should] package auth (see CheckAuth in apt-get.cc)
- [3.0 should] the screen changes during commit progress need to be fixed
- [3.0 could] apply/revert/... buttons should have icons
- [3.0 should] app icon: Icon=system-software-update as a suggestion
- [3.0 should] append XP<search-line> (if it has no spaces, etc in it) to the
  Xapian search to get package name hits ; try with app-install-data (#170840)
- add dependency on app-install-data or something... probably a Recommends?
- [3.0 should] #170821, #170823, #170824, #170835
- [3.1 could] #170825
- [3.0 should] improve scrolling in package view (need per-pixel scroll, not
  per-item and also see #170838)
- [3.0 could] initial window sizing (#170841)
- [3.1] multi-package actions (#170842)
- [3.1] enter to cycle available package actions (improves keyboard usability;
  #170843)

from alpha6 announcement...
- Sometimes, it seems that the installer search manages to break the
  layout. Change the search text and try again, it might fix itself. If you
  find a way to reproduce, please let me know!
- The installer search is still a little wonky at times (and maybe slow,
  dunno). And when there are no results, it keeps whatever groups there were
  before, they are just all empty. Oops.

- instead of deleting the progressbars after item has finished downloading,
  maybe keep a list of orphans and re-use them; time out items unused after a
  few seconds...

- [3.1 could] when running in callgrind, "reading state information" can be
  seen to jump to 100% every other update... Duh. Seems to be a
  valgrind/callgrind-only glitch.
- [3.1 should] scrolling in download view is borkish
- [3.1 should] suite selector in installer
- [3.1 should] package tags in details?
- [3.1 could] do not gray out the current active view in sidebar when applying?
- [3.1 could] add feedback saying "N additional results, maybe

- [3.1] auto-completion (as suggested by Enrico)
- [3.1] clickable facets, sliding out an extra column between filter and
  packages with all tags in the facet
- [3.1] an "all facets..." clickable label at the bottom of tag list, sliding
  out like above, but with all facets
- [3.1] autoremove?
- [3.1] free space check for download
- [3.1] free space check for installing
- [3.1] manipulating hold status of packages
- [3.1] version selection
- [3.1] option to disable automatic recommends installation
- [3.1] check for download failures other than "total failure"; possibly
   prompt for doing a partial installation of what we have?
- [3.1] commit cancellation -> kill current operation and run recovery
- [3.1] dpkg transcript (#170836, #170839)
- [3.1 could] use solid to check for network access (#170837)
- [3.1 could] export KDE proxy settings to the http/ftp fetchers

- [3.1, 3.2?] some sort of browsing (as opposed to search) mode
- [3.1 or later] get rid of the semi-busy waiting... how?

- [3.1] do something about getRecord exceptions when files disappear...
   (treat this as database being out of sync? or better treat it as
   nonfatal error and ignore it? or hold everything open all time)
- [3.2] maybe introduce a "warning" system in addition to fatal (thrown)
   errors
- package relationships

The laziness problem
====================

When the laziness causes that a database load is triggered from inside a paint
handler, we are screwed -- can't display progress, since we are inside a
different paint... we need to avoid that situation, somehow (and yes, we don't
even know in the progress display code that someone else is halfway through a
paint).

One option would be to force cache loads sooner, but relying on that sounds
like something that'll come back to haunt us; another would be forcing the
item's data when adding an item to a view or somesuch, so the paint will have
the data ready -- that's a little less fragile, although still suboptimal (what
if data asynchronously expires? can that ever happen?)

The search problem
==================

(I imagine the result set is empty till we have something to search for:
installed/not-installed/whatever packages, search box, if we have motivation,
tags?)

The tag filter should probably work like originally intended, and we start
filling when some tags are selected. We cut off at a hundred or so packages,
more is useless anyway (we get that from xapian really, included/excluded tags
work like normal search terms, yay). We present a list of tags, grouped by
facet, like this:

- Role
     - Application
     - Utility
- User Interface
     - Qt
     - Gtk
   
for about half-dozen most discriminating tags. Each tag has "yes" and "no"
icons next to them (could be a plus and a minus, or something)... Animated
transition to a new tagset would be cool, although I don't feel like doing that
right now. For now I'd go with a button to refresh tags (eg. clickable "more
tags...").

Various non-code
================
(fixed) Icon location! Not /usr/share/apps but /usr/share/kde4/apps, it seems.

(addressed; debian)
fixed 379499 3.0~alpha6
fixed 480359 3.0~alpha6

If we have backport, drop note to XVampireX @ freenode

Done
====

- [3.0 could] add a "more..." or "details..." hyperlink to the extender to get
  users to the details tab
- [3.0 should] cancelling update should leave a message of sorts...
- [3.0 could] updater could re-upgrade and move to "updates" (preview, really)
  tab after fetching lists (this' been a regression, really...)
- [3.0 should] menus! (help, file->quit)
- [3.0 could] kactions for sidebar
- [3.0 MUST] update (adept's own) desktop files!
- [3.0 should] "input of type error is not implemented" blah blah...
- [3.0 should] set a default package for Details, I guess...
- [3.0 MUST] Use ProgressWidget::error() where appropriate, add a string
  parameter, etc. (after download failure, eg.)
- [3.0 MUST] remove non-implemented tabs under details
- [3.0 should] upgrade should give feeback when there's nothing to upgrade
- [3.0 should] do not try to update xapian index when not root
- [3.0 should] add an adaptive scrollbar to transients
- [3.0 MUST] catch exceptions from recovery
- (hopefully done) [3.0 should] we still have double-free problems upon
  exit... only happens with packaged binaries it seems (both libept0 and adept)
- [3.0 should] adduser long description is mis-formatted
- [3.0 MUST] icons in installer went away...
- [3.0 MUST] icons in manager are installed in wrong location...
- [3.0 should] get back to initial set when we get to an empty query
- [3.0 should] clear button for tags
- [3.0 should] initial tag set -- an useful selection of some sort
- [3.0 should] some way to manage height of the tag stack and to avoid
  label squashing (we have a fixed height set, hopefully that's enough)
- [3.0 should] tag filter needs to set some sort of useful fixed width
  (maybe some 20 em or so, to avoid width changes...)
- [3.0 (beta) MUST] basic filtering -- states at very least (see below)
- [3.0 should] do something about apt-listchanges and the like... (set
  APT_LISTCHANGES_FRONTEND to something sensible I guess...) ; set
  APT_LISTBUGS_FRONTEND to none, too
- [3.0 MUST] make sure we properly mark packages for the autoremove feature
- [3.0 MUST] download errors need to be handled
- [3.0 MUST] when dpkg fails, we do not report the error? weeh...
- [3.0 should] Sometimes adept crashes on exit with double free heap
  corruption
- [3.0 should] sorting alphabetically in installer
- [3.0 should] searching (names, case-insensitive + xapian) in installer...
- [3.0 should] closing Adept during action of sorts crashes it.
  Suspect processEvents().
- [3.0] held packages don't show candidate version in info
- [3.0 MUST] revert is hell-slow, gods only know why
- [3.0 MUST] only rebuild xapian index "sometimes" (no more than once in
   24 hours or so)
- [3.0 MUST] multi-download is broken... (old bits stay around)
- [3.0 should] xapian database update
- unhandled exceptions from _system->Lock() in apply()
- (hopefully done) [3.0 MUST] any remaining too-lazy database opening issues
  need to be hunted down (at least one happens after dpkg --configure -a when
  reopening the cache)

