← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~wgrant/launchpad/no-title-actually into lp:launchpad

 

William Grant has proposed merging lp:~wgrant/launchpad/no-title-actually into lp:launchpad.

Commit message:
Replace Product/Distribution/Project.title with the existing displayname field.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)
Related bugs:
  Bug #1853 in Launchpad itself: "Project group "display name" is redundant with "title""
  https://bugs.launchpad.net/launchpad/+bug/1853
  Bug #4449 in Launchpad itself: "Project "title" is redundant with "display name""
  https://bugs.launchpad.net/launchpad/+bug/4449

For more details, see:
https://code.launchpad.net/~wgrant/launchpad/no-title-actually/+merge/263179

Replace Product/Distribution/Project.title with displayname.

Even I don't quite know where title is used instead of displayname, and separating them has limited benefits beyond confusion. The title attribute itself is now a property forwarding to displayname and the form fields are gone, though the code still sets the DB column while it remains NOT NULL.
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~wgrant/launchpad/no-title-actually into lp:launchpad.
=== modified file 'lib/lp/answers/stories/answer-contact-report.txt'
--- lib/lp/answers/stories/answer-contact-report.txt	2011-04-23 03:47:33 +0000
+++ lib/lp/answers/stories/answer-contact-report.txt	2015-06-27 04:40:18 +0000
@@ -28,18 +28,18 @@
     >>> content = find_tag_by_id(
     ...     anon_browser.contents, "direct-answer-contacts-for-list")
     >>> print extract_text(content).encode('ascii', 'backslashreplace')
-    Gnome Baker
+    gnomebaker
     ...mozilla-firefox... package in Ubuntu
 
     >>> content = find_tag_by_id(
     ...     anon_browser.contents, "team-answer-contacts-for-list")
     >>> print extract_text(content)
-    Gnome Baker
-    The Gnome Panel Applets
+    Gnome Applets
+    gnomebaker
 
 Clicking on the name of the project will show the project answers.
 
-    >>> anon_browser.getLink('Gnome Baker').click()
+    >>> anon_browser.getLink('gnomebaker').click()
     >>> print anon_browser.title
     Questions : gnomebaker
 
@@ -56,8 +56,8 @@
     >>> content = find_tag_by_id(
     ... browser.contents, "team-answer-contacts-for-list")
     >>> print extract_text(content)
-    Gnome Baker Unsubscribe team
-    The Gnome Panel Applets Unsubscribe team
+    Gnome Applets Unsubscribe team
+    gnomebaker Unsubscribe team
 
     >>> browser.getLink(id="gnomebaker-setteamanswercontact").click()
     >>> print browser.title
@@ -75,5 +75,5 @@
     >>> content = find_tag_by_id(
     ...     browser.contents, "direct-answer-contacts-for-list")
     >>> print extract_text(content).encode('ascii', 'backslashreplace')
-    Gnome Baker
+    gnomebaker
     ...mozilla-firefox... package in Ubuntu

=== modified file 'lib/lp/app/browser/tests/watermark.txt'
--- lib/lp/app/browser/tests/watermark.txt	2014-11-27 11:01:16 +0000
+++ lib/lp/app/browser/tests/watermark.txt	2015-06-27 04:40:18 +0000
@@ -28,7 +28,7 @@
 
 Products directly implement IRootContext.
 
-    >>> widget = factory.makeProduct(title='Widget')
+    >>> widget = factory.makeProduct(displayname='Widget')
     >>> print get_hierarchy(widget).heading()
     <h...><a...>Widget</a></h...>
 
@@ -40,13 +40,13 @@
 
 ProjectGroups also directly implement IRootContext ...
 
-    >>> kde = factory.makeProject(title='KDE')
+    >>> kde = factory.makeProject(displayname='KDE')
     >>> print get_hierarchy(kde).heading()
     <h...><a...>KDE</a></h...>
 
 ... as do distributions ...
 
-    >>> mint = factory.makeDistribution(title='Mint Linux')
+    >>> mint = factory.makeDistribution(displayname='Mint Linux')
     >>> print get_hierarchy(mint).heading()
     <h...><a...>Mint Linux</a></h...>
 

=== modified file 'lib/lp/app/doc/lazr-js-widgets.txt'
--- lib/lp/app/doc/lazr-js-widgets.txt	2014-07-24 09:37:03 +0000
+++ lib/lp/app/doc/lazr-js-widgets.txt	2015-06-27 04:40:18 +0000
@@ -25,8 +25,8 @@
 
     >>> from lp.registry.interfaces.product import IProduct
     >>> product = factory.makeProduct(
-    ...     name='widget', title='Widgets > important')
-    >>> title_field = IProduct['title']
+    ...     name='widget', displayname='Widgets > important')
+    >>> title_field = IProduct['displayname']
     >>> title = 'Edit the title'
     >>> widget = TextLineEditorWidget(
     ...     product, title_field, title, 'h1', max_width='90%',
@@ -36,7 +36,7 @@
 content.
 
     >>> print widget()
-    <h1 id="edit-title">
+    <h1 id="edit-displayname">
     <span style="max-width: 90%;"
           class="yui3-editable_text-text ellipsis">
         Widgets &gt; important
@@ -49,7 +49,7 @@
 
     >>> ignored = login_person(product.owner)
     >>> print widget()
-    <h1 id="edit-title">
+    <h1 id="edit-displayname">
     <span style="max-width: 90%;"
           class="yui3-editable_text-text ellipsis">
         Widgets &gt; important

=== modified file 'lib/lp/app/stories/launchpad-root/site-search.txt'
--- lib/lp/app/stories/launchpad-root/site-search.txt	2013-09-27 04:13:23 +0000
+++ lib/lp/app/stories/launchpad-root/site-search.txt	2015-06-27 04:40:18 +0000
@@ -96,7 +96,7 @@
     >>> print_search_results()
     1 &rarr; 20 of 25 pages matching "bug"...
     Launchpad Bugs...
-    Bugs in Ubuntu Linux...
+    Bugs in Ubuntu...
     Bugs related to Sample Person...
     Bug #1 in Mozilla Firefox: ...Firefox does not support SVG...
     ...

=== modified file 'lib/lp/archiveuploader/tests/nascentupload-announcements.txt'
--- lib/lp/archiveuploader/tests/nascentupload-announcements.txt	2014-11-08 23:53:17 +0000
+++ lib/lp/archiveuploader/tests/nascentupload-announcements.txt	2015-06-27 04:40:18 +0000
@@ -525,7 +525,7 @@
     DEBUG
     DEBUG Announcing to hoary-announce@xxxxxxxxxxxxxxxx
     DEBUG
-    DEBUG Thank you for your contribution to Ubuntu Linux.
+    DEBUG Thank you for your contribution to Ubuntu.
     DEBUG
     DEBUG --
     DEBUG You are receiving this email because you are the uploader,
@@ -745,7 +745,7 @@
     <BLANKLINE>
     Announcing to hoary-announce@xxxxxxxxxxxxxxxx
     <BLANKLINE>
-    Thank you for your contribution to Ubuntu Linux.
+    Thank you for your contribution to Ubuntu.
     <BLANKLINE>
     -- =
     <BLANKLINE>

=== modified file 'lib/lp/blueprints/stories/standalone/xx-batching.txt'
--- lib/lp/blueprints/stories/standalone/xx-batching.txt	2015-06-15 08:35:10 +0000
+++ lib/lp/blueprints/stories/standalone/xx-batching.txt	2015-06-27 04:40:18 +0000
@@ -14,7 +14,6 @@
   >>> browser.open("http://launchpad.dev/projects/+new";)
   >>> browser.getControl('URL', index=0).value = 'big-project'
   >>> browser.getControl('Name').value = 'Big Project'
-  >>> browser.getControl('Title').value = 'The Big Project'
   >>> browser.getControl('Summary').value = 'A big project indeed.'
   >>> browser.getControl('Continue').click()
 

=== modified file 'lib/lp/bugs/browser/tests/test_bugalsoaffects.py'
--- lib/lp/bugs/browser/tests/test_bugalsoaffects.py	2012-10-04 23:15:35 +0000
+++ lib/lp/bugs/browser/tests/test_bugalsoaffects.py	2015-06-27 04:40:18 +0000
@@ -18,7 +18,7 @@
 
     def setUp(self):
         super(TestBugAlsoAffectsDistribution, self).setUp()
-        self.distribution = self.factory.makeDistribution()
+        self.distribution = self.factory.makeDistribution(displayname='Distro')
         removeSecurityProxy(self.distribution).official_malone = True
 
     def openBugPage(self, bug):

=== modified file 'lib/lp/bugs/doc/bug.txt'
--- lib/lp/bugs/doc/bug.txt	2013-06-20 05:50:00 +0000
+++ lib/lp/bugs/doc/bug.txt	2015-06-27 04:40:18 +0000
@@ -604,7 +604,7 @@
     >>> notify(ObjectCreatedEvent(ubuntu_task))
 
     >>> print ubuntu_task.distribution.title
-    Ubuntu Linux
+    Ubuntu
 
 And for a specific distribution series.
 

=== modified file 'lib/lp/bugs/doc/bugnotification-sending.txt'
--- lib/lp/bugs/doc/bugnotification-sending.txt	2014-04-29 00:44:32 +0000
+++ lib/lp/bugs/doc/bugnotification-sending.txt	2015-06-27 04:40:18 +0000
@@ -807,7 +807,7 @@
 
     >>> with lp_dbuser():
     ...     bug = factory.makeBug(
-    ...         target=factory.makeProduct(title='Foo'),
+    ...         target=factory.makeProduct(displayname='Foo'),
     ...         title='In the beginning, the universe was created. This '
     ...             'has made a lot of people very angry and has been '
     ...             'widely regarded as a bad move',

=== modified file 'lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt'
--- lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt	2012-08-23 04:20:48 +0000
+++ lib/lp/bugs/stories/bug-privacy/xx-bug-privacy.txt	2015-06-27 04:40:18 +0000
@@ -21,7 +21,7 @@
     >>> browser.getControl("Private", index=1).selected
     True
 
-Foo Bar files a security (private) bug on Ubuntu Linux. He gets
+Foo Bar files a security (private) bug on Ubuntu. He gets
 redirected to the bug page.
 
     >>> browser = setupBrowser("Basic foo.bar@xxxxxxxxxxxxx:test")
@@ -53,7 +53,7 @@
     >>> print browser.contents.replace(bug_id, "BUG-ID")
     <!DOCTYPE...
     ...
-    ...Ubuntu Linux...
+    ...Ubuntu...
     ...<a...>...BUG-ID...</a>...
 
 Foo Bar is subscribed to the bug.

=== modified file 'lib/lp/bugs/stories/bug-release-management/nomination-navigation.txt'
--- lib/lp/bugs/stories/bug-release-management/nomination-navigation.txt	2014-11-27 22:13:36 +0000
+++ lib/lp/bugs/stories/bug-release-management/nomination-navigation.txt	2015-06-27 04:40:18 +0000
@@ -11,7 +11,7 @@
     ... 'http://bugs.launchpad.dev/ubuntu/+source/mozilla-firefox/+bug/1'
     ... '/nominations/2/+editstatus')
     >>> print_location(admin_browser.contents)
-    Hierarchy: Ubuntu Linux > mozilla-firefox package > Bug #1...
+    Hierarchy: Ubuntu > mozilla-firefox package > Bug #1...
     Tabs:
     * Overview - http://launchpad.dev/ubuntu/+source/mozilla-firefox
     * Code - http://code.launchpad.dev/ubuntu/+source/mozilla-firefox

=== modified file 'lib/lp/bugs/stories/bugs/xx-bug-activity.txt'
--- lib/lp/bugs/stories/bugs/xx-bug-activity.txt	2014-11-27 22:13:36 +0000
+++ lib/lp/bugs/stories/bugs/xx-bug-activity.txt	2015-06-27 04:40:18 +0000
@@ -12,7 +12,7 @@
 the main heading repeats the bug number for clarity:
 
     >>> print_location(anon_browser.contents)
-    Hierarchy: Debian GNU/Linux > mozilla-firefox package > Bug #3...
+    Hierarchy: Debian > mozilla-firefox package > Bug #3...
     Tabs:
     * Overview - http://launchpad.dev/debian/+source/mozilla-firefox
     * Code - http://code.launchpad.dev/debian/+source/mozilla-firefox

=== modified file 'lib/lp/bugs/stories/bugs/xx-bug-index.txt'
--- lib/lp/bugs/stories/bugs/xx-bug-index.txt	2014-11-27 22:13:36 +0000
+++ lib/lp/bugs/stories/bugs/xx-bug-index.txt	2015-06-27 04:40:18 +0000
@@ -14,7 +14,7 @@
 The breadcrumbs and other navigation include a link to the bug itself.
 
     >>> print_location(anon_browser.contents)
-    Hierarchy: Debian GNU/Linux > mozilla-firefox package
+    Hierarchy: Debian > mozilla-firefox package
     Tabs:
     * Overview - http://launchpad.dev/debian/+source/mozilla-firefox
     * Code - http://code.launchpad.dev/debian/+source/mozilla-firefox

=== modified file 'lib/lp/bugs/stories/bugtask-management/xx-change-assignee.txt'
--- lib/lp/bugs/stories/bugtask-management/xx-change-assignee.txt	2012-08-16 05:18:54 +0000
+++ lib/lp/bugs/stories/bugtask-management/xx-change-assignee.txt	2015-06-27 04:40:18 +0000
@@ -61,10 +61,8 @@
     >>> print extract_text(
     ...     first_tag_by_class(admin_browser.contents, 'warning message'))
     Celso Providelo
-    did not previously have any assigned bugs in
-    Jokosher Audio Editor.
-    If this bug was assigned by mistake,
-    you may change the assignment.
+    did not previously have any assigned bugs in Jokosher.
+    If this bug was assigned by mistake, you may change the assignment.
 
 When assigning a bug to oneself, though, the warning message is suppreseed.
 

=== modified file 'lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt'
--- lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt	2013-09-27 04:13:23 +0000
+++ lib/lp/bugs/stories/bugtracker/xx-bugtracker.txt	2015-06-27 04:40:18 +0000
@@ -416,8 +416,7 @@
     >>> print extract_text(find_tag_by_id(
     ...     user_browser.contents, 'bugtracker-delete-not-possible-reasons'))
     Please note, this bug tracker cannot be deleted because:
-      This is the bug tracker for The GNOME Project and The GNOME Terminal
-      Emulator.
+      This is the bug tracker for GNOME and GNOME Terminal.
       There are linked bug watches and only members of ...Launchpad
         Administrators...
 

=== modified file 'lib/lp/bugs/stories/structural-subscriptions/xx-bug-subscriptions.txt'
--- lib/lp/bugs/stories/structural-subscriptions/xx-bug-subscriptions.txt	2012-12-10 13:43:47 +0000
+++ lib/lp/bugs/stories/structural-subscriptions/xx-bug-subscriptions.txt	2015-06-27 04:40:18 +0000
@@ -19,7 +19,7 @@
     ... 'http://bugs.launchpad.dev/ubuntu/+subscribe')
     >>> print extract_text(find_portlet(browser.contents, 'Subscribers'))
     Subscribers
-      To all Ubuntu Linux bugs:
+      To all Ubuntu bugs:
         Landscape Developers
 
 And subscribe some people to the Firefox source package in ubuntu.
@@ -50,7 +50,7 @@
         Foo Bar
         Landscape Developers
         Sample Person
-      To all Ubuntu Linux bugs:
+      To all Ubuntu bugs:
         Landscape Developers
 
 Sample Person can also unsubscribe himself and the Landscape team.
@@ -67,7 +67,7 @@
     Subscribers
       To all bugs in mozilla-firefox in Ubuntu:
         Foo Bar
-      To all Ubuntu Linux bugs:
+      To all Ubuntu bugs:
         Landscape Developers
 
 
@@ -115,7 +115,7 @@
       To all bugs in mozilla-firefox in Ubuntu:
         Foo Bar
         No Privileges Person
-      To all Ubuntu Linux bugs:
+      To all Ubuntu bugs:
         Landscape Developers
 
 ...has an entry in the "Remove subscriptions" list...
@@ -136,7 +136,7 @@
     Subscribers
       To all bugs in mozilla-firefox in Ubuntu:
         Foo Bar
-      To all Ubuntu Linux bugs:
+      To all Ubuntu bugs:
         Landscape Developers
 
 The checkbox to unsubscribe No Privileges Person is no longer present on
@@ -162,7 +162,7 @@
     Subscribers
       To all bugs in mozilla-firefox in Ubuntu:
         Foo Bar
-      To all Ubuntu Linux bugs:
+      To all Ubuntu bugs:
         Landscape Developers
 
     >>> remove_other = browser.getControl('\xa0Foo Bar')
@@ -176,7 +176,7 @@
     Subscribers
       To all bugs in mozilla-firefox in Ubuntu:
         Foo Bar
-      To all Ubuntu Linux bugs:
+      To all Ubuntu bugs:
         Landscape Developers
 
 When Sample Person now visits the bug subscription page, he no longer sees

=== modified file 'lib/lp/code/stories/branches/xx-branch-index.txt'
--- lib/lp/code/stories/branches/xx-branch-index.txt	2014-11-27 07:48:25 +0000
+++ lib/lp/code/stories/branches/xx-branch-index.txt	2015-06-27 04:40:18 +0000
@@ -426,7 +426,7 @@
     >>> browser.open(
     ...     'http://code.launchpad.dev/~name12/gnome-terminal/scanned')
     >>> print_location(browser.contents)
-    Hierarchy: The GNOME Terminal Emulator
+    Hierarchy: GNOME Terminal
     Tabs:
     * Overview - http://launchpad.dev/gnome-terminal
     * Code (selected) - http://code.launchpad.dev/gnome-terminal

=== modified file 'lib/lp/code/stories/branches/xx-product-branches.txt'
--- lib/lp/code/stories/branches/xx-product-branches.txt	2015-06-15 08:35:10 +0000
+++ lib/lp/code/stories/branches/xx-product-branches.txt	2015-06-27 04:40:18 +0000
@@ -37,7 +37,7 @@
     ...     return find_tag_by_id(browser.contents, 'branch-summary')
     >>> summary = get_summary(browser)
     >>> print extract_text(summary)
-    Launchpad does not know where The Gnome Panel Applets
+    Launchpad does not know where Gnome Applets
     hosts its code.
     There are no branches for Gnome Applets
     in Launchpad.
@@ -67,7 +67,7 @@
 
     >>> browser.open('http://code.launchpad.dev/netapplet')
     >>> print extract_text(get_summary(browser))
-    Launchpad does not know where Network Applet hosts its code...
+    Launchpad does not know where NetApplet hosts its code...
     There are no branches for NetApplet in Launchpad.
     ...
     There are download files available for NetApplet.
@@ -88,10 +88,8 @@
     >>> browser.open('http://code.launchpad.dev/evolution')
     >>> summary = get_summary(browser)
     >>> print extract_text(get_summary(browser))
-    The Evolution Groupware Application hosts its code
-    externally.
-    You can learn more at the project's
-    web page.
+    Evolution hosts its code externally.
+    You can learn more at the project's web page.
     Launchpad imports the master branch and you can create branches from
     it.
     You can

=== modified file 'lib/lp/registry/browser/distribution.py'
--- lib/lp/registry/browser/distribution.py	2015-06-12 06:34:19 +0000
+++ lib/lp/registry/browser/distribution.py	2015-06-27 04:40:18 +0000
@@ -824,7 +824,6 @@
     field_names = [
         "name",
         "displayname",
-        "title",
         "summary",
         "description",
         "domainname",
@@ -867,7 +866,7 @@
         distribution = getUtility(IDistributionSet).new(
             name=data['name'],
             displayname=data['displayname'],
-            title=data['title'],
+            title=data['displayname'],
             summary=data['summary'],
             description=data['description'],
             domainname=data['domainname'],
@@ -890,7 +889,6 @@
     schema = IDistribution
     field_names = [
         'displayname',
-        'title',
         'summary',
         'description',
         'bug_reporting_guidelines',

=== modified file 'lib/lp/registry/browser/product.py'
--- lib/lp/registry/browser/product.py	2015-06-25 03:33:33 +0000
+++ lib/lp/registry/browser/product.py	2015-06-27 04:40:18 +0000
@@ -2170,7 +2170,7 @@
 
     schema = IProduct
     product = None
-    field_names = ['name', 'displayname', 'title', 'summary',
+    field_names = ['name', 'displayname', 'summary',
                    'description', 'homepageurl', 'sourceforgeproject',
                    'wikiurl', 'screenshotsurl',
                    'downloadurl', 'programminglang',
@@ -2203,7 +2203,7 @@
 class ProjectAddStepOne(StepView):
     """product/+new view class for creating a new project."""
 
-    _field_names = ['displayname', 'name', 'title', 'summary']
+    _field_names = ['displayname', 'name', 'summary']
     label = "Register a project in Launchpad"
     schema = IProduct
     step_name = 'projectaddstep1'
@@ -2259,7 +2259,7 @@
 class ProjectAddStepTwo(StepView, ProductLicenseMixin, ReturnToReferrerMixin):
     """Step 2 (of 2) in the +new project add wizard."""
 
-    _field_names = ['displayname', 'name', 'title', 'summary', 'description',
+    _field_names = ['displayname', 'name', 'summary', 'description',
                     'homepageurl', 'information_type', 'licenses',
                     'license_info', 'driver', 'bug_supervisor', 'owner']
     schema = IProduct
@@ -2488,7 +2488,7 @@
             owner=owner,
             name=data['name'],
             displayname=data['displayname'],
-            title=data['title'],
+            title=data['displayname'],
             summary=data['summary'],
             description=description,
             homepageurl=data.get('homepageurl'),

=== modified file 'lib/lp/registry/browser/project.py'
--- lib/lp/registry/browser/project.py	2015-01-29 16:28:30 +0000
+++ lib/lp/registry/browser/project.py	2015-06-27 04:40:18 +0000
@@ -387,7 +387,7 @@
     page_title = label
     schema = IProjectGroup
     field_names = [
-        'displayname', 'title', 'summary', 'description',
+        'displayname', 'summary', 'description',
         'bug_reporting_guidelines', 'bug_reported_acknowledgement',
         'homepageurl', 'bugtracker', 'sourceforgeproject',
         'wikiurl']
@@ -493,7 +493,7 @@
         return getUtility(IProductSet).createProduct(
             owner=self.user,
             name=data['name'],
-            title=data['title'],
+            title=data['displayname'],
             summary=data['summary'],
             displayname=data['displayname'],
             licenses=data['licenses'],
@@ -582,7 +582,6 @@
     field_names = [
         'name',
         'displayname',
-        'title',
         'summary',
         'description',
         'owner',
@@ -599,7 +598,7 @@
         self.projectgroup = getUtility(IProjectGroupSet).new(
             name=data['name'].lower().strip(),
             displayname=data['displayname'],
-            title=data['title'],
+            title=data['displayname'],
             homepageurl=data['homepageurl'],
             summary=data['summary'],
             description=data['description'],

=== modified file 'lib/lp/registry/browser/tests/distribution-views.txt'
--- lib/lp/registry/browser/tests/distribution-views.txt	2015-05-15 12:40:45 +0000
+++ lib/lp/registry/browser/tests/distribution-views.txt	2015-06-27 04:40:18 +0000
@@ -66,7 +66,7 @@
 The view accepts the basic fields to register a distribution.
 
     >>> view.field_names
-    ['name', 'displayname', 'title', 'summary', 'description', 'domainname',
+    ['name', 'displayname', 'summary', 'description', 'domainname',
      'members', 'official_malone', 'blueprints_usage', 'translations_usage',
      'answers_usage']
 
@@ -74,7 +74,6 @@
     >>> form = {
     ...     'field.name': 'youbuntu',
     ...     'field.displayname': 'YoUbuntu',
-    ...     'field.title': 'YoUbuntu OS',
     ...     'field.summary': 'summary',
     ...     'field.description': 'description',
     ...     'field.domainname': 'youbuntu.me',
@@ -128,7 +127,7 @@
     <DBItem ServiceUsage.UNKNOWN, (10) Unknown>
 
     >>> view.field_names
-    ['displayname', 'title', 'summary', 'description',
+    ['displayname', 'summary', 'description',
      'bug_reporting_guidelines', 'bug_reported_acknowledgement',
      'package_derivatives_email', 'icon',
      'logo', 'mugshot', 'official_malone', 'enable_bug_expiration',
@@ -354,7 +353,7 @@
 
     >>> view = create_view(ubuntu, name='+ppas')
     >>> print view.label
-    Personal Package Archives for Ubuntu Linux
+    Personal Package Archives for Ubuntu
 
     # The leaf of the breadcrumbs, also used in the page-title.
     >>> print view.page_title

=== modified file 'lib/lp/registry/browser/tests/distributionmirror-views.txt'
--- lib/lp/registry/browser/tests/distributionmirror-views.txt	2014-07-07 03:42:43 +0000
+++ lib/lp/registry/browser/tests/distributionmirror-views.txt	2015-06-27 04:40:18 +0000
@@ -36,10 +36,10 @@
 The view provides a label, page_title, and cancel_url
 
     >>> print view.label
-    Register a new mirror for Ubuntu Linux
+    Register a new mirror for Ubuntu
 
     >>> print view.page_title
-    Register a new mirror for Ubuntu Linux
+    Register a new mirror for Ubuntu
 
     >>> print view.cancel_url
     http://launchpad.dev/ubuntu

=== modified file 'lib/lp/registry/browser/tests/test_product.py'
--- lib/lp/registry/browser/tests/test_product.py	2015-06-25 08:59:07 +0000
+++ lib/lp/registry/browser/tests/test_product.py	2015-06-27 04:40:18 +0000
@@ -128,7 +128,6 @@
             'field.__visited_steps__': ProjectAddStepOne.step_name,
             'field.displayname': 'Fnord',
             'field.name': 'fnord',
-            'field.title': 'fnord',
             'field.summary': 'fnord summary',
             }
     else:
@@ -138,7 +137,6 @@
                 ProjectAddStepOne.step_name, ProjectAddStepTwo.step_name),
             'field.displayname': 'Fnord',
             'field.name': 'fnord',
-            'field.title': 'fnord',
             'field.summary': 'fnord summary',
             'field.disclaim_maintainer': 'off',
             }
@@ -205,13 +203,13 @@
         disclaim_widget = view.view.widgets['disclaim_maintainer']
         self.assertEqual('subordinate', disclaim_widget.cssClass)
         self.assertEqual(
-            ['displayname', 'name', 'title', 'summary', 'description',
+            ['displayname', 'name', 'summary', 'description',
              'homepageurl', 'information_type', 'licenses', 'license_info',
              'driver', 'bug_supervisor', 'owner',
              '__visited_steps__'],
             view.view.field_names)
         self.assertEqual(
-            ['displayname', 'name', 'title', 'summary', 'description',
+            ['displayname', 'name', 'summary', 'description',
              'homepageurl', 'information_type', 'licenses', 'driver',
              'bug_supervisor', 'owner', 'disclaim_maintainer',
              'source_package_name', 'distroseries', '__visited_steps__',

=== modified file 'lib/lp/registry/configure.zcml'
--- lib/lp/registry/configure.zcml	2015-05-13 05:25:30 +0000
+++ lib/lp/registry/configure.zcml	2015-06-27 04:40:18 +0000
@@ -1322,7 +1322,6 @@
                 screenshotsurl
                 sourceforgeproject
                 summary
-                title
                 vcs
                 wikiurl"
             />
@@ -1736,7 +1735,6 @@
                 package_derivatives_email
                 redirect_release_uploads
                 summary
-                title
                 vcs
                 "/>
         <require

=== modified file 'lib/lp/registry/doc/person-karma.txt'
--- lib/lp/registry/doc/person-karma.txt	2012-12-26 01:32:19 +0000
+++ lib/lp/registry/doc/person-karma.txt	2015-06-27 04:40:18 +0000
@@ -98,9 +98,9 @@
     >>> for contrib in foobar.getProjectsAndCategoriesContributedTo(None):
     ...     categories = sorted(cat.name for cat in contrib['categories'])
     ...     print contrib['project'].title, categories
-    The Evolution Groupware Application [u'bugs', u'translations']
-    Ubuntu Linux [u'bugs']
-    Gnome Baker [u'bugs']
+    Evolution [u'bugs', u'translations']
+    Ubuntu [u'bugs']
+    gnomebaker [u'bugs']
     Mozilla Thunderbird [u'bugs']
     Mozilla Firefox [u'bugs']
 

=== modified file 'lib/lp/registry/doc/pillar.txt'
--- lib/lp/registry/doc/pillar.txt	2015-01-29 13:09:37 +0000
+++ lib/lp/registry/doc/pillar.txt	2015-06-27 04:40:18 +0000
@@ -195,11 +195,11 @@
     >>> for row in pillar_set.search('ubuntu', limit=5):
     ...     print ("%s: %s (%s)"
     ...            % (row.__class__.__name__, row.title, row.name))
-    Distribution: Ubuntu Linux (ubuntu)
-    Distribution: Ubuntu Test (ubuntutest)
-    ProductWithLicenses: The Evolution Groupware Application (evolution)
+    Distribution: Ubuntu (ubuntu)
+    Distribution: ubuntutest (ubuntutest)
+    ProductWithLicenses: Evolution (evolution)
     ProductWithLicenses: Tomcat (tomcat)
-    ProductWithLicenses: The Gnome Panel Applets (applets)
+    ProductWithLicenses: Gnome Applets (applets)
 
 We can search by any of the pillar's aliases too.
 
@@ -221,11 +221,11 @@
     >>> for row in pillar_set.search('ubuntu', limit=5):
     ...     print ("%s: %s (%s)"
     ...            % (row.__class__.__name__, row.title, row.name))
-    Distribution: Ubuntu Linux (ubuntu)
-    Distribution: Ubuntu Test (ubuntutest)
-    ProductWithLicenses: The Evolution Groupware Application (evolution)
+    Distribution: Ubuntu (ubuntu)
+    Distribution: ubuntutest (ubuntutest)
+    ProductWithLicenses: Evolution (evolution)
     ProductWithLicenses: Tomcat (tomcat)
-    Distribution: GuadaLinex: Linux for Andalucia (guadalinex)
+    Distribution: GuadaLinex (guadalinex)
 
 
 == PillarName objects ==

=== modified file 'lib/lp/registry/doc/product.txt'
--- lib/lp/registry/doc/product.txt	2015-05-14 13:57:51 +0000
+++ lib/lp/registry/doc/product.txt	2015-06-27 04:40:18 +0000
@@ -183,8 +183,8 @@
 
     >>> for product in productset.getTranslatables():
     ...    print product.name
+    evolution
     alsa-utils
-    evolution
 
 Only active products are listed as translatables.
 

=== modified file 'lib/lp/registry/doc/projectgroup.txt'
--- lib/lp/registry/doc/projectgroup.txt	2015-01-29 16:28:30 +0000
+++ lib/lp/registry/doc/projectgroup.txt	2015-06-27 04:40:18 +0000
@@ -366,7 +366,7 @@
 
     >>> evolution = translatables[0]
     >>> print evolution.title
-    The Evolution Groupware Application
+    Evolution
 
 With its 'trunk' series translatable.
 
@@ -386,7 +386,7 @@
 
     >>> netapplet = gnome.getProduct('netapplet')
     >>> print netapplet.title
-    Network Applet
+    NetApplet
 
 But it was not returned from 'translatables' method because it's not using
 Rosetta officially.

=== modified file 'lib/lp/registry/doc/vocabularies.txt'
--- lib/lp/registry/doc/vocabularies.txt	2014-05-19 11:33:05 +0000
+++ lib/lp/registry/doc/vocabularies.txt	2015-06-27 04:40:18 +0000
@@ -1100,10 +1100,11 @@
 
     >>> vocab = get_naked_vocab(None, "DistributionOrProduct")
     >>> for term in vocab:
-    ...     if 'Ubuntu' in term.title:
+    ...     if 'buntu' in term.title:
     ...         print term.title, '- class', term.value.__class__.__name__
-    Ubuntu Linux - class Distribution
-    Ubuntu Test - class Distribution
+    Kubuntu - class Distribution
+    Ubuntu - class Distribution
+    ubuntutest - class Distribution
 
 They can be looked up by their aliases too.
 
@@ -1167,10 +1168,11 @@
 
     >>> vocab = get_naked_vocab(None, "DistributionOrProductOrProjectGroup")
     >>> for term in vocab:
-    ...     if 'Ubuntu' in term.title:
+    ...     if 'buntu' in term.title:
     ...         print term.title, '- class', term.value.__class__.__name__
-    Ubuntu Linux - class Distribution
-    Ubuntu Test - class Distribution
+    Kubuntu - class Distribution
+    Ubuntu - class Distribution
+    ubuntutest - class Distribution
 
 They can be looked up by their aliases too.
 
@@ -1242,16 +1244,16 @@
     9
 
     >>> for term in featured_project_vocabulary:
-    ...     print term.token, term.value.displayname, term.title
-    applets         Gnome Applets        The Gnome Panel Applets
-    bazaar          Bazaar               Bazaar
-    firefox         Mozilla Firefox      Mozilla Firefox
-    gentoo          Gentoo               The Gentoo Linux
-    gnome           GNOME                The GNOME Project
-    gnome-terminal  GNOME Terminal       The GNOME Terminal Emulator
-    mozilla The     Mozilla Project      The Mozilla Project
-    thunderbird     Mozilla Thunderbird  Mozilla Thunderbird
-    ubuntu          Ubuntu               Ubuntu Linux
+    ...     print term.token, term.title
+    applets         Gnome Applets
+    bazaar          Bazaar
+    firefox         Mozilla Firefox
+    gentoo          Gentoo
+    gnome           GNOME
+    gnome-terminal  GNOME Terminal
+    mozilla         The Mozilla Project
+    thunderbird     Mozilla Thunderbird
+    ubuntu          Ubuntu
 
     >>> ubuntu = getUtility(ILaunchpadCelebrities).ubuntu
     >>> ubuntu in featured_project_vocabulary

=== modified file 'lib/lp/registry/interfaces/product.py'
--- lib/lp/registry/interfaces/product.py	2015-06-24 21:14:20 +0000
+++ lib/lp/registry/interfaces/product.py	2015-06-27 04:40:18 +0000
@@ -468,7 +468,8 @@
     title = exported(
         Title(
             title=_('Title'),
-            description=_("The project title. Should be just a few words.")))
+            description=_("The project title. Should be just a few words."),
+            readonly=True))
 
 
 class IProductView(

=== modified file 'lib/lp/registry/model/distribution.py'
--- lib/lp/registry/model/distribution.py	2015-05-12 07:20:13 +0000
+++ lib/lp/registry/model/distribution.py	2015-06-27 04:40:18 +0000
@@ -202,7 +202,7 @@
 
     name = StringCol(notNull=True, alternateID=True, unique=True)
     displayname = StringCol(notNull=True)
-    title = StringCol(notNull=True)
+    _title = StringCol(dbName='title', notNull=True)
     summary = StringCol(notNull=True)
     description = StringCol(notNull=True)
     homepage_content = StringCol(default=None)
@@ -256,6 +256,10 @@
             self.__class__.__name__, displayname, self.name)
 
     @property
+    def title(self):
+        return self.displayname
+
+    @property
     def pillar(self):
         """See `IBugTarget`."""
         return self
@@ -1453,7 +1457,7 @@
         distro = Distribution(
             name=name,
             displayname=displayname,
-            title=title,
+            _title=title,
             description=description,
             summary=summary,
             domainname=domainname,

=== modified file 'lib/lp/registry/model/product.py'
--- lib/lp/registry/model/product.py	2015-06-24 21:14:20 +0000
+++ lib/lp/registry/model/product.py	2015-06-27 04:40:18 +0000
@@ -397,7 +397,7 @@
     name = StringCol(
         dbName='name', notNull=True, alternateID=True, unique=True)
     displayname = StringCol(dbName='displayname', notNull=True)
-    title = StringCol(dbName='title', notNull=True)
+    _title = StringCol(dbName='title', notNull=True)
     summary = StringCol(dbName='summary', notNull=True)
     description = StringCol(notNull=False, default=None)
     datecreated = UtcDateTimeCol(
@@ -440,6 +440,10 @@
     vcs = EnumCol(enum=VCSType, notNull=False)
 
     @property
+    def title(self):
+        return self.displayname
+
+    @property
     def date_next_suggest_packaging(self):
         """See `IProduct`
 
@@ -1883,7 +1887,7 @@
                     ' Projects.')
         product = Product(
             owner=owner, registrant=registrant, name=name,
-            displayname=displayname, title=title, projectgroup=projectgroup,
+            displayname=displayname, _title=title, projectgroup=projectgroup,
             summary=summary, description=description, homepageurl=homepageurl,
             screenshotsurl=screenshotsurl, wikiurl=wikiurl,
             downloadurl=downloadurl, freshmeatproject=None,
@@ -2067,7 +2071,7 @@
             POTemplate.productseriesID == ProductSeries.id,
             Product.translations_usage == ServiceUsage.LAUNCHPAD,
             Person.id == Product._ownerID).config(
-                distinct=True).order_by(Product.title)
+                distinct=True).order_by(Product.displayname)
 
         # We only want Product - the other tables are just to populate
         # the cache.

=== modified file 'lib/lp/registry/model/projectgroup.py'
--- lib/lp/registry/model/projectgroup.py	2015-01-29 16:28:30 +0000
+++ lib/lp/registry/model/projectgroup.py	2015-06-27 04:40:18 +0000
@@ -128,7 +128,7 @@
         storm_validator=validate_public_person, notNull=True)
     name = StringCol(dbName='name', notNull=True)
     displayname = StringCol(dbName='displayname', notNull=True)
-    title = StringCol(dbName='title', notNull=True)
+    _title = StringCol(dbName='title', notNull=True)
     summary = StringCol(dbName='summary', notNull=True)
     description = StringCol(dbName='description', notNull=True)
     datecreated = UtcDateTimeCol(dbName='datecreated', notNull=True,
@@ -163,6 +163,10 @@
     bug_reported_acknowledgement = StringCol(default=None)
 
     @property
+    def title(self):
+        return self.displayname
+
+    @property
     def pillar_category(self):
         """See `IPillar`."""
         return "Project Group"
@@ -555,7 +559,7 @@
         return ProjectGroup(
             name=name,
             displayname=displayname,
-            title=title,
+            _title=title,
             summary=summary,
             description=description,
             homepageurl=homepageurl,

=== modified file 'lib/lp/registry/stories/milestone/object-milestones.txt'
--- lib/lp/registry/stories/milestone/object-milestones.txt	2014-11-27 07:48:25 +0000
+++ lib/lp/registry/stories/milestone/object-milestones.txt	2015-06-27 04:40:18 +0000
@@ -180,7 +180,7 @@
     3.1 : Debian
 
     >>> print_location(anon_browser.contents)
-    Hierarchy: Debian GNU/Linux
+    Hierarchy: Debian
     Tabs:
     * Overview (selected) - http://launchpad.dev/debian
     * Code - http://code.launchpad.dev/debian

=== modified file 'lib/lp/registry/stories/object/xx-karmacontext-topcontributors.txt'
--- lib/lp/registry/stories/object/xx-karmacontext-topcontributors.txt	2009-11-22 15:43:16 +0000
+++ lib/lp/registry/stories/object/xx-karmacontext-topcontributors.txt	2015-06-27 04:40:18 +0000
@@ -20,7 +20,7 @@
 
     >>> anon_browser.getLink('More contributors').click()
     >>> print anon_browser.title
-    Top Ubuntu Linux Contributors...
+    Top Ubuntu Contributors...
 
 
 Top contributors of a product

=== modified file 'lib/lp/registry/stories/object/xx-nameblacklist.txt'
--- lib/lp/registry/stories/object/xx-nameblacklist.txt	2014-01-30 15:04:06 +0000
+++ lib/lp/registry/stories/object/xx-nameblacklist.txt	2015-06-27 04:40:18 +0000
@@ -7,7 +7,6 @@
     >>> admin_browser.open('http://launchpad.dev/projectgroups/+new')
     >>> admin_browser.getControl('Name', index=0).value = 'blacklisted'
     >>> admin_browser.getControl('Display Name').value = 'Whatever'
-    >>> admin_browser.getControl('Title').value = 'Whatever'
     >>> admin_browser.getControl('Project Group Summary').value = 'Whatever'
     >>> admin_browser.getControl('Description').value = 'Whatever'
     >>> admin_browser.getControl('Add').click()

=== modified file 'lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt'
--- lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt	2012-06-14 10:34:55 +0000
+++ lib/lp/registry/stories/packaging/xx-sourcepackage-packaging.txt	2015-06-27 04:40:18 +0000
@@ -84,8 +84,6 @@
     bonkers
     >>> print user_browser.getControl(name='field.displayname').value
     Bonkers
-    >>> print user_browser.getControl(name='field.title').value
-    Bonkers
     >>> print user_browser.getControl(name='field.summary').value
     summary for flubber-bin
     summary for flubber-lib
@@ -110,8 +108,6 @@
     bonkers
     >>> print user_browser.getControl(name='field.displayname').value
     Bonkers
-    >>> print user_browser.getControl(name='field.title').value
-    Bonkers
     >>> print user_browser.getControl(name='field.summary').value
     summary for flubber-bin
     summary for flubber-lib

=== modified file 'lib/lp/registry/stories/person/xx-person-projects.txt'
--- lib/lp/registry/stories/person/xx-person-projects.txt	2012-10-24 00:44:43 +0000
+++ lib/lp/registry/stories/person/xx-person-projects.txt	2015-06-27 04:40:18 +0000
@@ -23,8 +23,8 @@
     ...     anon_browser.contents, 'related-projects')
     >>> print extract_text(related_projects)
     Name            Owner   Driver      Bug Supervisor
-    Ubuntu Linux    yes     no          no
-    Ubuntu Test     yes     no          no
+    Ubuntu          yes     no          no
+    ubuntutest      yes     no          no
     Tomcat          yes     no          no
 
 
@@ -43,8 +43,8 @@
     ...     anon_browser.contents, 'related-projects')
     >>> print extract_text(related_projects)
     Name                            Owner   Driver      Bug Supervisor
-    Debian GNU/Linux                yes     no          no
-    The Gentoo Linux                yes     no          no
-    Kubuntu - Free KDE-based Linux  yes     no          no
-    Redhat Advanced Server          yes     no          no
+    Debian                          yes     no          no
+    Gentoo                          yes     no          no
+    Kubuntu                         yes     no          no
+    Red Hat                         yes     no          no
     Apache                          yes     no          no

=== modified file 'lib/lp/registry/stories/product/xx-product-add.txt'
--- lib/lp/registry/stories/product/xx-product-add.txt	2012-07-06 22:36:12 +0000
+++ lib/lp/registry/stories/product/xx-product-add.txt	2015-06-27 04:40:18 +0000
@@ -50,16 +50,13 @@
     >>> user_browser.getControl('Continue').click()
 
     >>> print_errors(user_browser.contents)
-    There are 3 errors.
+    There are 2 errors.
     URL:
     http://launchpad.dev/
     Invalid name 'aard vark'. Names must be at least two characters ...
     At least one lowercase letter or number, followed by letters, numbers,
     dots, hyphens or pluses. Keep this name short; it is used in URLs as
     shown above.
-    Title:
-    Required input is missing.
-    The project title. Should be just a few words.
     Summary:
     Required input is missing.
     A short paragraph to introduce the project's work.
@@ -68,7 +65,6 @@
 correctly this time.
 
     >>> user_browser.getControl('URL').value = 'aardvark'
-    >>> user_browser.getControl('Title').value = 'The Aardvark Center'
     >>> user_browser.getControl('Summary').value = (
     ...     'A project designed to placate ornery aardvarks')
 
@@ -92,10 +88,9 @@
     >>> print user_browser.getControl(name='field.name').value
     aardvark
 
-Sample Person is given the opportunity though to change the title and
-summary.  She can also add a longer description.
+Sample Person is given the opportunity though to change the summary.
+She can also add a longer description.
 
-    >>> user_browser.getControl('Title').value = 'Aardvark Central Command'
     >>> user_browser.getControl('Summary').value = (
     ...     'Control pesky aardvarkian fnords')
     >>> user_browser.getControl('Description').value = (
@@ -142,7 +137,6 @@
 
     >>> user_browser.getControl('Name').value = 'kittyhawk'
     >>> user_browser.getControl('URL').value = 'kittyhawk'
-    >>> user_browser.getControl('Title').value = 'Kitty Hawk ATC'
     >>> user_browser.getControl('Summary').value = (
     ...     'Kitty Hawk Air Traffic Simulator')
     >>> user_browser.getControl('Continue').click()
@@ -178,7 +172,6 @@
 
     >>> user_browser.getControl('Name').value = 'Snowdog'
     >>> user_browser.getControl('URL').value = 'snowdog'
-    >>> user_browser.getControl('Title').value = 'Snowdog Browser'
     >>> user_browser.getControl('Summary').value = (
     ...     'Snowdog is a browser similar to Firefox')
     >>> user_browser.getControl('Continue').click()

=== modified file 'lib/lp/registry/stories/product/xx-product-edit.txt'
--- lib/lp/registry/stories/product/xx-product-edit.txt	2012-07-06 22:19:56 +0000
+++ lib/lp/registry/stories/product/xx-product-edit.txt	2015-06-27 04:40:18 +0000
@@ -74,7 +74,6 @@
     >>> user_browser.open('http://launchpad.dev/products/+new')
     >>> user_browser.getControl('URL', index=0).value = 'newproductname'
     >>> user_browser.getControl('Name').value = 'dname'
-    >>> user_browser.getControl('Title').value = 'title'
     >>> user_browser.getControl('Summary').value = 'summary'
     >>> user_browser.getControl('Continue').click()
 
@@ -91,7 +90,6 @@
     >>> user_browser.open('http://launchpad.dev/products/+new')
     >>> user_browser.getControl('URL', index=0).value = 'newproductname2'
     >>> user_browser.getControl('Name').value = 'dname2'
-    >>> user_browser.getControl('Title').value = 'title2'
     >>> user_browser.getControl('Summary').value = 'summary2'
     >>> user_browser.getControl('Continue').click()
 

=== modified file 'lib/lp/registry/stories/project/xx-project-add-product.txt'
--- lib/lp/registry/stories/project/xx-project-add-product.txt	2010-04-19 08:11:52 +0000
+++ lib/lp/registry/stories/project/xx-project-add-product.txt	2015-06-27 04:40:18 +0000
@@ -17,7 +17,6 @@
 
     >>> browser.getControl(name='field.displayname').value = 'Eye of GNOME'
     >>> browser.getControl(name='field.name', index=0).value = 'eog'
-    >>> browser.getControl(name='field.title').value = 'Eye of GNOME'
     >>> browser.getControl(name='field.summary').value = 'An image viewer for GNOME'
     >>> browser.getControl('Continue').click()
     >>> print browser.url

=== modified file 'lib/lp/registry/stories/project/xx-project-add.txt'
--- lib/lp/registry/stories/project/xx-project-add.txt	2013-09-27 04:13:23 +0000
+++ lib/lp/registry/stories/project/xx-project-add.txt	2015-06-27 04:40:18 +0000
@@ -19,7 +19,6 @@
 
   >>> admin_browser.getControl('Name', index=0).value = 'kde'
   >>> admin_browser.getControl('Display Name').value = 'K Desktop Environment'
-  >>> admin_browser.getControl('Title').value = 'K Desktop Environment'
   >>> admin_browser.getControl('Project Group Summary').value = 'KDE'
   >>> admin_browser.getControl('Description').value = 'K Desktop Environment'
   >>> admin_browser.getControl('Maintainer').value = 'cprov'
@@ -34,7 +33,6 @@
   >>> admin_browser.open('http://launchpad.dev/projectgroups/+new')
   >>> admin_browser.getControl('Name', index=0).value = 'kde!'
   >>> admin_browser.getControl('Display Name').value = 'K Desktop Environment'
-  >>> admin_browser.getControl('Title').value = 'K Desktop Environment'
   >>> admin_browser.getControl('Project Group Summary').value = 'KDE'
   >>> admin_browser.getControl('Description').value = 'K Desktop Environment'
   >>> admin_browser.getControl('Maintainer').value = 'cprov'

=== modified file 'lib/lp/registry/stories/project/xx-project-edit.txt'
--- lib/lp/registry/stories/project/xx-project-edit.txt	2012-04-27 02:41:35 +0000
+++ lib/lp/registry/stories/project/xx-project-edit.txt	2015-06-27 04:40:18 +0000
@@ -11,7 +11,6 @@
 
     >>> soup = find_main_content(browser.contents)
     >>> browser.getControl('Display Name').value = 'New Name'
-    >>> browser.getControl('Title').value = 'New Title'
     >>> browser.getControl('Project Group Summary').value = 'New Summary.'
     >>> browser.getControl('Description').value = 'New Description.'
     >>> browser.getControl('Homepage URL').value = 'http://new-url.com/'

=== modified file 'lib/lp/registry/stories/project/xx-project-index.txt'
--- lib/lp/registry/stories/project/xx-project-index.txt	2014-02-19 02:11:16 +0000
+++ lib/lp/registry/stories/project/xx-project-index.txt	2015-06-27 04:40:18 +0000
@@ -69,7 +69,6 @@
     >>> admin_browser.open('http://launchpad.dev/projectgroups/+new')
     >>> admin_browser.getControl(name='field.name').value = 'a-test-group'
     >>> admin_browser.getControl('Display Name:').value = 'Test Group'
-    >>> admin_browser.getControl('Title:').value = 'My Test Group'
     >>> admin_browser.getControl(name='field.summary').value = 'Summary'
     >>> admin_browser.getControl('Description:').value = 'Define me'
     >>> admin_browser.getControl('Maintainer:').value = 'cprov'

=== modified file 'lib/lp/registry/stories/webservice/xx-distribution.txt'
--- lib/lp/registry/stories/webservice/xx-distribution.txt	2015-05-13 06:28:34 +0000
+++ lib/lp/registry/stories/webservice/xx-distribution.txt	2015-06-27 04:40:18 +0000
@@ -55,7 +55,7 @@
     summary: u'Ubuntu is a new approach to Linux Distribution...'
     supports_mirrors: True
     supports_ppas: True
-    title: u'Ubuntu Linux'
+    title: u'Ubuntu'
     vcs: None
     web_link: u'http://launchpad.../ubuntu'
 

=== modified file 'lib/lp/registry/stories/webservice/xx-project-registry.txt'
--- lib/lp/registry/stories/webservice/xx-project-registry.txt	2015-06-25 07:39:40 +0000
+++ lib/lp/registry/stories/webservice/xx-project-registry.txt	2015-06-27 04:40:18 +0000
@@ -24,6 +24,7 @@
     >>> for project_group in project_group_entries:
     ...   print project_group['display_name']
     Apache
+    ...
     GNOME
     ...
     The Mozilla Project
@@ -46,6 +47,7 @@
     >>> for project_group in project_group_entries:
     ...   print project_group['display_name']
     Apache
+    ...
     GNOME
     ...
     The Mozilla Project

=== modified file 'lib/lp/registry/tests/test_product.py'
--- lib/lp/registry/tests/test_product.py	2015-06-25 07:39:40 +0000
+++ lib/lp/registry/tests/test_product.py	2015-06-27 04:40:18 +0000
@@ -940,7 +940,7 @@
                 'official_codehosting', 'owner', 'private',
                 'programminglang', 'projectgroup', 'redeemSubscriptionVoucher',
                 'releaseroot', 'screenshotsurl', 'sourceforgeproject',
-                'summary', 'title', 'uses_launchpad', 'wikiurl', 'vcs')),
+                'summary', 'uses_launchpad', 'wikiurl', 'vcs')),
             'launchpad.Moderate': set((
                 'active', 'autoupdate', 'license_approved', 'name',
                 'project_reviewed', 'registrant', 'reviewer_whiteboard')),

=== modified file 'lib/lp/soyuz/doc/soyuz-set-of-uploads.txt'
--- lib/lp/soyuz/doc/soyuz-set-of-uploads.txt	2015-04-20 09:48:57 +0000
+++ lib/lp/soyuz/doc/soyuz-set-of-uploads.txt	2015-06-27 04:40:18 +0000
@@ -349,7 +349,7 @@
     <BLANKLINE>
     Announcing to breezy-changes@xxxxxxxxxx
     <BLANKLINE>
-    Thank you for your contribution to Ubuntu Test.
+    Thank you for your contribution to ubuntutest.
     <BLANKLINE>
     -- =
     <BLANKLINE>

=== modified file 'lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt'
--- lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt	2014-11-27 22:13:36 +0000
+++ lib/lp/soyuz/stories/distribution/xx-distribution-packages.txt	2015-06-27 04:40:18 +0000
@@ -194,7 +194,7 @@
     iceweasel package : Ubuntu
 
     >>> print_location(user_browser.contents)
-    Hierarchy: Ubuntu Linux > iceweasel package
+    Hierarchy: Ubuntu > iceweasel package
     Tabs:
     * Overview (selected) - not linked
     * Code - http://code.launchpad.dev/ubuntu/+source/iceweasel
@@ -391,7 +391,7 @@
     Change log : foobar package : Ubuntu
 
     >>> print_location(browser.contents)
-    Hierarchy: Ubuntu Linux > foobar package
+    Hierarchy: Ubuntu > foobar package
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu/+source/foobar
     * Code - http://code.launchpad.dev/ubuntu/+source/foobar
@@ -582,7 +582,7 @@
     Publishing history : alsa-utils package : Ubuntu
 
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > alsa-utils package
+    Hierarchy: Ubuntu > alsa-utils package
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu/+source/alsa-utils
     * Code - http://code.launchpad.dev/ubuntu/+source/alsa-utils

=== modified file 'lib/lp/soyuz/stories/packaging/package-pages-navigation.txt'
--- lib/lp/soyuz/stories/packaging/package-pages-navigation.txt	2014-11-29 07:47:46 +0000
+++ lib/lp/soyuz/stories/packaging/package-pages-navigation.txt	2015-06-27 04:40:18 +0000
@@ -16,7 +16,7 @@
 
     >>> anon_browser.open('http://launchpad.dev/ubuntu/+source/alsa-utils')
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > alsa-utils package
+    Hierarchy: Ubuntu > alsa-utils package
     Tabs:
     * Overview (selected) - not linked
     * Code - http://code.launchpad.dev/ubuntu/+source/alsa-utils
@@ -28,7 +28,7 @@
 
     >>> anon_browser.open('http://bugs.launchpad.dev/ubuntu/+source/alsa-utils')
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > alsa-utils package
+    Hierarchy: Ubuntu > alsa-utils package
     Tabs:
     * Overview - http://launchpad.dev/ubuntu/+source/alsa-utils
     * Code - http://code.launchpad.dev/ubuntu/+source/alsa-utils
@@ -49,7 +49,7 @@
     >>> anon_browser.open(
     ...     'http://launchpad.dev/ubuntu/+source/alsa-utils/1.0.9a-4ubuntu1')
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > alsa-utils package
+    Hierarchy: Ubuntu > alsa-utils package
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu/+source/alsa-utils
     * Code - http://code.launchpad.dev/ubuntu/+source/alsa-utils
@@ -68,7 +68,7 @@
     >>> anon_browser.open(
     ...     'http://launchpad.dev/ubuntu/+source/alsa-utils/1.0.9a-4ubuntu1/+build/11')
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > alsa-utils package > 1.0.9a-4ubuntu1 > i386 build
+    Hierarchy: Ubuntu > alsa-utils package > 1.0.9a-4ubuntu1 > i386 build
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu/+source/alsa-utils
     * Code - http://code.launchpad.dev/ubuntu/+source/alsa-utils
@@ -87,7 +87,7 @@
     >>> anon_browser.open(
     ...     'http://launchpad.dev/ubuntu/hoary/+source/alsa-utils')
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > alsa-utils package
+    Hierarchy: Ubuntu > alsa-utils package
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu/+source/alsa-utils
     * Code - http://code.launchpad.dev/ubuntu/+source/alsa-utils
@@ -105,7 +105,7 @@
 
     >>> anon_browser.open('http://launchpad.dev/ubuntu/hoary/i386')
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > Hoary (5.04) > i386
+    Hierarchy: Ubuntu > Hoary (5.04) > i386
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu
     * Code - http://code.launchpad.dev/ubuntu
@@ -123,7 +123,7 @@
 
     >>> anon_browser.open('http://launchpad.dev/ubuntu/hoary/i386/pmount')
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > Hoary (5.04) > i386 > pmount
+    Hierarchy: Ubuntu > Hoary (5.04) > i386 > pmount
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu
     * Code - http://code.launchpad.dev/ubuntu
@@ -142,7 +142,7 @@
     >>> anon_browser.open(
     ...     'http://launchpad.dev/ubuntu/hoary/i386/pmount/0.1-1')
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux > Hoary (5.04) > i386 > pmount > 0.1-1
+    Hierarchy: Ubuntu > Hoary (5.04) > i386 > pmount > 0.1-1
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu
     * Code - http://code.launchpad.dev/ubuntu

=== modified file 'lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt'
--- lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt	2015-06-24 00:17:11 +0000
+++ lib/lp/soyuz/stories/ppa/xx-ubuntu-ppas.txt	2015-06-27 04:40:18 +0000
@@ -1,11 +1,11 @@
 = Ubuntu PPAs =
 
-The Ubuntu Linux page contains a link to get to the Personal Package Archives.
+The Ubuntu page contains a link to get to the Personal Package Archives.
 
     >>> anon_browser.open("http://launchpad.dev/ubuntu";)
     >>> anon_browser.getLink("Personal Package Archives").click()
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Linux
+    Hierarchy: Ubuntu
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu
     * Code - http://code.launchpad.dev/ubuntu
@@ -13,7 +13,7 @@
     * Blueprints - http://blueprints.launchpad.dev/ubuntu
     * Translations - http://translations.launchpad.dev/ubuntu
     * Answers - http://answers.launchpad.dev/ubuntu
-    Main heading: Personal Package Archives for Ubuntu Linux
+    Main heading: Personal Package Archives for Ubuntu
 
 
 == Distribution PPA main page ==

=== modified file 'lib/lp/soyuz/stories/soyuz/xx-distribution-add.txt'
--- lib/lp/soyuz/stories/soyuz/xx-distribution-add.txt	2012-12-18 02:24:43 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-distribution-add.txt	2015-06-27 04:40:18 +0000
@@ -30,7 +30,6 @@
 
   >>> admin_browser.getControl(name="field.name").value = 'test'
   >>> admin_browser.getControl("Display Name").value = 'Test Distro'
-  >>> admin_browser.getControl("Title").value = 'The Test Distribution'
   >>> admin_browser.getControl("Summary").value = 'Test Distro Summary'
   >>> admin_browser.getControl("Description").value = 'Test Distro Description'
   >>> admin_browser.getControl("Web site URL").value = 'foo.com'
@@ -41,5 +40,5 @@
   'http://launchpad.dev/test'
 
   >>> admin_browser.contents
-  '...The Test Distribution...'
+  '...Test Distro...'
 

=== modified file 'lib/lp/soyuz/stories/soyuz/xx-distribution-archives.txt'
--- lib/lp/soyuz/stories/soyuz/xx-distribution-archives.txt	2014-11-27 07:48:25 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-distribution-archives.txt	2015-06-27 04:40:18 +0000
@@ -52,14 +52,14 @@
 
     >>> anon_browser.open("http://launchpad.dev/ubuntu/+archives";)
     >>> print anon_browser.title
-    Ubuntu Linux Copy Archives...
+    Ubuntu Copy Archives...
 
 This index of /ubuntu/+archives provides an overview describing
 what the viewer can expect to find here
 
     >>> main_content = find_main_content(anon_browser.contents)
     >>> print extract_text(main_content)
-    Copy Archives related to Ubuntu Linux
+    Copy Archives related to Ubuntu
     'Copy' archives containing packages copied from other archives
     (the main archive or PPAs) for a distribution.
     ...

=== modified file 'lib/lp/soyuz/stories/soyuz/xx-distribution-edit.txt'
--- lib/lp/soyuz/stories/soyuz/xx-distribution-edit.txt	2009-08-23 05:28:49 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-distribution-edit.txt	2015-06-27 04:40:18 +0000
@@ -11,7 +11,6 @@
   'Ubuntu'
   >>> admin_browser.getControl("Display Name").value = 'Test Distro'
 
-  >>> admin_browser.getControl("Title").value = 'The Test Distribution'
   >>> admin_browser.getControl("Summary").value = 'Test Distro Summary'
   >>> admin_browser.getControl("Description").value = 'Test Distro Description'
 

=== modified file 'lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt'
--- lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt	2014-11-27 22:13:36 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-distributionsourcepackagerelease-pages.txt	2015-06-27 04:40:18 +0000
@@ -45,7 +45,7 @@
 they all point to the `DistributionSourcePackage` (parent) url.
 
     >>> print_location(anon_browser.contents)
-    Hierarchy: Ubuntu Test > testing-dspr package
+    Hierarchy: ubuntutest > testing-dspr package
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntutest/+source/testing-dspr
     * Code - http://code.launchpad.dev/ubuntutest/+source/testing-dspr

=== modified file 'lib/lp/soyuz/stories/soyuz/xx-distro-distros-index.txt'
--- lib/lp/soyuz/stories/soyuz/xx-distro-distros-index.txt	2009-06-12 16:36:02 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-distro-distros-index.txt	2015-06-27 04:40:18 +0000
@@ -5,9 +5,9 @@
   >>> browser.contents
   '...Distributions...'
 
-  >>> browser.getLink("Kubuntu - Free KDE-based Linux").click()
+  >>> browser.getLink("Kubuntu").click()
   >>> browser.url
   'http://localhost/kubuntu'
   >>> browser.contents
-  '...Free KDE-based Linux...'
+  '...Kubuntu...'
  

=== modified file 'lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt'
--- lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt	2014-11-27 22:13:36 +0000
+++ lib/lp/soyuz/stories/soyuz/xx-sourcepackage-changelog.txt	2015-06-27 04:40:18 +0000
@@ -6,7 +6,7 @@
     >>> user_browser.open(
     ...     "http://launchpad.dev/ubuntu/hoary/+source/pmount/+changelog";)
     >>> print_location(user_browser.contents)
-    Hierarchy: Ubuntu Linux > ...pmount... package > Hoary (5.04) > Change log
+    Hierarchy: Ubuntu > ...pmount... package > Hoary (5.04) > Change log
     Tabs:
     * Overview (selected) - http://launchpad.dev/ubuntu/+source/pmount
     * Code - http://code.launchpad.dev/ubuntu/+source/pmount

=== modified file 'lib/lp/translations/stories/standalone/xx-products-with-translations.txt'
--- lib/lp/translations/stories/standalone/xx-products-with-translations.txt	2010-11-24 14:44:39 +0000
+++ lib/lp/translations/stories/standalone/xx-products-with-translations.txt	2015-06-27 04:40:18 +0000
@@ -27,6 +27,6 @@
     >>> print find_main_content(browser.contents).renderContents()
     <...>
     ... of 2 results
+    ...Evolution...
     ...alsa-utils...
-    ...Evolution...
 


Follow ups