TestDrive Graphical Front End

Registered by Andres Rodriguez on 2010-03-25

This is the Google Summer of Code project for creating a GTK frontend for TestDrive. Dustin Kirkland is the mentor, Andres Rodriguez Lazo is the assigned student. Note that Testdrive will be modularized in such a way that an enterprising QT developer should be able to come along and create a suitable interface for KDE as well. However, Andres' task in GSoC is just the modularization and GTK pieces.

This blueprint depends on another one, wherein Andres is going to modularize and object orient the TestDrive base code.

This UDS session, though, will discuss the desired user interface and features requested of the TestDrive frontend. Dustin Kirkland has created a few storyboards of the interface here:
 * http://people.canonical.com/~kirkland/testdrive-gtk.html
 * http://people.canonical.com/~kirkland/testdrive-wizard.html
 * http://people.canonical.com/~kirkland/testdrive-gtk-2.html

At a minimum, I (kirkland) would like to see a wizard-driven interface for selecting the ISO to test.

Blueprint information

Status:
Complete
Approver:
Rick Spencer
Priority:
Undefined
Drafter:
Andres Rodriguez
Direction:
Needs approval
Assignee:
Andres Rodriguez
Definition:
Review
Series goal:
Accepted for maverick
Implementation:
Implemented
Milestone target:
milestone icon later
Started by
Andres Rodriguez on 2010-05-20
Completed by
Andres Rodriguez on 2010-10-14

Related branches

Sprints

Whiteboard

Work items for uds-m:
Solicit participation from Ubuntu-Desktop-Team to attend this session: DONE
Solicit participation from Ubuntu-Design-Team to attend this session: DONE
[andreserl] Sketch UI ideas for UDS-Maverick: DONE

Work items for maverick-alpha-2:
[andreserl] Modularize/merge testdrive's code: DONE
[andreserl] Modularize virtualization method code: DONE
[andreserl] Initial Testdrive-gtk UI: DONE
[andreserl] Add support for different Ubuntu flavors: DONE
[andreserl] Release for testing: DONE

Work items for maverick-alpha-3:
[andreserl] Add Initial Preferences Dialog: DONE
[andreserl] Add support to be able to sync multiple ISO's at the same time: DONE
[andreserl] Add feature to be able to test ISO without having to rsync it: DONE
[andreserl] Add 'File -> Open' to open ISO's or IMG's with 'testdrive -u <iso|img>': DONE
[andreserl] Add support to be able to launch multiple ISO's at the same time (KVM): DONE
[andreserl] Improvements of Preferences Dialog/Backend: DONE
[andreserl] Add support to be able to launch multiple ISO's at the same time (VirtualBox/Parallels): DONE
[andreserl] Add support for Other ISO's (Add ISO's and save them): DONE
[andreserl] Add Other ISOs Dialog Improvements and support for Delete: DONE
[andreserl] Add cache cleaning methods in preferences: DONE
[andreserl] Add support for ISO's on releases.ubuntu.com: DONE
[andreserl] Merge code and packaging with TestDrive: DONE
[andreserl] UI Improvements: DONE
[andreserl] Pre-Release for Testing: DONE
[andreserl] Add internationalization support to the code: DONE
[andreserl] Add method to force cache update: DONE
[andreserl] Bump version to 3.0 and upload to maverick: DONE

Work items for ubuntu-later:

[andreserl] Add Handler: POSTPONED
[andreserl] Add notifications to notify when iso's are synced: POSTPONED
[andreserl] Show Disk space availability: POSTPONED
[andreserl] Add Button to check for old image files and remove them: POSTPONED
[andreserl] Add support for the Ubuntu ISO Tracker: POSTPONED
[andreserl] Add 'File -> Recent Testdrives': POSTPONED
[andreserl] Add full support for UEC: POSTPONED

kirkland -- Discussed at length in #ubuntu-server with Andres
on 2010-04-07. Modularization will happen first, should be
merged upstream and in Maverick by UDS-M. We should at
least have some sketches of the UI flow by UDS. It would
nice if we could get a member of the Ubuntu Desktop Team,
as well as the Design/User-Experience team in the session.

kirkland -- My thoughts on the flow... Run with the
"automotive" theme of testdrive. The home canvas of the UI
is your "garage" of your cached "vehicles". A "vehicle" is
whatever it takes to describe a unique ISO
(ie, Ubuntu-Desktop-Lucid-amd64, Kubuntu-Maverick-i386,
 Ubuntu-Server-Maverick-amd64, Debian-Lenny-i386, etc.).
To add "vehicles" to your "garage", you work your way
through a wizard that prompts for you to choose your
a) distro, b) version, c) flavor, d) architecture, and then it
starts the initial rsync/zsync/wget. When you click on one of
your existing "vehicles", testdrive will first give your "vehicle"
a "tune-up", by syncing it up to the latest released ISO, and
when that's done, you're off and running! I'd Andres to
concentrate on getting the wizard working for Ubuntu
releases/flavors/etc, but I'd like the framework to be flexible
enough that someone else could plug in a driver for Debian
or Fedora, for example. The following samples reflect this
thought:
http://people.canonical.com/~kirkland/testdrive-gtk.html
http://people.canonical.com/~kirkland/testdrive-wizard.html
http://people.canonical.com/~kirkland/testdrive-gtk-2.html

UDS discussion:

== GTK or QT ==

 * As part of GSoC2010 project it will be GTK.
 * QT: rgreening

== Phases ==

 * Modularization: Ready to be merged.
 * Front-end Implementation
   - Mockups: https://wiki.ubuntu.com/TestdriveFrontend

== Desired Features ==

 * Update Button image
   - Update all
     - Option of all ISO on tab, or on all Cache
   - Update one or some at the same time
 * Be able to launch an image without having to resync it.
 * Test old ISOs
 * Different cache dir per flavor.
 * Handler
   - Be able to right click on a .iso file and "Open with Testdrive"
   - Symlink to .testdrive/cache
 * Show how much disk space is free
   - Check space availability
   - Check "old" images and remove? - popup list to select and delete.
 * Obtain ISO Tracker (ask ara) or cdimage
 * OTHER: config file. No DB's.
 * File -> Recent Testdrives...

== Features for GSoC ==

== Features beyond GSoC ==

== Dependency ==
 * Need to get cdimage to publish a manifest of all images available

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.