RegistrySimplifications

Not logged in - Log In / Register

Summary

To make Launchpad easier to use and to develop, we should reduce the number of fields associated with projects, project releases, project groups, distributions, and distribution releases. We should also rename other fields to have more user-understandable names, and rename product and project to match the names (project and project group) that they have in the UI.

Rationale

Every extra field for projects, project groups, and distributions in Launchpad makes it harder to register them and keep their records up to date. Surveying Launchpad data also shows (and our 2007 user testing suggested) that fields such as Title are little-understood.

Meanwhile, what we refer to as “projects” in the UI are called “products” in the code, and what we refer to as “project groups” in the UI are called “projects” in the code. This shear is confusing, especially when Launchpad developers talk with users.

Design and migration

These tables are not complete schema. They show only those fields that are involved in the simplifications.

The registration and update forms for the objects should be reordered to ask for “Launchpad ID” after asking for “Name” (aka Display name) and “Summary” (aka Title). That way, later on, we can use XmlHttp to auto-suggest an ID based on the entered Name and (if necessary) Summary (bug 1503), without having to change the form yet again.

Projects

Product

renamed

Project

Previous field

Migration

New field

New visible name

Example

displayname

retained

displayname

Name

Epiphany

title

migrated*

summary

Summary

The Web browser that gets out of your way

name

relabelled

name

Launchpad ID

epiphany-web

summary

prepended as “summary\n\n”

description

Description

Epiphany is a GNOME web browser based on the Mozilla rendering engine...

description

retained

lastdoap

dropped

*The migration of the compulsory .title field to an optional single-line .summary (the previous multi-line .summary having been merged with .description) is informed by what sort of data people have entered in .title up till now. According to a sample of 200 randomly-chosen projects, their behavior has had three noticable patterns.

In the remaining 23%, .title is either junk or uncategorizable. (In some of these, the project as a whole appears to be junk, and once the project is deleted its .title won’t matter.)

Therefore, we should follow this pseudocode in migrating .title to .summary for both projects and project groups:

Productseries

renamed

Projectseries

Previous field

Migration

New field

New visible name

Example

name

retained

name

Name

1.0

summary

retained

summary

Summary

the big one.

The Projectseries fields need not change, because there is no separate displayname, title, or description field. (summary is so-called because it’s a single-line field.)

Productrelease

renamed

Projectrelease

Previous field

Migration

New field

New visible name

Example

codename

retained

codename

Code name

canaveral

version

retained

version

Version

2.0

summary

prepended as “summary\n\n”

description

Description

Launchpad 2.0 introduces easier project setup and maintenance, feeds, search, and simpler navigation...

description

retained

datereleased

retained

Productrelease should have a generated displayname property that is equal to codename before datereleased, and version from datereleased onward.

Productreleasefile

renamed

Projectreleasefile

Productlabel

renamed

Projectlabel

Productsvnmodule

renamed

Projectsvnmodule

Project groups

Project

renamed

Projectgroup

Previous field

Migration

New field

New visible name

Example

displayname

retained

displayname

Name

Mozilla

title

migrated as above

summary

Summary

Developers of Firefox, Thunderbird, Sunbird, and other Internet-related software.

name

relabelled

name

Launchpad ID

mozilla

summary

prepended

description

Description

Mozilla was born as the codename for Netscape Navigator, which helped ignite the open source revolution when its code was released in 1998...

description

retained

wikiurl

if present, appended as “\n\nWiki: url

freshmeatproject

dropped

sourceforgeproject

dropped

lastdoap

dropped

projectrelationship

renamed

projectgrouprelationship

Distributions

Distribution

Previous field

Migration

New field

New visible name

Example

displayname

retained

displayname

Name

Ubuntu

title

dropped

introduced

summary

Summary

Linux for human beings

name

relabelled

name

Launchpad ID

ubuntu

description

retained

description

Description

Ubuntu is a complete Linux-based operating system, freely available with both community and professional support...

domainname

dropped

Here we should not migrate .title to .summary, because of the 18 currently-registered distributions, only two of them (Fluxbuntu and Red Flag MID) have .titles that contain summaries at all. The rest of them are repetitions of (or redundant expansions of the acronym in) the .displayname.

Distroseries

Previous field

Migration

New field

New visible name

Example

version

retained

version

Version

8.04

displayname

renamed

codename

Code name

Hardy

name

relabelled

name

Launchpad ID

hardy

title

dropped

summary

renamed

description

Description

Hardy is the second Long Term Support ("LTS") release of Ubuntu, with a strong emphasis on supportability for long term deployments on both the desktop and the server...

In the Web UI, .codename should be used before a series is released, and .version afterward (though the codename should still be mentioned on the Overview page). This should be done using a generated property, which should be called .displayname for compatibility with other object types.

People

Person

Previous field

Migration

New field

New visible name

Example

displayname

retained

displayname

Name

Fred Bloggs

name

relabelled

lpid

Launchpad ID

fredb

Implementation process

The changes should be implemented in several small branches, for easier reviewing and landing, and so that some of the benefit arrives as soon as possible. For these changes we do not expect that landing them gradually will harm users’ mental models, because registration and changing of project/person details is an infrequent activity.

On the contrary, we are introducing new meanings for the terms "Name" and "Summary" that will make much more sense to new registrars, but may be confusing for existing registrars. The more time elapses between our use of the different meanings, the dimmer will be existing registrars’ memories of the old meanings, so the easier they will accept the new meanings. To maximize that time elapsed (without deliberately waiting), we should retire the old meanings before doing all the other changes, and introduce the new meanings after doing all the other changes.

Therefore, the simplifications should be implemented in this order.

  1. {o} Relabel person.name from “Name” to “Launchpad ID”, reordering relevant forms.

  2. {o} Relabel product.name from “Name” to “Launchpad ID”, reordering relevant forms (bug 131036).

  3. {o} Relabel project.name from “Name” to “Launchpad ID”, reordering relevant forms.

  4. {o} Relabel distribution.name from “Name” to “Launchpad ID”, reordering relevant forms.

  5. {o} Relabel distroseries.name from “Name” to “Launchpad ID”, reordering relevant forms.

  6. {o} Set bug 31747 ("Summary" and "Description" are redundant for distributions, distro series, projects, project groups) as In Progress.

  7. {o} Merge product.summary into product.description (setting bug 102273 as In Progress).

  8. {o} Merge productrelease.summary into productrelease.description.

  9. {o} Merge project.summary into project.description.

  10. {o} Merge distribution.summary into distribution.description.

  11. {o} Merge distroseries.summary into distroseries.description (bug 125385).

  12. {o} Set bug 31747 as Fixed.

  13. {o} Merge project.wikiurl into project.description.

  14. {o} Migrate product.title into product.summary (bug 4449, and fixing bug 102273).

  15. {o} Migrate project.title into project.summary (bug 1853).

  16. {o} Replace distribution.title with the optional distribution.summary.

  17. {o} Drop distroseries.title.

  18. {o} Introduce the productrelease.displayname property, and use it consistently in the UI.

  19. {o} Introduce the distroseries.displayname property, and use it consistently in the UI (e.g. bug 185328).

  20. {o} Drop distribution.domainname (bug 181725).

  21. {o} Set bug 109153 as In Progress.

  22. {o} Rename projectrelationship to projectgrouprelationship.

  23. {o} Rename project to projectgroup.

  24. {o} Rename productreleasefile to projectreleasefile.

  25. {o} Rename productrelease to projectrelease.

  26. {o} Rename productlabel to projectlabel.

  27. {o} Rename productsvnmodule to projectsvnmodule.

  28. {o} Rename product to project.

  29. {o} Verify that no other product-related tables have been introduced in the meantime.

  30. {o} Set bug 109153 as fixed.

  31. {o} Drop project.lastdoap, projectgroup.lastdoap, projectgroup.freshmeatproject, and projectgroup.sourceforgeproject.

  32. {o} Relabel person.displayname from “Display name” to “Name”.

  33. {o} Relabel product.displayname from “Display name” to “Name”.

  34. {o} Relabel project.displayname from “Display name” to “Name”.

  35. {o} Relabel distribution.displayname from “Display name” to “Name”.

Future work

Unresolved issues

RegistrySimplifications (last edited 2009-02-09 09:52:44 by mpt)