[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Package authentication proposal



I finally got a chance to take a good look your dselect proposal today.
I think it is a very big improvement.  I think this "novice" mode might be
powerful enough to replace the existing dselect.  Is there anything that
the existing expert mode offers that the proposed novice mode doesn't?
Looks real good!

Here are some of my opinions, comments, and recommendations.  There are
four of them.  Shoot em'down or praise them...  ;-)

1) The program should ask the user to confirm any action that starts the
actual download, check, un-pack, install, or remove process.
If the user chooses not to proceed, give a message something along the
lines of:

+------------------------------------------------------------------------+
| You chose to defer making the specified changes to your system.  The   |
| changes you asked for will be remembered.  If you wish to go ahead with|
| these changes at a later time, select "commit" from the Startup menu.  |
+------------------------------------------------------------------------+
|                   Press <Return> to continue...                        |
+------------------------------------------------------------------------+

This implies there will need to be something like a "commit" or "do it"
menu item somewhere.


2) When selecting by Priority or Section, put in another menu layer,
rather than requiring the user to cycle through all the options.  This
would be especially useful when people want to upgrade, install, or
remove just a few packages.

Something along the lines of:

+------------------------------------------------------------------------+
|  Install and/or upgrade package(s) or system                           |
|  Which section do you wish to upgrade ?                                |
|  +------------------------------------------------------------------+  |
|  |  * base            Base system                                   |  |
|  |    mail            Mail utilities, etc..,                        |  |
|  |    x11             etc...                                        |  |
|  |    etc...          etc...                                        |  | 
|  +------------------------------------------------------------------+  |
|        Press <Return> to choose section,   <Esc> to Exit               |
+------------------------------------------------------------------------+

Where the "*" could indicate that changes have already been requested
in the base section.



3) My screen style preferences:

I think that a dialog box style without a mouse is not as intuitive
as other options.  Namely, tabbing between screen sections doesn't
seem obvious.  Assuming that a mouse is not required, I prefer another
style of interface.

Here is my prefered style:

<Esc> always back's out of the screen. (Except for the top level menu,
which should have a Quit menu item.)

<Return> always activates the selected menu item.

Select the menu items with up and down arrows.  Also support vi, emacs,
and other popular cursor movement keys for traversing menu items.  And
where appropriate support the Page-up, Page-down, Home, and End keys.

This style requires that the user remember just a very few simple
concepts.  These concepts can be described on each screen with little
use of screen real-estate.

To conform to this style, the Individual Package selection screen
could place "Go Back" and "Concise List" on the menu,  And the
"Concise List" could make the "OK" or "Done"  action Accessible
with a Hot Key, and putting the followin message in place of the
dialog buttons:

  Press <D> when done,  <Return> for details on a package,  <Esc> to Exit.




4) It would be nice for the startup screen to display the access-method
information as well as the other information.  I still like having a
separate menu item for selecting the access method.


Over all, I like very much what you have proposed.  I think it will be
a big improvement.

(I just started reading debian-devel a couple of weeks ago.  Ian, you
must be putting in tons of time on this!  Thanks to you and many others
for the time and excellent work that you are putting into project!

>Startup screen:
>
>+------------------------------------------------------------------------+
>|  Debian GNU/Linux `dselect' package handling frontend.                 |
>|  +------------------------------------------------------------------+  |
>|  |  install         Install and/or upgrade package(s) or system     |  |
>|  |  remove          Remove package(s) currently installed           |  |
>|  |  fix             Attempt to fix broken packages                  |  |
>|  |                                                                  |  |
>|  |  expert          Experts' user interface                         |  |
>|  |                                                                  |  |
>|  |  quit            Quit dselect                                    |  |
>|  +------------------------------------------------------------------+  |
>|                             +----------+                               |
>|                             |    OK    |                               |
>|                             +----------+                               |
>+------------------------------------------------------------------------+
>|  130Mb free disk space (170Mb used out of 300Mb) on /usr               |
>|   15Mb of packages are still to be installed;  115Mb will be left.     |
>+------------------------------------------------------------------------+
>|  200 packages available, 200 selected, 178 installed.                  |
>|   20 packages are yet to be installed.                                 |
>|    2 packages are on the system, but broken;                           |
>+------------------------------------------------------------------------+
>
>`expert' passes the user on to what is curretnly the dselect main
>menu.
>
>`install', `add', `remove' and `fix' vary in their details.  Each of
>them goes through the access method selection and configuration,
>updates the list of available packages, asks the user about some
>subset of the packages available and/or installed, and then carries
>out the actions they requested.
>
>Each of these options will ask the user about packages whose installed
>state doesn't match their desired state, or which have an error flag
>set.
>
>Additionally, `install' asks the user about all the packages available
>or currently installed; `add' asks the user about packages which are
>available but not installed; `remove' asks the user about packages
>which are installed.  `fix' asks the user only about packages which
>aren't in their desired state, as recorded.
>
>This asking happens as follows:
>
>First, for each `status' of package (eg broken ones, new ones, old
>ones they might want to remove, etc), there is an introductory screen
>which gives them the opportunity to make the same decision for many
>packages.
>
>+------------------------------------------------------------------------+
>|  Attempt to fix broken packages                                        |
>|  Currently-broken packages - which to retry ?                          |
>|  +------------------------------------------------------------------+  |
>|  | There are currently 2 packages which have not been correctly     |  |
>|  | installed or configured.  You may try installing them again,     |  |
>|  | or (using the `individual' and `list' options) choose to remove  |  |
>|  | some of them instead of trying again.                            |  |
>|  +------------------------------------------------------------------+  |
>|  +------------------------------------------------------------------+  |
>|  |  all             Retry the installation of all broken packages   |  |
>|  |  individual      Decide for each broken package separately       |  |
>|  |  list            Go straight to listing of all broken packages   |  |
>|  |  none            Don't attempt to fix any of them                |  |
>|  +------------------------------------------------------------------+  |
>|                     +----------+      +----------+                     |
>|                     |    OK    |      |  Abort   |                     |
>|                     +----------+      +----------+                     |
>+------------------------------------------------------------------------+
>
>`individual' presents a screen for each package, and `list' shows a
>one-per-line scrollable listing of the packages involved.  These
>screens are the same for all packages which are being asked about,
>regardless of status, and are described below.
>
>+------------------------------------------------------------------------+
>|  Install and/or upgrade package(s) or system                           |
>|  Which new packages do you wish to install ?                           |
>|  +------------------------------------------------------------------+  |
>|  |  important       Only the most important packages       30Mb     |  |
>|  |  standard        Standard text-mode installation        50Mb     |  |
>|  |  optional        Full-featured installation, with X11  150Mb     |  |
>|  |                                                                  |  |
>|  |  priority        Select in more detail, grouped by priority      |  |
>|  |  section         Select in more detail, grouped by section       |  |
>|  |  list            Go straight to listing of all those available   |  |
>|  |  none            Install none of the new packages                |  |
>|  +------------------------------------------------------------------+  |
>|                     +----------+      +----------+                     |
>|                     |    OK    |      |  Abort   |                     |
>|                     +----------+      +----------+                     |
>+------------------------------------------------------------------------+
>
>For upgrades, the user sees:
>+------------------------------------------------------------------------+
>|  Install and/or upgrade package(s) or system                           |
>|  Which already-installed packages do you wish to upgrade ?             |
>|  +------------------------------------------------------------------+  |
>|  |  all             Upgrade everything to the latest version        |  |
>|  |  priority        Select in more detail, grouped by priority      |  |
>|  |  section         Select in more detail, grouped by section       |  |
>|  |  list            Go straight to listing of all those available   |  |
>|  |  none            Don't upgrade anything                          |  |
>|  +------------------------------------------------------------------+  |
>|                     +----------+      +----------+                     |
>|                     |    OK    |      |  Abort   |                     |
>|                     +----------+      +----------+                     |
>+------------------------------------------------------------------------+
>
>If the user says `important', `standard' or `optional' then new
>packages with at least that priority are selected for installation and
>others are recorded as deselected (so that they won't, for example,
>count as new next time).
>
>If the user selects `priority' or `section' from the new packages or
>upgrade screens then they get a screen for each priority or section,
>respectively, which looks like this:
>
>+------------------------------------------------------------------------+
>|  Install and/or upgrade package(s) or system                           |
>|  Packages with priority classification `optional'                      |
>|  Which new packages with priority `optional' do you wish to install ?  |
>|  +------------------------------------------------------------------+  |
>|  |  all             All of them                            10Mb     |  |
>|  |  individual      Decide for each package separately              |  |
>|  |  list            Select from a list of the relevant packages     |  |
>|  |  none            None of them                           50Mb     |  |
>|  +------------------------------------------------------------------+  |
>|                     +----------+      +----------+                     |
>|                     |    OK    |      |  Abort   |                     |
>|                     +----------+      +----------+                     |
>+------------------------------------------------------------------------+
>
>When removing, you get the following screen:
>+------------------------------------------------------------------------+
>|  Remove packages from system                                           |
>|  Which already-installed packages do you wish to remove  ?             |
>|  +------------------------------------------------------------------+  |
>|  |  list            Select from list of all packages installed      |  |
>|  |  priority        View packages organised by priority             |  |
>|  |  section         View packages organised by section              |  |
>|  |  none            None of them                                    |  |
>|  +------------------------------------------------------------------+  |
>|                     +----------+      +----------+                     |
>|                     |    OK    |      |  Abort   |                     |
>|                     +----------+      +----------+                     |
>+------------------------------------------------------------------------+
>
>`priority' and `section' simply present a scrollable list of
>priorities and sections, respectively, where selecting a priority or
>section produces a list of the appropriate packages.
>
>The individual package selection screen looks like this:
>+------------------------------------------------------------------------+
>|               smail - Electronic mail transport system                 |
>| +--------------------------------------------------------------------+ |
>| | Smail is the recommended mail transport agent (MTA) for Debian.    | |
>| |                                                                    | |
>| | An MTA is the innards of the mail system - it takes messages from  | |
>| | user-friendly mailer programs and arranges for them to be          | |
>| | delivered locally or passed on to other systems as required.       | |
>| |                                                                    | |
>| | In order to make use of it you must have one or more user level    | |
>| | mailreader programs such as elm, pine, mailx or Emacs (which has   | |
>| +-----=== press space for more, backspace to go back === 80% ===-----+ |
>|                                                                        |
>| Installed, version 3.1.29.1-12      Available: 3.1.29.1-14             |
>| +--------------------------------------------------------------------+ |
>| |  upgrade         Upgrade the package to the version available      | |
>| |  stay            Stay with this version (do not upgrade)           | |
>| |  remove          Remove the package                                | |
>| |  purge           Remove the package and all its configuration      | |
>| +--------------------------------------------------------------------+ |
>|    +------------+   +------------+  +------------+  +------------+     |
>|    |     OK     |   |  Go back   |  |Concise list|  |   Abort    |     |
>|    +------------+   +------------+  +------------+  +------------+     |
>+------------------------------------------------------------------------+
>
>The menu items available vary.  There is space for three items, though
>sometimes not all of them are present.
>
>The first item will set the desired state to `install'.  Its
>appearance depends on the current state of the package - one of:
>| |  install         Install the package
>| |  reinstall       Re-install the package to try to fix it
>| |  upgrade         Upgrade the package to the version available
>for a deinstalled package, a badly installed package (with the error
>flag set, or half-installed, unpacked or half-configured), and a
>package which is installed but of which a new version is available,
>respectively.
>
>The second item sets the desired state to `purge' or to `stay' (this
>will do the same as the `hold' flag does at the moment), depending on
>whether it is already installed:
>|  |  not             Do not install this package
>|  |  stay            Stay with this version (do not upgrade)
>
>The third and fourth items are either
>|  |  remove          Remove the package
>|  |  purge           Remove the package and all its configuration
>(for a package currently installed) or
>|  |  purge           Remove the package's configuration
>(for a package currently removed but with configs) or absent.
>
>The default will be set to the setting required by any previous
>choices (conflicts/dependencies), or to the previously-chosen setting
>if there is one, or failing that so as to install new packages with
>priority Standard or better and not to install others.
>
>If you select concise list (by tabbing, as in dialog) you go from a
>package-by-package display to the listing which shows one package per
>line:
>
>+------------------------------------------------------------------------+
>|       New versions of packages available, priority `important'         |
>+------------------------------------------------------------------------+
>|  [install]   smail         Electronic mail transport system            |
>|  [upgrade]   dpkg          Package maintenance system for Debian GNU/L |
>|  [stay   ]   xserver-s3    XFree86 3.1.2 S3 server                     |
>.   ...        ...           ... lots more of these ...                  .
>|  [not    ]   joe           Joe's Own Editor - A Free ASCII-Text Screen |
>+-----=== press space for more, backspace to go back === 90% ===---------+
>|        +------------+        +------------+       +------------+       |
>|        |     OK     |        |  Details   |       |   Abort    |       |
>|        +------------+        +------------+       +------------+       |
>+------------------------------------------------------------------------+
>|         Use the spacebar to change the setting for a package.          |
>+------------------------------------------------------------------------+
>
>When the user has been through all the packages, before dselect
>actually does anything, it checks the conflicts and dependencies.  For
>each problem it finds it displays a screen looking like this:
>+------------------------------------------------------------------------+
>|  Install/upgrade - Conflict/dependency check                           |
>|  +------------------------------------------------------------------+  |
>|  | You have selected to install:                                    |  |
>|  |  smail - Electronic mail transport system.                       |  |
>|  |                                                                  |  |
>|  | This package recommends that you install one of:                 |  |
>|  |  pine - An e-mail user agent with MIME and IMAP support          |  |
>|  |  mailx - A simple user interface to sending and receiving        |  |
>|  |  elm - A full screen ELectronic Mail interactive user            |  |
>|  +--=== press space for more, backspace to go back === 85% ===------+  |
>|                                                                        |
>|  How about installing pine ?                                           |
>|  +------------------------------------------------------------------+  |
>|  |  ok         Select pine for installation                         |  |
>|  |  remove     Choose not to install smail                          |  |
>|  |  list       Select which of these packages you want from a list  |  |
>|  |  details    Show technical details of the dependency             |  |
>|  |  override   Override recommendation - may cause problems later   |  |
>|  +------------------------------------------------------------------+  |
>|                     +----------+      +----------+                     |
>|                     |    OK    |      |  Abort   |                     |
>|                     +----------+      +----------+                     |
>+------------------------------------------------------------------------+
>
>Overridden recommendations don't stay overridden from one dselect run
>to the next.
>
>


Reply to: