Merge lp:~sinzui/launchpad/series-performance into lp:launchpad
Proposed by
Curtis Hovey
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Brad Crittenden | ||||
Approved revision: | no longer in the source branch. | ||||
Merged at revision: | not available | ||||
Proposed branch: | lp:~sinzui/launchpad/series-performance | ||||
Merge into: | lp:launchpad | ||||
Diff against target: | None lines | ||||
To merge this branch: | bzr merge lp:~sinzui/launchpad/series-performance | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Francis J. Lacoste (community) | release-critical | Approve | |
Brad Crittenden (community) | Approve | ||
Review via email: mp+9100@code.launchpad.net |
To post a comment you must log in.
This is my branch to address +series timeouts.
lp:~sinzui/launchpad/series-performance /bugs.launchpad .net/bugs/ 396135 views|xx- productseries- series" implementation: Edwin
Diff size: 120
Launchpad bug: https:/
Test command: ./bin/test -vvt "productseries-
Pre-
Target release: 2.2.7
= +series timeouts =
The longest step is rendering the +series page is checking the privacy
of bugs. The +series page presents a count of all bug status for a series.
Since bug privacy is an expensive feature to re-implement, the +series page
must be more selective about which bugs to count.
Obsolete series are less interesting that other series. They do not need
bug status counts. In the bzr/+series example, there are 29 obsolete series
and 7 series that are other statuses. There are about 200 privacy checks
that can be avoided, as well as SQL calls to get that information.
== Rules ==
Add a condition to the productseries- status. pt template to display the bug
status only when the series is not obsolete
== QA ==
* Visit https:/ /staging. launchpad. net/bzr/ +series
* Verify that no obsolete series has a "Bugs targeted:" line
* Load the page repeatedly to verify that the page does no timeout.
== Lint ==
Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.
Linting changed files: registry/ browser/ productseries. py registry/ browser/ tests/productse ries-views. txt registry/ stories/ productseries/ xx-productserie s-series. txt registry/ templates/ productseries- status. pt
lib/lp/
lib/lp/
lib/lp/
lib/lp/
== Test ==
* lib/lp/ registry/ browser/ tests/productse ries-views. txt registry/ stories/ productseries/ xx-productserie s-series. txt
* Added a test to verify that the view provides an is_obsolete
property.
* lib/lp/
* Revised a test to show that obsolete series do not have a
"Bugs targeted:" line.
== Implementation ==
* lib/lp/ registry/ browser/ productseries. py registry/ templates/ productseries- status. pt
* Added the is_obsolete property for the template.
* lib/lp/
* Use the is_obsolete to avoid rendering the "Bugs targeted:" section.