MigrationAssistance

Differences between revisions 25 and 28 (spanning 3 versions)
Revision 25 as of 2007-05-17 15:01:41
Size: 10718
Editor: 72
Comment:
Revision 28 as of 2007-05-17 17:03:10
Size: 6476
Editor: 72
Comment: More import sources.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
 * '''Launchpad Entry''': https://launchpad.net/distros/ubuntu/+spec/migration-assistance
 * '''Created''': 10/20/06 by EvanDandrea
 * '''Launchpad Entry''': UbuntuSpec:migration-assistant-gutsy
 * '''Created''': 17/5/07 by EvanDandrea
Line 9: Line 9:
''Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.''
Line 10: Line 12:
##(see the SpecSpec for an explanation)

 * Support for Windows 2000 and Vista, as well as Mac OS X support will be added.
 * Support for migrating data to an external device or source, such as a USB key, for importing from using a desktop application after install, will be added.
 * migration-assistant will be enabled on the alternate CD installer.

== Release Note ==

The migration functionality in the installer now allows users to export their migrated data to a USB thumb drive or other external source to later be merged into their Ubuntu system using the accompanied desktop application.
Line 13: Line 24:
The reality for most potential Ubuntu users is that they've bought their computer with Windows pre-installed or have already installed another Linux distribution. These users have probably already used their existing operating system for a decent period of time and have accumulated documents, email, settings, and other files that can be imported and translated for use in Ubuntu, but the existing Ubuntu graphical installer mercilessly destroys them. If users could install Ubuntu knowing that all of their existing Office documents would be placed in their Documents folder, their email would be imported into Evolution, and their bookmarks imported into Firefox, they would have much more incentive to make the switch, be it from Windows or another Linux distribution. The desktop application and ability to migrate data to a source other than the root filesystem are required for users who wish to migrate their data without keeping their old partitions around, and for those users who either did not have the ability to use migration-assistant in a previous release or chose not to, but wish to use it now.
Line 15: Line 26:
== Use cases == == Use Cases ==
 * Mark wants to migrate his data from Windows XP without having to keep his Windows XP partition around.
 * Evan wants to import his Apple OS X users when installing Ubuntu on his iMac.
 * Joe would like Ubuntu to be able to automatically authenticate to the various wireless access points he's associated with previously without requiring him to re-enter WEP and WPA keys.
Line 17: Line 31:
 * Andrew is a long time Gentoo user, tired of having to manually configure his system, and wants a distribution that "just works". He'd like to copy over his home directory to the new system when he installs Ubuntu.
 * Dave is a busy parent who has been using Windows XP for the past year, and he and his children have accumulated a large number of pictures, music, documents, and bookmarks between their four user accounts. He'd like to be able to copy over all of the user accounts while selecting what files to keep and what to throw away when installing Ubuntu.
 * Joe is a CAD engineer who would like to switch his home computer to Ubuntu. While Ubuntu does not have software to read Autodesk files, he would nevertheless like to save his set. He does not have a CD burner and the files are too big for email attachments.
 * Colin's grandparents were using Windows with multiple accounts and found that to be too much, and would much rather use one account between the two of them.
== Assumptions ==
Line 22: Line 33:
== Scope ==

A package containing all of the importing code and the debian-installer hooks was uploaded as a source package in Universe. The changes to Ubiquity will need to be merged in to the main branch and migration-assistant will be uploaded to main.
None
Line 27: Line 36:
Ubiquity flow:
{{{
Language
Location
Keyboard
Migration-Assistant defaults seeding
User, Password, Hostname
Partitioning
Migration-Assistant
Summary
Install process (ma-apply is run)
}}}
  * migration-assistant defaults seeding takes the full name and login name from the first operating system it finds, if it finds one, and seeds them in the passwd debconf keys so they show up automatically in the User``Setup dialog.
  * If the user chooses to set up a dual boot, migration-assistant is run, otherwise it is skipped. Since the goal of this specification is to smooth the migration path to Ubuntu, skipping it when the user is not dual-booting is not of great concern.
  * The defaults seeding code is always run, regardless of the partition table configuration.
  * migration-assistant will provide basic information about what it is going to import and to what user it's importing in the summary dialog.
{{{
 ______________________________________
| |
| What accounts do you want to import? |
| +-------------------------------+--+ |
| | |/\| |
| | \/ [X] Evan (Gentoo) | | |
| | [X] AIM Settings | | |
| | [ ] Bookmarks | | |
| | [ ] Address Book | | |
| |-------------------------------| | |
| | > [X] Colin (Windows) | | |
| |-------------------------------| | |
| | > [ ] Lucy (Windows) | | |
| | > [ ] Evan (Windows) | | |
| | |\/| |
| +-------------------------------+--+ |
| [Select All] [Select None] |
| |
| Full Name: [ Colin Watson ] |
| Login Name: [ Colin |\/] |
| Passphrase: [ ] |
| Confirm: [ ] |
| |
| [Cancel] [Back] [Next] |
|______________________________________|
}}}
  * Marking the checkbox next to a user causes all of its child items to be selected. Unmarking the checkbox next to a user causes all of its items to be unselected.
Line 72: Line 37:
  * Selecting a user (as Colin is in the mockup) or item below one causes the login information, the lower portion of the dialog, to change to input that user. The full name field is populated from the information we obtain from the previous operating system. The login name is populated by taking the previous operating system login name, lowercasing it and replacing spaces with dashes.
  * If the user types in a login name that already exists in the combo input box, the full name field changes to the existing values for that user. If the user changes that information, it is changed for that user.
  * The drop down list for login name is populated with all of the already created users, including the default user created in User``Setup.
  * Incorrectly typing the password a second time, failing to type the full name, or failing to type the login name will result in an error that will appear alongside the offending field.
  * We do not present the option to make one of the users an administrator as that is already covered in the User``Setup dialog for the first user.
A stand-alone desktop application will be added that will enable the user to import from external sources used during the install for exporting migration data to, such as a USB key; FTP, sftp, or WebDAV site; or, possibly in the event of two CD recorder devices, a CD. Exporting to and importing from a USB key will be developed first, allowing other, less commonly used sources to be added as time permits.

Support for importing from Windows Vista, Mac OS X, and Windows 2000 will be added.

Additional import sources will be added. These may include:
 * Wireless access points with WPA and WEP keys.
 * Files on the desktop.
 * OS X applications, including Photo Booth pictures, Mail.app settings, Dashboard widgets (into Jackfield), iTunes music, and web browser bookmarks from Safari, Firefox, and Camino.
 * All instant messenger settings, including logs and passwords (if possible).
 * All PIM data from Outlook and Evolution including actual email, calendar data, and notes.
 * Mozilla Thunderbird.
 * Fonts.
 * Web browser data such as cookies, proxy settings, and cross-platform Firefox plugins.
Line 80: Line 53:
migration-assistant is broken into five programs:  * migration-assistant will be added to the alternate CD installer via a change of priority.
 * migration-assistant will have to be moved before partman-apply in debian-installer to accommodate exporting to a source other than the root filesystem, as the goal of that feature is to enable users who are electing to format their disk completely to still make sure of the migration functionality. This will require changes to {{{ma-ask}}}'s partition state detection code.
 * migration-assistant will be modified to use choices-c to allow translating source names, such as "Internet Explorer", into the user's native language.
 * A progress dialog will be added to give the user more feedback on the detection process and allow them to cancel and skip the migration step, if they so desire.
 * Support for importing a user's entire /home directory will be added and a validation check will be created to ensure that the user does not select both the entire home directory and an item contained within it.
 * The structure of the migration data when exporting to an external device or source will be a {{{migration-assistant}}} directory in the root of the device or source, with /home below that, containing all the migrated files.
Line 82: Line 60:
 * '''ma-ask:'''[[BR]]
 This is shell code that asks the user all of the questions via debconf that ma-apply needs to import the documents and settings.
 * '''ma-search-users:'''[[BR]]
 This finds users suitable for importing from given the operating system and location specified in its arguments.
 * '''ma-search-items:'''[[BR]]
 This looks for all available items to import given the operating system and location specified in its arguments.
 * '''ma-apply:'''[[BR]]
 This reads all of the debconf questions, creates any needed users, and feeds the rest of the data to ma-search-items.
 * '''ma-import:'''[[BR]]
 This imports a type of item given arguments of operating system type, location, existing user, location to import to, and user to import into.
=== UI Changes ===
Line 93: Line 62:
ma-ask is called within debian-installer and a modified version of Ubiquity seeds the questions that ma-ask asks.  * Minor changes to the wording of the text used to instruct the user may be made.
 * Additional text that lets the user know that they can wait until after install to migrate their documents and settings (using the desktop application) will be added.
 * The full name of Windows users and the computer name will be preseeded by first grabbing the data from SAM and the registry, respectively.
 * The following section will be added with an accompanying modal dialog similar to the "Connect to Server..." dialog used in GNOME, allowing the user to specify a source to export the migrated data to.
Line 95: Line 67:
migration-assistant as a whole searches the hard drive on which it is being installed for user accounts as well as the documents and settings that go along with each account, and presents its findings as options in the installer that the user can select to be imported into their new Ubuntu installation. Configuration data is translated into its appropriate Ubuntu equivalent. AOL Instant Messenger accounts, for example, are translated into XML and added to the .gaim/accounts.xml file in that user's home directory. {{{
                           +-----------+
Import into: This computer | Change... |
                           +-----------+
}}}
Line 97: Line 73:
migration-assistant will merge data from multiple operating systems, or multiple applications that map to a single application in Ubuntu, into single entities in Ubuntu. For example, if the user has AOL IM, MSN IM, and Yahoo! IM installed, migration-assistant will import all of them into the .gaim/accounts.xml file so they can all be used in Gaim. If the user has both Firefox and Internet Explorer bookmarks then migration-assistant will import both of them into Firefox. == Test/Demo Plan ==
Line 99: Line 75:
The transferring of data is done by means of running ma-import, which copies the files and settings the user has selected to the new Ubuntu filesystem, after the LiveCD filesystem is copied. Testing migration-assistant will be done by running make check before upload, and by ensuring that all items imported successfully upon reboot when installing with either the LiveCD or alternate CD.
Line 101: Line 77:
=== Data === The logging verbosity of migration-assistant will be increased for the course of the development cycle.
Line 103: Line 79:
'''Files:'''
 * Documents are imported into the default Ubuntu location (~/Documents).
 * Pictures are imported into the default Ubuntu location (~/Pictures, I think).
 * Music is imported into the default Ubuntu location and the appropriate gconf keys are set so Rhythmbox automatically finds and displays it when first run.
 * Email messages
 * Fonts
== Outstanding Issues ==
Line 110: Line 81:
'''Settings:'''
 * User accounts
 * Email clients (Outlook, Thunderbird, Opera Mail, etc)
 * Instant messaging accounts (AOL, MSN, Yahoo!, ICQ, etc)
 * Bookmarks (Firefox, Opera, Internet Explorer, etc)
 * Desktop background
 * User picture (This will complement the new face browser)
 * Internet connection settings (proxy, wireless access points, domain, etc)
 * Address book
 * Should the desktop application allow the creation of user accounts, like the Ubiquity component does, by including /etc/passwd on the device or source that contains the migrated data?
Line 120: Line 83:
== Future work ==

  * Sending the imported objects to removable media or some external source, such as a CD-R, USB key, or web server, will be evaluated for Feisty+1.
  * Resizing partitions will be re-evaluated for Feisty+1, provided the code to do that stabilizes.
  * Importing to both KDE and GNOME by default, not to be confused with importing to them separately, determined by which front-end they are running, will be evaluated for Feisty+1.
  * Migrate not just from Windows, but also from other Linux distributions.

== Rejected Ideas ==

  * The program will not exclude importing files to allow the program to operate entirely in memory as users will want to preserve their documents.
  * The program will not convert files to free formats, rather it will defer that work to the applications that read the formats.
  * Importing files will be done by directory, not by file extension or contents as this allows the program to maintain no knowledge of the underlying formats and eliminates much uncertainty about what the user is importing when they select an item like "Documents."
  * The program will not be ported to Windows as that is well outside the scope of this specification.

== Proposals ==

  * NicolòChieffo: I will propose a feature in which the user can choose to share the same documents with other OSes. (for instance making symlinks). It would be more useful than simply importing the settins+files. So a user who is dual-or-+-booting will have everything always synced without wasting space!

  * It would be nice (if the process doesn't take too long) if the migration assistant could find out your installed software and save that information in the system that will be installed. When the users boots up his/her new system he/she will be presentated with a screen that recommends equivilant software based on the information gathered at installation.
== BoF agenda and discussion ==
{{{
Review the possibility of importing to other targets (FTP, WebDAV, USB key, sftp, CD-R, etc).
- Run before or after partman-apply.
Discuss the possibility of a desktop application.
- Do not encourage using for sync.
- Add text to say "you do not have to do this now, you can do this later"
Plan KDE UI and KDE application support. update https://wiki.kubuntu.org/KubuntuUbiquityMigrationAssistant
Dealing with /home.
- multual exclusivity by validation.
multi-process
try to get in debian
get into alternate cd
Checking if the data will fit in RAM, using a temporary directory.
choices-c
}}}
----
CategorySpec

Summary

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Further the development of migration-assistant to the point that it can be included in Feisty Fawn. Work prior to Feisty is covered in the ["/Edgy"] specification. Work for Feisty is covered in the ["/Feisty"] specification.

  • Support for Windows 2000 and Vista, as well as Mac OS X support will be added.
  • Support for migrating data to an external device or source, such as a USB key, for importing from using a desktop application after install, will be added.
  • migration-assistant will be enabled on the alternate CD installer.

Release Note

The migration functionality in the installer now allows users to export their migrated data to a USB thumb drive or other external source to later be merged into their Ubuntu system using the accompanied desktop application.

Rationale

The desktop application and ability to migrate data to a source other than the root filesystem are required for users who wish to migrate their data without keeping their old partitions around, and for those users who either did not have the ability to use migration-assistant in a previous release or chose not to, but wish to use it now.

Use Cases

  • Mark wants to migrate his data from Windows XP without having to keep his Windows XP partition around.
  • Evan wants to import his Apple OS X users when installing Ubuntu on his iMac.
  • Joe would like Ubuntu to be able to automatically authenticate to the various wireless access points he's associated with previously without requiring him to re-enter WEP and WPA keys.

Assumptions

None

Design

A stand-alone desktop application will be added that will enable the user to import from external sources used during the install for exporting migration data to, such as a USB key; FTP, sftp, or WebDAV site; or, possibly in the event of two CD recorder devices, a CD. Exporting to and importing from a USB key will be developed first, allowing other, less commonly used sources to be added as time permits.

Support for importing from Windows Vista, Mac OS X, and Windows 2000 will be added.

Additional import sources will be added. These may include:

  • Wireless access points with WPA and WEP keys.
  • Files on the desktop.
  • OS X applications, including Photo Booth pictures, Mail.app settings, Dashboard widgets (into Jackfield), iTunes music, and web browser bookmarks from Safari, Firefox, and Camino.
  • All instant messenger settings, including logs and passwords (if possible).
  • All PIM data from Outlook and Evolution including actual email, calendar data, and notes.
  • Mozilla Thunderbird.
  • Fonts.
  • Web browser data such as cookies, proxy settings, and cross-platform Firefox plugins.

Implementation

  • migration-assistant will be added to the alternate CD installer via a change of priority.
  • migration-assistant will have to be moved before partman-apply in debian-installer to accommodate exporting to a source other than the root filesystem, as the goal of that feature is to enable users who are electing to format their disk completely to still make sure of the migration functionality. This will require changes to ma-ask's partition state detection code.

  • migration-assistant will be modified to use choices-c to allow translating source names, such as "Internet Explorer", into the user's native language.
  • A progress dialog will be added to give the user more feedback on the detection process and allow them to cancel and skip the migration step, if they so desire.
  • Support for importing a user's entire /home directory will be added and a validation check will be created to ensure that the user does not select both the entire home directory and an item contained within it.
  • The structure of the migration data when exporting to an external device or source will be a migration-assistant directory in the root of the device or source, with /home below that, containing all the migrated files.

UI Changes

  • Minor changes to the wording of the text used to instruct the user may be made.
  • Additional text that lets the user know that they can wait until after install to migrate their documents and settings (using the desktop application) will be added.
  • The full name of Windows users and the computer name will be preseeded by first grabbing the data from SAM and the registry, respectively.
  • The following section will be added with an accompanying modal dialog similar to the "Connect to Server..." dialog used in GNOME, allowing the user to specify a source to export the migrated data to.

                           +-----------+
Import into: This computer | Change... |
                           +-----------+

Test/Demo Plan

Testing migration-assistant will be done by running make check before upload, and by ensuring that all items imported successfully upon reboot when installing with either the LiveCD or alternate CD.

The logging verbosity of migration-assistant will be increased for the course of the development cycle.

Outstanding Issues

  • Should the desktop application allow the creation of user accounts, like the Ubiquity component does, by including /etc/passwd on the device or source that contains the migrated data?

BoF agenda and discussion

Review the possibility of importing to other targets (FTP, WebDAV, USB key, sftp, CD-R, etc).
- Run before or after partman-apply.
Discuss the possibility of a desktop application.
- Do not encourage using for sync.
-  Add text to say "you do not have to do this now, you can do this later"
Plan KDE UI and KDE application support. update https://wiki.kubuntu.org/KubuntuUbiquityMigrationAssistant
Dealing with /home.
- multual exclusivity by validation.
multi-process
try to get in debian
get into alternate cd
Checking if the data will fit in RAM, using a temporary directory.
choices-c


CategorySpec

MigrationAssistance (last edited 2008-08-06 16:19:54 by localhost)