Merge lp:~abentley/launchpad/request-build into lp:launchpad/db-devel
Status: | Merged |
---|---|
Approved by: | Aaron Bentley |
Approved revision: | no longer in the source branch. |
Merged at revision: | not available |
Proposed branch: | lp:~abentley/launchpad/request-build |
Merge into: | lp:launchpad/db-devel |
Prerequisite: | lp:~abentley/launchpad/recipe-index |
Diff against target: |
719 lines (+358/-105) 12 files modified
configs/development/build-from-branch.zcml (+24/-0) lib/canonical/launchpad/browser/__init__.py (+0/-4) lib/canonical/launchpad/icing/style-3-0.css.in (+11/-0) lib/lp/code/browser/sourcepackagerecipe.py (+86/-1) lib/lp/code/browser/tests/test_sourcepackagerecipe.py (+98/-21) lib/lp/code/templates/sourcepackagerecipe-index.pt (+73/-51) lib/lp/code/templates/sourcepackagerecipe-request-builds.pt (+27/-0) lib/lp/soyuz/browser/archive.py (+14/-16) lib/lp/soyuz/browser/configure.zcml (+1/-1) lib/lp/soyuz/browser/tests/build-views.txt (+1/-1) lib/lp/testing/__init__.py (+11/-3) lib/lp/testing/factory.py (+12/-7) |
To merge this branch: | bzr merge lp:~abentley/launchpad/request-build |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Michael Nelson (community) | ui | Approve | |
Paul Hummer (community) | code ui* | Approve | |
Review via email: mp+22570@code.launchpad.net |
Description of the change
= Summary =
Provide a UI for requesting builds, improve the display of recent/past builds
== Proposed fix ==
http://
http://
== Pre-implementation notes ==
Pre and mid-implementation discussion with rockstar.
== Implementation details ==
Tables seem to default to basically unstyled, so I created a "code" CSS class that our tables can use.
A lot of new infrastructure was needed. This includes vocabularies for the user-targettable archives and applicable distroseries. I used functions returning SimpleVocabularies rather than defining new Vocabulary classes because I couldn't see any advantage to classes, and less code is better.
As a lint fix, I added several entries to testing.__all__, because they were apparently meant to be importable from testing.
I extracted make_archive_
I also had to fix a lot of circular imports now that we're importing make_archive_
I also tweaked some factory methods and getUserBrowser, to support parameterizations I wanted to do.
== Tests ==
bin/test test_sourcepack
== Demo and Q/A ==
Cannot be Q/A'ed until more pieces are in place.
= Launchpad lint =
(As far as I can tell, this is all bogus, including the super warnings)
Checking for conflicts. and issues in doctests and templates.
Running jslint, xmllint, pyflakes, and pylint.
Using normal rules.
Linting changed files:
configs/
lib/canonical
lib/canonical
lib/lp/
lib/lp/
lib/lp/
lib/lp/
lib/lp/
lib/lp/
lib/lp/
lib/lp/
lib/lp/
== Pylint notices ==
lib/canonical/
15: [F0401] Unable to import 'lp.soyuz.
16: [F0401] Unable to import 'lp.code.
17: [F0401] Unable to import 'lp.code.
18: [F0401] Unable to import 'lp.code.
19: [F0401] Unable to import 'lp.code.
20: [F0401] Unable to import 'lp.code.
21: [F0401] Unable to import 'lp.code.
22: [F0401] Unable to import 'lp.registry.
23: [F0401] Unable to import 'lp.code.
24: [F0401] Unable to import 'lp.registry.
25: [F0401] Unable to import 'lp.soyuz.
26: [F0401] Unable to import 'lp.soyuz.
27: [F0401] Unable to import 'lp.soyuz.
28: [F0401] Unable to import 'lp.soyuz.
29: [F0401] Unable to import 'lp.soyuz.
30: [F0401] Unable to import 'lp.soyuz.
31: [F0401] Unable to import 'lp.answers.
32: [F0401] Unable to import 'lp.answers.
33: [F0401] Unable to import 'lp.answers.
34: [F0401] Unable to import 'lp.registry.
35: [F0401] Unable to import 'canonical.
36: [F0401] Unable to import 'lp.hardwaredb.
37: [F0401] Unable to import 'lp.registry.
38: [F0401] Unable to import 'canonical.
39: [F0401] Unable to import 'canonical.
40: [F0401] Unable to import 'canonical.
41: [F0401] Unable to import 'canonical.
42: [F0401] Unable to import 'lp.registry.
43: [F0401] Unable to import 'lp.registry.
44: [F0401] Unable to import 'canonical.
45: [F0401] Unable to import 'lp.registry.
46: [F0401] Unable to import 'canonical.
47: [F0401] Unable to import 'lp.registry.
48: [F0401] Unable to import 'lp.registry.
49: [F0401] Unable to import 'lp.soyuz.
50: [F0401] Unable to import 'lp.soyuz.
51: [F0401] Unable to import 'lp.answers.
52: [F0401] Unable to import 'lp.answers.
53: [F0401] Unable to import 'lp.soyuz.
54: [F0401] Unable to import 'lp.soyuz.
55: [F0401] Unable to import 'lp.blueprints.
56: [F0401] Unable to import 'lp.blueprints.
57: [F0401] Unable to import 'lp.blueprints.
58: [F0401] Unable to import 'lp.blueprints.
59: [F0401] Unable to import 'lp.blueprints.
60: [F0401] Unable to import 'lp.blueprints.
61: [F0401] Unable to import 'lp.blueprints.
62: [F0401] Unable to import 'lp.blueprints.
63: [F0401] Unable to import 'lp.blueprints.
64: [F0401] Unable to import 'lp.registry.
65: [F0401] Unable to import 'lp.registry.
66: [F0401] Unable to import 'canonical.
67: [F0401] Unable to import 'canonical.
lib/lp/
11: [F0401] Unable to import 'zope.component'
13: [F0401] Unable to import 'zope.schema'
14: [F0401] Unable to import 'zope.schema.
15: [F0401] Unable to import 'canonical.
17: [F0401] Unable to import 'canonical.
18: [F0401] Unable to import 'canonical.
21: [F0401] Unable to import 'canonical.
22: [F0401] Unable to import 'lp.buildmaster
23: [F0401] Unable to import 'lp.code.
24: [F0401] Unable to import 'lp.soyuz.
25: [F0401] Unable to import 'lp.soyuz.
27: [F0401] Unable to import 'lp.registry.
28: [F0401] Unable to import 'lp.registry.
lib/lp/
29: [E1002, TestSourcePacka
lib/lp/
31: [F0401] Unable to import 'pytz'
34: [F0401] Unable to import 'zope.app.
35: [F0401] Unable to import 'zope.component'
36: [F0401] Unable to import 'zope.formlib'
38: [F0401] Unable to import 'zope.security.
39: [F0401] Unable to import 'zope.schema'
40: [F0401] Unable to import 'zope.schema.
41: [F0401] Unable to import 'zope.schema.
42: [F0401] Unable to import 'storm.
46: [F0401] Unable to import 'canonical.
47: [F0401] Unable to import 'canonical.
48: [F0401] Unable to import 'canonical.
49: [F0401] Unable to import 'canonical.
50: [F0401] Unable to import 'lp.buildmaster
51: [F0401] Unable to import 'lp.services.
52: [F0401] Unable to import 'lp.services.
53: [F0401] Unable to import 'lp.soyuz.
54: [F0401] Unable to import 'lp.soyuz.
56: [F0401] Unable to import 'canonical.
57: [F0401] Unable to import 'lp.soyuz.
59: [F0401] Unable to import 'lp.soyuz.
61: [F0401] Unable to import 'lp.soyuz.
64: [F0401] Unable to import 'lp.soyuz.
66: [F0401] Unable to import 'lp.soyuz.
67: [F0401] Unable to import 'lp.soyuz.
68: [F0401] Unable to import 'lp.soyuz.
69: [F0401] Unable to import 'lp.soyuz.
70: [F0401] Unable to import 'lp.soyuz.
71: [F0401] Unable to import 'lp.registry.
72: [F0401] Unable to import 'canonical.
74: [F0401] Unable to import 'lp.soyuz.
76: [F0401] Unable to import 'lp.soyuz.
77: [F0401] Unable to import 'lp.registry.
78: [F0401] Unable to import 'lp.registry.
79: [F0401] Unable to import 'lp.soyuz.
82: [F0401] Unable to import 'lp.registry.
84: [F0401] Unable to import 'canonical.
88: [F0401] Unable to import 'lp.soyuz.
89: [F0401] Unable to import 'canonical.
90: [F0401] Unable to import 'canonical.
91: [F0401] Unable to import 'canonical.
92: [F0401] Unable to import 'canonical.
93: [F0401] Unable to import 'canonical.
94: [F0401] Unable to import 'canonical.
95: [F0401] Unable to import 'canonical.widgets'
97: [F0401] Unable to import 'canonical.
99: [F0401] Unable to import 'canonical.
101: [F0401] Unable to import 'canonical.
791: [E1002, ArchiveView.
989: [E1002, ArchiveSourceSe
lib/lp/
57: [F0401] Unable to import 'pytz'
58: [F0401] Unable to import 'storm.expr'
59: [F0401] Unable to import 'storm.store'
60: [F0401] Unable to import 'storm.tracer'
63: [F0401] Unable to import 'transaction'
67: [F0401] Unable to import 'windmill.
69: [F0401] Unable to import 'zope.component'
70: [F0401] Unable to import 'zope.event'
72: [F0401] Unable to import 'zope.security.
74: [F0401] Unable to import 'zope.testing.
76: [F0401] Unable to import 'canonical.
77: [F0401] Unable to import 'canonical.config'
78: [F0401] Unable to import 'canonical.
79: [F0401] Unable to import 'canonical.
80: [F0401] Unable to import 'lp.codehosting
83: [F0401] Unable to import 'lp.testing._login'
87: [F0401] Unable to import 'lp.testing._tales'
88: [F0401] Unable to import 'lp.testing.
201: [F0401, run_with_
375: [F0401, TestCase.setUp] Unable to import 'lp.testing.
404: [F0401, TestCaseWithFac
416: [F0401, TestCaseWithFac
542: [F0401, TestCaseWithFac
606: [F0401, YUIUnitTestCase
lib/lp/
27: [F0401] Unable to import 'pytz'
28: [F0401] Unable to import 'storm.store'
29: [F0401] Unable to import 'transaction'
33: [F0401] Unable to import 'zope.component'
34: [F0401] Unable to import 'zope.security.
36: [F0401] Unable to import 'canonical.
37: [F0401] Unable to import 'canonical.config'
38: [F0401] Unable to import 'canonical.
41: [F0401] Unable to import 'canonical.
42: [F0401] Unable to import 'canonical.
43: [F0401] Unable to import 'canonical.
44: [F0401] Unable to import 'canonical.
45: [F0401] Unable to import 'canonical.
47: [F0401] Unable to import 'canonical.
49: [F0401] Unable to import 'canonical.
50: [F0401] Unable to import 'lp.hardwaredb.
53: [F0401] Unable to import 'canonical.
54: [F0401] Unable to import 'canonical.
55: [F0401] Unable to import 'canonical.
58: [F0401] Unable to import 'canonical.
59: [F0401] Unable to import 'canonical.
62: [F0401] Unable to import 'lp.blueprints.
64: [F0401] Unable to import 'lp.blueprints.
66: [F0401] Unable to import 'lp.bugs.
67: [F0401] Unable to import 'lp.bugs.
68: [F0401] Unable to import 'lp.bugs.
69: [F0401] Unable to import 'lp.bugs.
70: [F0401] Unable to import 'lp.buildmaster
71: [F0401] Unable to import 'lp.buildmaster
72: [F0401] Unable to import 'lp.buildmaster
74: [F0401] Unable to import 'lp.code.enums'
79: [F0401] Unable to import 'lp.code.errors'
80: [F0401] Unable to import 'lp.code.
81: [F0401] Unable to import 'lp.code.
82: [F0401] Unable to import 'lp.code.
83: [F0401] Unable to import 'lp.code.
84: [F0401] Unable to import 'lp.code.
85: [F0401] Unable to import 'lp.code.
86: [F0401] Unable to import 'lp.code.
87: [F0401] Unable to import 'lp.code.
88: [F0401] Unable to import 'lp.code.
89: [F0401] Unable to import 'lp.code.
92: [F0401] Unable to import 'lp.code.
93: [F0401] Unable to import 'lp.codehosting
95: [F0401] Unable to import 'lp.registry.
96: [F0401] Unable to import 'lp.registry.
98: [F0401] Unable to import 'lp.registry.
99: [F0401] Unable to import 'lp.registry.
100: [F0401] Unable to import 'lp.registry.
102: [F0401] Unable to import 'lp.registry.
104: [F0401] Unable to import 'lp.registry.
106: [F0401] Unable to import 'lp.registry.
107: [F0401] Unable to import 'lp.registry.
108: [F0401] Unable to import 'lp.registry.
109: [F0401] Unable to import 'lp.registry.
110: [F0401] Unable to import 'lp.registry.
111: [F0401] Unable to import 'lp.registry.
113: [F0401] Unable to import 'lp.registry.
115: [F0401] Unable to import 'lp.registry.
116: [F0401] Unable to import 'lp.registry.
118: [F0401] Unable to import 'lp.registry.
119: [F0401] Unable to import 'lp.registry.
120: [F0401] Unable to import 'lp.registry.
122: [F0401] Unable to import 'lp.services.
123: [F0401] Unable to import 'lp.services.
124: [F0401] Unable to import 'lp.services.
126: [F0401] Unable to import 'lp.soyuz.
128: [F0401] Unable to import 'lp.soyuz.
129: [F0401] Unable to import 'lp.soyuz.
130: [F0401] Unable to import 'lp.soyuz.
131: [F0401] Unable to import 'lp.soyuz.
132: [F0401] Unable to import 'lp.soyuz.
133: [F0401] Unable to import 'lp.soyuz.
134: [F0401] Unable to import 'lp.soyuz.
135: [F0401] Unable to import 'lp.soyuz.
137: [F0401] Unable to import 'lp.testing'
139: [F0401] Unable to import 'lp.translation
140: [F0401] Unable to import 'lp.translation
142: [F0401] Unable to import 'lp.translation
143: [F0401] Unable to import 'lp.translation
144: [F0401] Unable to import 'lp.translation
1756: [F0401, LaunchpadObject
Here are some screenshots: people. canonical. com/~abentley/ recipe- index-detailed. png people. canonical. com/~abentley/ request- build.png
http://
http://