Features/ApplicationInstaller

= Application Installer =

Summary
Fedora has a couple of ways to install packages - either via the yum commandline, or with the new PackageKit GUI. However, a package doesn't map very well to most users idea of an application. Package lists tend to include a lot of confusing entries that aren't at all what a user thinks when he is looking for an application.

This feature proposes that we develop a web application that allows users to browse and search for applications, and then install the packages required for an application using PackageKit/yum.

The only portion of this feature that will need to actually ship with Fedora is the client side pieces that pass the installation request from the web browser to PackageKit.

Owner

 * Name: Rnorwood

Current status

 * Targeted release:
 * Last updated: August 6, 2008
 * Percentage of completion: 75%
 * There is a demo of the current progress available at http://publictest10.fedoraproject.org/amber
 * Owen Taylor has written a browser plugin that works with PackageKit to install packages from the browser. It will be available as part of PackageKit for F10.

Detailed Description
This feature will consist of a !TurboGears web application, and a client side browser plugin. It will use 'seed' data from Fedora's comps.xml, package DB, and the desktop files found in some packages. There will also be a method in place to keep in sync with changes to Fedora's package set - adding and removing new applications, as well as changing the associations between applications and packages.

The applications will be categorized for browsing, and also searchable. In addition to the existing data mentioned above, users will be able to supplement this with comments, reviews, tags, and perhaps other information.

For the initial release, only the Fedora repositories will be supported. However, the design will be mindful of possible future use by other repositories or even other distributions.

The web application (codename Amber) is here: https://fedorahosted.org/amber/wiki

Mockups

 * http://yipyop.com/fedora/images/fedora_apps.png
 * http://yipyop.com/fedora/images/fedora_app_page.png

Test Instance

 * http://publictest10.fedoraproject.org/amber

Primary use cases
1. I want to do 'X' with my computer. * Import photos from my camera and put them on Facebook or Flickr. * Import videos and put them on youtube. * Fix the red-eye in this photo. * Connect to MSN/ICQ/AOL * Browse the internet * Read my email * Play a game * Write a report * Make a presentation

2. I can already do 'X' with my computer, but maybe I can do it better with different software. * This software sucks. Is there something better out there? * Someone told me about the great new web browser/email client/game that I should check out. * Games are a bit of a special case, because a user is more likely to look for a new game without being dissatisfied with their current games.

Benefit to Fedora
A way for users to install software from an application-centric point of view instead of a package-centric point of view has clear benefits.

Scope
A web application, as well as browser plug in. An initial release is planned for the F10 time frame, with package data from F10.

Test Plan

 * Launch Application Installer from Applications menu. (Menu item not available yet)
 * Browse, search for, and install applications from the web UI.
 * Log in with Fedora Account System username and password
 * Comment on and review applications
 * Note that while users should be able to install applications without logging in, comments are restricted to logged-in users

User Experience
Users should have an 'Add new applications' button somewhere in the system menu. Clicking on that will bring up the web application,

Dependencies
The web application will require the client portion of the program, and consequently PackageKit, to install packages. Once the client portion is included in Fedora, the web application must be ready to receive requests before Fedora 10 is released. If the web application is not ready by launch time, the client portion should not be included. A call must be made before feature freeze as to whether or not to include the client portion.

Contingency Plan
If the web application is not going to be ready, the client portion should be removed.

Documentation
The product definition for the Application Installer covers the basics of the project from a high level. There aren't any more specific docs at this point.

Release Notes
Release notes should be along the lines of:

Fedora 10 now includes an Application Installer. The Application Installer is a web application that allows users to find and install new applications. The Application Installer uses the existing yum and PackageKit stacks to install software, but provides a centralized location for application data. It also presents the user with the concept of installing an application, rather than individual packages.

Comments and Discussion

 * See Talk:Features/ApplicationInstaller