Merge lp://qastaging/~bac/launchpad/clarity into lp://qastaging/launchpad

Proposed by Brad Crittenden
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merged at revision: 11025
Proposed branch: lp://qastaging/~bac/launchpad/clarity
Merge into: lp://qastaging/launchpad
Diff against target: 785 lines (+249/-111)
26 files modified
lib/canonical/launchpad/interfaces/launchpad.py (+1/-1)
lib/canonical/launchpad/webapp/menu.py (+0/-1)
lib/lp/bugs/browser/bugrole.py (+0/-13)
lib/lp/bugs/browser/tests/test_bugsupervisor.py (+1/-10)
lib/lp/bugs/browser/tests/test_configure_bugtracker_links.py (+105/-0)
lib/lp/bugs/interfaces/bugsupervisor.py (+8/-1)
lib/lp/bugs/interfaces/bugtarget.py (+4/-3)
lib/lp/bugs/interfaces/securitycontact.py (+4/-1)
lib/lp/bugs/stories/bug-also-affects/xx-upstream-bugtracker-links.txt (+3/-2)
lib/lp/bugs/stories/bug-release-management/50-defer-distribution-bug.txt (+4/-1)
lib/lp/bugs/stories/bug-release-management/60-defer-product-bug.txt (+4/-1)
lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt (+3/-4)
lib/lp/bugs/stories/guided-filebug/xx-bug-reporting-guidelines.txt (+9/-9)
lib/lp/bugs/templates/bugtarget-bugs.pt (+12/-2)
lib/lp/bugs/templates/bugtarget-macros-filebug.pt (+1/-1)
lib/lp/registry/browser/distribution.py (+2/-20)
lib/lp/registry/browser/distributionsourcepackage.py (+2/-5)
lib/lp/registry/browser/pillar.py (+31/-2)
lib/lp/registry/browser/product.py (+5/-18)
lib/lp/registry/help/driver.html (+26/-0)
lib/lp/registry/interfaces/product.py (+5/-4)
lib/lp/registry/stories/person/xx-person-home.txt (+4/-3)
lib/lp/registry/stories/product/xx-product-launchpad-usage.txt (+3/-3)
lib/lp/registry/templates/person-portlet-contact-details.pt (+2/-2)
lib/lp/registry/templates/pillar-involvement-portlet.pt (+0/-1)
lib/lp/registry/templates/product-index.pt (+10/-3)
To merge this branch: bzr merge lp://qastaging/~bac/launchpad/clarity
Reviewer Review Type Date Requested Status
Jelmer Vernooij (community) code Approve
Matthew Revell (community) text Approve
Review via email: mp+27747@code.qastaging.launchpad.net

Description of the change

= Summary =

This branch fixes a slew of bugs related to better wording for various
concepts and other small improvements. The bugs are:

* Bug #91905: Better text for: Product>Bugs>Change Bug Contact
* Bug #91911: Better text for: Product>Bugs>Change Security Contact

 - Simply change the wording in the interface.

* Bug #305482: <project/project-group/distro>/+edit page shows
  misleading instructions for bug reporting guidelines

 - Reword the instructions for entering bug reporting guidelines. Also
change the display to say "Ubuntu bug reporting guidelines" rather than
the older, terse "Ubuntu guidelines".

* Bug #419020: there's no help on the meaning of 'driver' or 'bug
  supervisor'

 - Add a pop-up help page with the definition of driver. Fix the
description of bug supervisor.

* Bug #240369: Editing bug-reporting guidelines should start from Bugs

 - Add a link on the bugs page in the involvement portlet for setting
the bug tracker. Required some refactoring of the bugs menus and the
introduction of a PillarBugsMenu superclass.

Before and after screenshot can be found at:
http://people.canonical.com/~bac/claritynow/

== Proposed fix ==

As above.

== Pre-implementation notes ==

Calls with Curtis.

== Implementation details ==

As above.

== Tests ==

So many tests are affected it is best just to run all registry and bugs
tests:

bin/test -vvm lp.registry
bin/test -vvm lp.bugs

== Demo and Q/A ==

Visit the following URLs and examine the new text:

https://launchpad.dev/applets/+configure-bugtracker
https://launchpad.dev/applets/+securitycontact
https://launchpad.dev/applets/+bugsupervisor
https://launchpad.dev/applets and click on the driver (?) link

= Launchpad lint =

Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.

Linting changed files:
  lib/lp/bugs/browser/tests/test_configure_bugtracker_links.py
  lib/lp/bugs/browser/bugrole.py
  lib/lp/registry/templates/product-index.pt
  lib/canonical/launchpad/interfaces/launchpad.py
  lib/lp/bugs/templates/bugtarget-macros-filebug.pt
  lib/lp/bugs/stories/guided-filebug/xx-bug-reporting-guidelines.txt
  lib/lp/registry/browser/product.py
  lib/lp/registry/stories/person/xx-person-home.txt
  lib/lp/bugs/stories/bugtask-management/xx-bug-privileged-statuses.txt
  lib/lp/registry/browser/distributionsourcepackage.py
  lib/lp/registry/interfaces/product.py
  lib/lp/registry/templates/person-portlet-contact-details.pt
  lib/lp/bugs/stories/bug-release-management/50-defer-distribution-bug.txt
  lib/lp/registry/browser/pillar.py
  lib/lp/bugs/interfaces/securitycontact.py
  lib/lp/bugs/browser/tests/test_bugsupervisor.py
  lib/lp/bugs/stories/bug-release-management/60-defer-product-bug.txt
  lib/lp/registry/templates/pillar-involvement-portlet.pt
  lib/lp/registry/stories/product/xx-product-launchpad-usage.txt
  lib/lp/bugs/interfaces/bugtarget.py
  lib/lp/bugs/templates/bugtarget-bugs.pt
  lib/canonical/launchpad/webapp/menu.py
  lib/lp/bugs/interfaces/bugsupervisor.py
  lib/lp/registry/help/driver.html
  lib/lp/registry/browser/distribution.py
  lib/lp/bugs/stories/bug-also-affects/xx-upstream-bugtracker-links.txt

== Pyflakes notices ==

lib/lp/registry/browser/distribution.py
    9: undefined name 'DistributionLanguagePackAdminView' in __all__
    538: local variable 'more_than_five' is assigned to but never used

== Pylint notices ==

lib/lp/registry/interfaces/product.py
    796: [C0322, IProductSet.createProduct] Operator not preceded by a space
    freshmeatproject='freshmeat_project', wikiurl='wiki_url',
    ^
    downloadurl='download_url',
    sourceforgeproject='sourceforge_project',
    programminglang='programming_lang')
    @export_factory_operation(
    IProduct, ['name', 'displayname', 'title', 'summary', 'description',
    'project', 'homepageurl', 'screenshotsurl',
    'downloadurl', 'freshmeatproject', 'wikiurl',
    'sourceforgeproject', 'programminglang',
    'license_reviewed', 'licenses', 'license_info',
    'registrant'])
    @export_operation_as('new_project')
    def createProduct(owner, name, displayname, title, summary,
    description=None, project=None, homepageurl=None,
    screenshotsurl=None, wikiurl=None,
    downloadurl=None, freshmeatproject=None,
    sourceforgeproject=None, programminglang=None,
    license_reviewed=False, mugshot=None, logo=None,
    icon=None, licenses=None, license_info=None,
    registrant=None):

lib/lp/bugs/interfaces/bugtarget.py
    69: [C0322, IHasBugs.searchTasks] Operator not preceded by a space
    value_type=Text(),
    ^
    required=False),
    search_text=copy_field(IBugTaskSearch['searchtext']),
    status=copy_field(IBugTaskSearch['status']),
    importance=copy_field(IBugTaskSearch['importance']),
    assignee=Reference(schema=Interface),
    bug_reporter=Reference(schema=Interface),
    bug_supervisor=Reference(schema=Interface),
    bug_commenter=Reference(schema=Interface),
    bug_subscriber=Reference(schema=Interface),
    structural_subscriber=Reference(schema=Interface),
    owner=Reference(schema=Interface),
    affected_user=Reference(schema=Interface),
    has_patch=copy_field(IBugTaskSearch['has_patch']),
    has_cve=copy_field(IBugTaskSearch['has_cve']),
    tags=copy_field(IBugTaskSearch['tag']),
    tags_combinator=copy_field(IBugTaskSearch['tags_combinator']),
    omit_duplicates=copy_field(IBugTaskSearch['omit_dupes']),
    omit_targeted=copy_field(IBugTaskSearch['omit_targeted']),
    status_upstream=copy_field(IBugTaskSearch['status_upstream']),
    milestone_assignment=copy_field(
    IBugTaskSearch['milestone_assignment']),
    milestone=copy_field(IBugTaskSearch['milestone']),
    component=copy_field(IBugTaskSearch['component']),
    nominated_for=Reference(schema=Interface),
    has_no_package=copy_field(IBugTaskSearch['has_no_package']),
    hardware_bus=Choice(
    title=u'The bus of a hardware device related to a bug',

    vocabulary=DBEnumeratedType, required=False),
    hardware_vendor_id=TextLine(
    title=(
    u"The vendor ID of a hardware device related to a bug."),
    description=(
    u"Allowed values of the vendor ID depend on the bus of the "
    "device.nn"
    "Vendor IDs of PCI, PCCard and USB devices are hexadecimal "
    "string representations of 16 bit integers in the format "
    "'0x01ab': The prefix '0x', followed by exactly 4 digits; "
    "where a digit is one of the characters 0..9, a..f. The "
    "characters A..F are not allowed.nn"
    "SCSI vendor IDs are strings with exactly 8 characters. "
    "Shorter names are right-padded with space (0x20) characters."
    "nn"
    "IDs for other buses may be arbitrary strings."),
    required=False),
    hardware_product_id=TextLine(
    title=(
    u"The product ID of a hardware device related to a bug."),
    description=(
    u"Allowed values of the product ID depend on the bus of the "
    "device.nn"
    "Product IDs of PCI, PCCard and USB devices are hexadecimal "
    "string representations of 16 bit integers in the format "
    "'0x01ab': The prefix '0x', followed by exactly 4 digits; "
    "where a digit is one of the characters 0..9, a..f. The "
    "characters A..F are not allowed.nn"
    "SCSI product IDs are strings with exactly 16 characters. "
    "Shorter names are right-padded with space (0x20) characters."
    "nn"
    "IDs for other buses may be arbitrary strings."),
    required=False),
    hardware_driver_name=TextLine(
    title=(
    u"The driver controlling a hardware device related to a "
    "bug."),
    required=False),
    hardware_driver_package_name=TextLine(
    title=(
    u"The package of the driver which controls a hardware "
    "device related to a bug."),
    required=False),
    hardware_owner_is_bug_reporter=Bool(
    title=(
    u"Search for bugs reported by people who own the given "
    "device or who use the given hardware driver."),
    required=False),
    hardware_owner_is_affected_by_bug=Bool(
    title=(
    u"Search for bugs where people affected by a bug own the "
    "given device or use the given hardware driver."),
    required=False),
    hardware_owner_is_subscribed_to_bug=Bool(
    title=(
    u"Search for bugs where a bug subscriber owns the "
    "given device or uses the given hardware driver."),
    required=False),
    hardware_is_linked_to_bug=Bool(
    title=(
    u"Search for bugs which are linked to hardware reports "
    "which contain the given device or whcih contain a device"
    "controlled by the given driver."),
    required=False),
    linked_branches=Choice(
    title=(
    u"Search for bugs that are linked to branches or for bugs "
    "that are not linked to branches."),
    vocabulary=BugBranchSearch, required=False))
    @operation_returns_collection_of(IBugTask)
    @export_read_operation()
    def searchTasks(search_params, user=None,
    order_by=None, search_text=None,
    status=None, importance=None,
    assignee=None, bug_reporter=None, bug_supervisor=None,
    bug_commenter=None, bug_subscriber=None, owner=None,
    affected_user=None, has_patch=None, has_cve=None,
    distribution=None, tags=None,
    tags_combinator=BugTagsSearchCombinator.ALL,
    omit_duplicates=True, omit_targeted=None,
    status_upstream=None, milestone_assignment=None,
    milestone=None, component=None, nominated_for=None,
    sourcepackagename=None, has_no_package=None,
    hardware_bus=None, hardware_vendor_id=None,
    hardware_product_id=None, hardware_driver_name=None,
    hardware_driver_package_name=None,
    hardware_owner_is_bug_reporter=None,
    hardware_owner_is_affected_by_bug=False,
    hardware_owner_is_subscribed_to_bug=False,
    hardware_is_linked_to_bug=False, linked_branches=None,
    structural_subscriber=None):

lib/lp/bugs/interfaces/bugsupervisor.py
    31: [C0301] Line too long (79/78)

I'll take care of this last lint issue.

To post a comment you must log in.
Revision history for this message
Matthew Revell (matthew.revell) wrote :

Thank you for doing this work, Brad. This will greatly help.

I have one small suggestion and it is not a show-stopper: I wonder if "Incomplete" in lib/canonical/launchpad/interfaces/launchpad.py should link to https://help.launchpad.net/Bugs/Statuses ... I'm not certain it should, I'm just offering it for your consideration.

review: Approve (text)
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Nice work, another step towards a less overwhelming project page for new users.

I don't see any issues, though I noticed two small formatting glitches:

There doesn't appear to be a (trivial) docstring in lib/lp/bugs/browser/tests/test_configure_bugtracker_links.py

There appears to be a missing whileline above the definition of PillarBugsMenu in lib/lp/registry/browser/pillar.py.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.