Merge lp:~thumper/launchpad/lp-code-errors into lp:launchpad/db-devel
- lp-code-errors
- Merge into db-devel
Proposed by
Tim Penhey
Status: | Merged |
---|---|
Approved by: | Michael Hudson-Doyle |
Approved revision: | not available |
Merged at revision: | 8757 |
Proposed branch: | lp:~thumper/launchpad/lp-code-errors |
Merge into: | lp:launchpad/db-devel |
Prerequisite: | lp:~thumper/launchpad/claim-review-into-model |
Diff against target: |
264 lines (+66/-52) 9 files modified
lib/lp/code/browser/branch.py (+1/-1) lib/lp/code/browser/branchmergeproposal.py (+2/-2) lib/lp/code/errors.py (+48/-0) lib/lp/code/interfaces/branchmergeproposal.py (+1/-38) lib/lp/code/mail/codehandler.py (+2/-2) lib/lp/code/model/branch.py (+3/-2) lib/lp/code/model/branchmergeproposal.py (+4/-3) lib/lp/code/model/tests/test_branch.py (+2/-2) lib/lp/code/model/tests/test_branchmergeproposals.py (+3/-2) |
To merge this branch: | bzr merge lp:~thumper/launchpad/lp-code-errors |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Michael Hudson-Doyle | Approve | ||
Review via email: mp+15724@code.launchpad.net |
Commit message
Create the lp.code.errors module and start moving exceptions across.
Description of the change
To post a comment you must log in.
Revision history for this message
Tim Penhey (thumper) wrote : | # |
Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote : | # |
Looks like a good start for this file :-)
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/lp/code/browser/branch.py' | |||
2 | --- lib/lp/code/browser/branch.py 2009-11-25 23:25:51 +0000 | |||
3 | +++ lib/lp/code/browser/branch.py 2009-12-07 02:20:33 +0000 | |||
4 | @@ -80,10 +80,10 @@ | |||
5 | 80 | latest_proposals_for_each_branch) | 80 | latest_proposals_for_each_branch) |
6 | 81 | from lp.code.enums import ( | 81 | from lp.code.enums import ( |
7 | 82 | BranchLifecycleStatus, BranchType, UICreatableBranchType) | 82 | BranchLifecycleStatus, BranchType, UICreatableBranchType) |
8 | 83 | from lp.code.errors import InvalidBranchMergeProposal | ||
9 | 83 | from lp.code.interfaces.branch import ( | 84 | from lp.code.interfaces.branch import ( |
10 | 84 | BranchCreationForbidden, BranchExists, IBranch, | 85 | BranchCreationForbidden, BranchExists, IBranch, |
11 | 85 | user_has_special_branch_access) | 86 | user_has_special_branch_access) |
12 | 86 | from lp.code.interfaces.branchmergeproposal import InvalidBranchMergeProposal | ||
13 | 87 | from lp.code.interfaces.branchtarget import IBranchTarget | 87 | from lp.code.interfaces.branchtarget import IBranchTarget |
14 | 88 | from lp.code.interfaces.codeimport import CodeImportReviewStatus | 88 | from lp.code.interfaces.codeimport import CodeImportReviewStatus |
15 | 89 | from lp.code.interfaces.codeimportjob import ( | 89 | from lp.code.interfaces.codeimportjob import ( |
16 | 90 | 90 | ||
17 | === modified file 'lib/lp/code/browser/branchmergeproposal.py' | |||
18 | --- lib/lp/code/browser/branchmergeproposal.py 2009-11-24 01:53:32 +0000 | |||
19 | +++ lib/lp/code/browser/branchmergeproposal.py 2009-12-07 02:20:34 +0000 | |||
20 | @@ -71,8 +71,8 @@ | |||
21 | 71 | from lp.code.enums import ( | 71 | from lp.code.enums import ( |
22 | 72 | BranchMergeProposalStatus, BranchType, CodeReviewNotificationLevel, | 72 | BranchMergeProposalStatus, BranchType, CodeReviewNotificationLevel, |
23 | 73 | CodeReviewVote) | 73 | CodeReviewVote) |
26 | 74 | from lp.code.interfaces.branchmergeproposal import ( | 74 | from lp.code.errors import WrongBranchMergeProposal |
27 | 75 | IBranchMergeProposal, WrongBranchMergeProposal) | 75 | from lp.code.interfaces.branchmergeproposal import IBranchMergeProposal |
28 | 76 | from lp.code.interfaces.codereviewcomment import ICodeReviewComment | 76 | from lp.code.interfaces.codereviewcomment import ICodeReviewComment |
29 | 77 | from lp.code.interfaces.codereviewvote import ( | 77 | from lp.code.interfaces.codereviewvote import ( |
30 | 78 | ICodeReviewVoteReference) | 78 | ICodeReviewVoteReference) |
31 | 79 | 79 | ||
32 | === added file 'lib/lp/code/errors.py' | |||
33 | --- lib/lp/code/errors.py 1970-01-01 00:00:00 +0000 | |||
34 | +++ lib/lp/code/errors.py 2009-12-07 02:20:33 +0000 | |||
35 | @@ -0,0 +1,48 @@ | |||
36 | 1 | # Copyright 2009 Canonical Ltd. This software is licensed under the | ||
37 | 2 | # GNU Affero General Public License version 3 (see the file LICENSE). | ||
38 | 3 | |||
39 | 4 | """Errors used in the lp/code modules.""" | ||
40 | 5 | |||
41 | 6 | __metaclass__ = type | ||
42 | 7 | __all__ = [ | ||
43 | 8 | 'BadBranchMergeProposalSearchContext', | ||
44 | 9 | 'BadStateTransition', | ||
45 | 10 | 'BranchMergeProposalExists', | ||
46 | 11 | 'InvalidBranchMergeProposal', | ||
47 | 12 | 'UserNotBranchReviewer', | ||
48 | 13 | 'WrongBranchMergeProposal', | ||
49 | 14 | ] | ||
50 | 15 | |||
51 | 16 | |||
52 | 17 | class BadBranchMergeProposalSearchContext(Exception): | ||
53 | 18 | """The context is not valid for a branch merge proposal search.""" | ||
54 | 19 | |||
55 | 20 | |||
56 | 21 | class BadStateTransition(Exception): | ||
57 | 22 | """The user requested a state transition that is not possible.""" | ||
58 | 23 | |||
59 | 24 | |||
60 | 25 | class InvalidBranchMergeProposal(Exception): | ||
61 | 26 | """Raised during the creation of a new branch merge proposal. | ||
62 | 27 | |||
63 | 28 | The text of the exception is the rule violation. | ||
64 | 29 | """ | ||
65 | 30 | |||
66 | 31 | |||
67 | 32 | class BranchMergeProposalExists(InvalidBranchMergeProposal): | ||
68 | 33 | """Raised if there is already a matching BranchMergeProposal.""" | ||
69 | 34 | |||
70 | 35 | |||
71 | 36 | class UserNotBranchReviewer(Exception): | ||
72 | 37 | """The user who attempted to review the merge proposal isn't a reviewer. | ||
73 | 38 | |||
74 | 39 | A specific reviewer may be set on a branch. If a specific reviewer | ||
75 | 40 | isn't set then any user in the team of the owner of the branch is | ||
76 | 41 | considered a reviewer. | ||
77 | 42 | """ | ||
78 | 43 | |||
79 | 44 | |||
80 | 45 | class WrongBranchMergeProposal(Exception): | ||
81 | 46 | """The comment requested is not associated with this merge proposal.""" | ||
82 | 47 | |||
83 | 48 | |||
84 | 0 | 49 | ||
85 | === modified file 'lib/lp/code/interfaces/branchmergeproposal.py' | |||
86 | --- lib/lp/code/interfaces/branchmergeproposal.py 2009-10-23 00:48:47 +0000 | |||
87 | +++ lib/lp/code/interfaces/branchmergeproposal.py 2009-12-07 02:20:33 +0000 | |||
88 | @@ -7,11 +7,7 @@ | |||
89 | 7 | 7 | ||
90 | 8 | __metaclass__ = type | 8 | __metaclass__ = type |
91 | 9 | __all__ = [ | 9 | __all__ = [ |
92 | 10 | 'BadBranchMergeProposalSearchContext', | ||
93 | 11 | 'BadStateTransition', | ||
94 | 12 | 'BranchMergeProposalExists', | ||
95 | 13 | 'BRANCH_MERGE_PROPOSAL_FINAL_STATES', | 10 | 'BRANCH_MERGE_PROPOSAL_FINAL_STATES', |
96 | 14 | 'InvalidBranchMergeProposal', | ||
97 | 15 | 'IBranchMergeProposal', | 11 | 'IBranchMergeProposal', |
98 | 16 | 'IBranchMergeProposalGetter', | 12 | 'IBranchMergeProposalGetter', |
99 | 17 | 'IBranchMergeProposalJob', | 13 | 'IBranchMergeProposalJob', |
100 | @@ -20,10 +16,9 @@ | |||
101 | 20 | 'ICreateMergeProposalJobSource', | 16 | 'ICreateMergeProposalJobSource', |
102 | 21 | 'IMergeProposalCreatedJob', | 17 | 'IMergeProposalCreatedJob', |
103 | 22 | 'IMergeProposalCreatedJobSource', | 18 | 'IMergeProposalCreatedJobSource', |
104 | 23 | 'UserNotBranchReviewer', | ||
105 | 24 | 'WrongBranchMergeProposal', | ||
106 | 25 | ] | 19 | ] |
107 | 26 | 20 | ||
108 | 21 | |||
109 | 27 | from lazr.lifecycle.event import ObjectModifiedEvent | 22 | from lazr.lifecycle.event import ObjectModifiedEvent |
110 | 28 | from zope.event import notify | 23 | from zope.event import notify |
111 | 29 | from zope.interface import Attribute, Interface | 24 | from zope.interface import Attribute, Interface |
112 | @@ -47,38 +42,6 @@ | |||
113 | 47 | REQUEST_USER) | 42 | REQUEST_USER) |
114 | 48 | 43 | ||
115 | 49 | 44 | ||
116 | 50 | class InvalidBranchMergeProposal(Exception): | ||
117 | 51 | """Raised during the creation of a new branch merge proposal. | ||
118 | 52 | |||
119 | 53 | The text of the exception is the rule violation. | ||
120 | 54 | """ | ||
121 | 55 | |||
122 | 56 | |||
123 | 57 | class BranchMergeProposalExists(InvalidBranchMergeProposal): | ||
124 | 58 | """Raised if there is already a matching BranchMergeProposal.""" | ||
125 | 59 | |||
126 | 60 | |||
127 | 61 | class UserNotBranchReviewer(Exception): | ||
128 | 62 | """The user who attempted to review the merge proposal isn't a reviewer. | ||
129 | 63 | |||
130 | 64 | A specific reviewer may be set on a branch. If a specific reviewer | ||
131 | 65 | isn't set then any user in the team of the owner of the branch is | ||
132 | 66 | considered a reviewer. | ||
133 | 67 | """ | ||
134 | 68 | |||
135 | 69 | |||
136 | 70 | class BadStateTransition(Exception): | ||
137 | 71 | """The user requested a state transition that is not possible.""" | ||
138 | 72 | |||
139 | 73 | |||
140 | 74 | class WrongBranchMergeProposal(Exception): | ||
141 | 75 | """The comment requested is not associated with this merge proposal.""" | ||
142 | 76 | |||
143 | 77 | |||
144 | 78 | class BadBranchMergeProposalSearchContext(Exception): | ||
145 | 79 | """The context is not valid for a branch merge proposal search.""" | ||
146 | 80 | |||
147 | 81 | |||
148 | 82 | BRANCH_MERGE_PROPOSAL_FINAL_STATES = ( | 45 | BRANCH_MERGE_PROPOSAL_FINAL_STATES = ( |
149 | 83 | BranchMergeProposalStatus.REJECTED, | 46 | BranchMergeProposalStatus.REJECTED, |
150 | 84 | BranchMergeProposalStatus.MERGED, | 47 | BranchMergeProposalStatus.MERGED, |
151 | 85 | 48 | ||
152 | === modified file 'lib/lp/code/mail/codehandler.py' | |||
153 | --- lib/lp/code/mail/codehandler.py 2009-10-23 19:33:09 +0000 | |||
154 | +++ lib/lp/code/mail/codehandler.py 2009-12-07 02:20:33 +0000 | |||
155 | @@ -36,10 +36,10 @@ | |||
156 | 36 | from canonical.launchpad.webapp.interfaces import ILaunchBag | 36 | from canonical.launchpad.webapp.interfaces import ILaunchBag |
157 | 37 | from lazr.uri import URI | 37 | from lazr.uri import URI |
158 | 38 | from lp.code.enums import BranchType, CodeReviewVote | 38 | from lp.code.enums import BranchType, CodeReviewVote |
159 | 39 | from lp.code.errors import BranchMergeProposalExists, UserNotBranchReviewer | ||
160 | 39 | from lp.code.interfaces.branchlookup import IBranchLookup | 40 | from lp.code.interfaces.branchlookup import IBranchLookup |
161 | 40 | from lp.code.interfaces.branchmergeproposal import ( | 41 | from lp.code.interfaces.branchmergeproposal import ( |
164 | 41 | BranchMergeProposalExists, IBranchMergeProposalGetter, | 42 | IBranchMergeProposalGetter, ICreateMergeProposalJobSource) |
163 | 42 | ICreateMergeProposalJobSource, UserNotBranchReviewer) | ||
165 | 43 | from lp.code.interfaces.branchnamespace import ( | 43 | from lp.code.interfaces.branchnamespace import ( |
166 | 44 | lookup_branch_namespace, split_unique_name) | 44 | lookup_branch_namespace, split_unique_name) |
167 | 45 | from lp.code.interfaces.branchtarget import check_default_stacked_on | 45 | from lp.code.interfaces.branchtarget import check_default_stacked_on |
168 | 46 | 46 | ||
169 | === modified file 'lib/lp/code/model/branch.py' | |||
170 | --- lib/lp/code/model/branch.py 2009-11-26 22:55:06 +0000 | |||
171 | +++ lib/lp/code/model/branch.py 2009-12-07 02:20:34 +0000 | |||
172 | @@ -47,6 +47,8 @@ | |||
173 | 47 | from lp.code.enums import ( | 47 | from lp.code.enums import ( |
174 | 48 | BranchLifecycleStatus, BranchMergeControlStatus, | 48 | BranchLifecycleStatus, BranchMergeControlStatus, |
175 | 49 | BranchMergeProposalStatus, BranchType) | 49 | BranchMergeProposalStatus, BranchType) |
176 | 50 | from lp.code.errors import ( | ||
177 | 51 | BranchMergeProposalExists, InvalidBranchMergeProposal) | ||
178 | 50 | from lp.code.mail.branch import send_branch_modified_notifications | 52 | from lp.code.mail.branch import send_branch_modified_notifications |
179 | 51 | from lp.code.model.branchmergeproposal import ( | 53 | from lp.code.model.branchmergeproposal import ( |
180 | 52 | BranchMergeProposal, BranchMergeProposalGetter) | 54 | BranchMergeProposal, BranchMergeProposalGetter) |
181 | @@ -63,8 +65,7 @@ | |||
182 | 63 | from lp.code.interfaces.branchcollection import IAllBranches | 65 | from lp.code.interfaces.branchcollection import IAllBranches |
183 | 64 | from lp.code.interfaces.branchlookup import IBranchLookup | 66 | from lp.code.interfaces.branchlookup import IBranchLookup |
184 | 65 | from lp.code.interfaces.branchmergeproposal import ( | 67 | from lp.code.interfaces.branchmergeproposal import ( |
187 | 66 | BRANCH_MERGE_PROPOSAL_FINAL_STATES, BranchMergeProposalExists, | 68 | BRANCH_MERGE_PROPOSAL_FINAL_STATES) |
186 | 67 | InvalidBranchMergeProposal) | ||
188 | 68 | from lp.code.interfaces.branchnamespace import IBranchNamespacePolicy | 69 | from lp.code.interfaces.branchnamespace import IBranchNamespacePolicy |
189 | 69 | from lp.code.interfaces.branchpuller import IBranchPuller | 70 | from lp.code.interfaces.branchpuller import IBranchPuller |
190 | 70 | from lp.code.interfaces.branchtarget import IBranchTarget | 71 | from lp.code.interfaces.branchtarget import IBranchTarget |
191 | 71 | 72 | ||
192 | === modified file 'lib/lp/code/model/branchmergeproposal.py' | |||
193 | --- lib/lp/code/model/branchmergeproposal.py 2009-12-07 02:20:32 +0000 | |||
194 | +++ lib/lp/code/model/branchmergeproposal.py 2009-12-07 02:20:34 +0000 | |||
195 | @@ -30,6 +30,9 @@ | |||
196 | 30 | from canonical.database.sqlbase import quote, SQLBase, sqlvalues | 30 | from canonical.database.sqlbase import quote, SQLBase, sqlvalues |
197 | 31 | 31 | ||
198 | 32 | from lp.code.enums import BranchMergeProposalStatus, CodeReviewVote | 32 | from lp.code.enums import BranchMergeProposalStatus, CodeReviewVote |
199 | 33 | from lp.code.errors import ( | ||
200 | 34 | BadBranchMergeProposalSearchContext, BadStateTransition, | ||
201 | 35 | UserNotBranchReviewer, WrongBranchMergeProposal) | ||
202 | 33 | from lp.code.model.branchrevision import BranchRevision | 36 | from lp.code.model.branchrevision import BranchRevision |
203 | 34 | from lp.code.model.codereviewcomment import CodeReviewComment | 37 | from lp.code.model.codereviewcomment import CodeReviewComment |
204 | 35 | from lp.code.model.codereviewvote import ( | 38 | from lp.code.model.codereviewvote import ( |
205 | @@ -42,10 +45,8 @@ | |||
206 | 42 | from lp.code.interfaces.branch import IBranchNavigationMenu | 45 | from lp.code.interfaces.branch import IBranchNavigationMenu |
207 | 43 | from lp.code.interfaces.branchcollection import IAllBranches | 46 | from lp.code.interfaces.branchcollection import IAllBranches |
208 | 44 | from lp.code.interfaces.branchmergeproposal import ( | 47 | from lp.code.interfaces.branchmergeproposal import ( |
209 | 45 | BadBranchMergeProposalSearchContext, BadStateTransition, | ||
210 | 46 | BRANCH_MERGE_PROPOSAL_FINAL_STATES as FINAL_STATES, | 48 | BRANCH_MERGE_PROPOSAL_FINAL_STATES as FINAL_STATES, |
213 | 47 | IBranchMergeProposal, IBranchMergeProposalGetter, UserNotBranchReviewer, | 49 | IBranchMergeProposal, IBranchMergeProposalGetter) |
212 | 48 | WrongBranchMergeProposal) | ||
214 | 49 | from lp.code.interfaces.branchtarget import IHasBranchTarget | 50 | from lp.code.interfaces.branchtarget import IHasBranchTarget |
215 | 50 | from lp.registry.interfaces.person import IPerson | 51 | from lp.registry.interfaces.person import IPerson |
216 | 51 | from lp.registry.interfaces.product import IProduct | 52 | from lp.registry.interfaces.product import IProduct |
217 | 52 | 53 | ||
218 | === modified file 'lib/lp/code/model/tests/test_branch.py' | |||
219 | --- lib/lp/code/model/tests/test_branch.py 2009-11-25 23:24:58 +0000 | |||
220 | +++ lib/lp/code/model/tests/test_branch.py 2009-12-07 02:20:34 +0000 | |||
221 | @@ -37,6 +37,7 @@ | |||
222 | 37 | from lp.code.enums import ( | 37 | from lp.code.enums import ( |
223 | 38 | BranchLifecycleStatus, BranchSubscriptionNotificationLevel, BranchType, | 38 | BranchLifecycleStatus, BranchSubscriptionNotificationLevel, BranchType, |
224 | 39 | BranchVisibilityRule, CodeReviewNotificationLevel) | 39 | BranchVisibilityRule, CodeReviewNotificationLevel) |
225 | 40 | from lp.code.errors import InvalidBranchMergeProposal | ||
226 | 40 | from lp.code.interfaces.branch import ( | 41 | from lp.code.interfaces.branch import ( |
227 | 41 | BranchCannotBePrivate, BranchCannotBePublic, | 42 | BranchCannotBePrivate, BranchCannotBePublic, |
228 | 42 | BranchCreatorNotMemberOfOwnerTeam, BranchCreatorNotOwner, | 43 | BranchCreatorNotMemberOfOwnerTeam, BranchCreatorNotOwner, |
229 | @@ -45,8 +46,7 @@ | |||
230 | 45 | from lp.code.interfaces.branchlookup import IBranchLookup | 46 | from lp.code.interfaces.branchlookup import IBranchLookup |
231 | 46 | from lp.code.interfaces.branchnamespace import IBranchNamespaceSet | 47 | from lp.code.interfaces.branchnamespace import IBranchNamespaceSet |
232 | 47 | from lp.code.interfaces.branchmergeproposal import ( | 48 | from lp.code.interfaces.branchmergeproposal import ( |
235 | 48 | BRANCH_MERGE_PROPOSAL_FINAL_STATES as FINAL_STATES, | 49 | BRANCH_MERGE_PROPOSAL_FINAL_STATES as FINAL_STATES) |
234 | 49 | InvalidBranchMergeProposal) | ||
236 | 50 | from lp.code.interfaces.linkedbranch import ICanHasLinkedBranch | 50 | from lp.code.interfaces.linkedbranch import ICanHasLinkedBranch |
237 | 51 | from lp.code.interfaces.seriessourcepackagebranch import ( | 51 | from lp.code.interfaces.seriessourcepackagebranch import ( |
238 | 52 | IFindOfficialBranchLinks) | 52 | IFindOfficialBranchLinks) |
239 | 53 | 53 | ||
240 | === modified file 'lib/lp/code/model/tests/test_branchmergeproposals.py' | |||
241 | --- lib/lp/code/model/tests/test_branchmergeproposals.py 2009-12-07 02:20:32 +0000 | |||
242 | +++ lib/lp/code/model/tests/test_branchmergeproposals.py 2009-12-07 02:20:34 +0000 | |||
243 | @@ -26,6 +26,8 @@ | |||
244 | 26 | from canonical.launchpad.interfaces import IPrivacy | 26 | from canonical.launchpad.interfaces import IPrivacy |
245 | 27 | from canonical.launchpad.interfaces.message import IMessageJob | 27 | from canonical.launchpad.interfaces.message import IMessageJob |
246 | 28 | from canonical.launchpad.webapp.testing import verifyObject | 28 | from canonical.launchpad.webapp.testing import verifyObject |
247 | 29 | from lp.code.errors import ( | ||
248 | 30 | BadStateTransition, WrongBranchMergeProposal) | ||
249 | 29 | from lp.code.event.branchmergeproposal import ( | 31 | from lp.code.event.branchmergeproposal import ( |
250 | 30 | NewBranchMergeProposalEvent, NewCodeReviewCommentEvent, | 32 | NewBranchMergeProposalEvent, NewCodeReviewCommentEvent, |
251 | 31 | ReviewerNominatedEvent) | 33 | ReviewerNominatedEvent) |
252 | @@ -36,11 +38,10 @@ | |||
253 | 36 | BranchType, CodeReviewNotificationLevel, CodeReviewVote, | 38 | BranchType, CodeReviewNotificationLevel, CodeReviewVote, |
254 | 37 | BranchVisibilityRule) | 39 | BranchVisibilityRule) |
255 | 38 | from lp.code.interfaces.branchmergeproposal import ( | 40 | from lp.code.interfaces.branchmergeproposal import ( |
256 | 39 | BadStateTransition, | ||
257 | 40 | BRANCH_MERGE_PROPOSAL_FINAL_STATES as FINAL_STATES, | 41 | BRANCH_MERGE_PROPOSAL_FINAL_STATES as FINAL_STATES, |
258 | 41 | IBranchMergeProposal, IBranchMergeProposalGetter, IBranchMergeProposalJob, | 42 | IBranchMergeProposal, IBranchMergeProposalGetter, IBranchMergeProposalJob, |
259 | 42 | ICreateMergeProposalJob, ICreateMergeProposalJobSource, | 43 | ICreateMergeProposalJob, ICreateMergeProposalJobSource, |
261 | 43 | IMergeProposalCreatedJob, notify_modified, WrongBranchMergeProposal) | 44 | IMergeProposalCreatedJob, notify_modified) |
262 | 44 | from lp.code.model.branchmergeproposaljob import ( | 45 | from lp.code.model.branchmergeproposaljob import ( |
263 | 45 | BranchMergeProposalJob, BranchMergeProposalJobType, | 46 | BranchMergeProposalJob, BranchMergeProposalJobType, |
264 | 46 | CreateMergeProposalJob, MergeProposalCreatedJob, UpdatePreviewDiffJob) | 47 | CreateMergeProposalJob, MergeProposalCreatedJob, UpdatePreviewDiffJob) |
Cherry picked the new errors file out.