Merge lp:~jtv/launchpad/bug-876594 into lp:launchpad
| Status: | Merged |
|---|---|
| Merged at revision: | 14645 |
| Proposed branch: | lp:~jtv/launchpad/bug-876594 |
| Merge into: | lp:launchpad |
| Diff against target: |
279 lines (+208/-16) 4 files modified
lib/lp/archiveuploader/nascentupload.py (+5/-5) lib/lp/archiveuploader/tests/test_sync_notification.py (+178/-0) lib/lp/soyuz/model/archive.py (+2/-6) lib/lp/soyuz/model/queue.py (+23/-5) |
| To merge this branch: | bzr merge lp:~jtv/launchpad/bug-876594 |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| j.c.sackett (community) | 2012-01-05 | Approve on 2012-01-05 | |
|
Review via email:
|
|||
Commit Message
Notify sync requester, not maintainer, of upload failures from synced packages for a distro.
Description of the Change
= Summary =
We're spamming Debian maintainers with failure notifications from builds of their packages as copied to Ubuntu (or derived distros).
== Proposed fix ==
Spam the person who requested the sync instead.
== Pre-implementation notes ==
Discussed with Colin, Julian, and William. There may be opportunities to simplify other notification logic in the future, in particular where it suppresses inappropriate notifications for PPAs.
Apparently a build upload has no signing key; we're not entirely sure right now whose signing key is on the upload. We kept the existing logic for non-copied uploads.
== Implementation details ==
See the bug for call trees.
I didn't want to mess with the notify() function underlying Upload.notify(); it's got weird special cases and is used in too many code paths and data flows. It seems to be picking the wrong default victim in cases where there is no signing key.
== Tests ==
I added a new one. Giving it a file of itself allowed me to introduce lots of helpers.
{{{
./bin/test -vvc lp.archiveuploa
}}}
== Demo and Q/A ==
We'll need help from the Soyuz specialists for this.
= Launchpad lint =
There's one piece of pre-existing lint that I dared not touch. Something about a getter and setter with the same name confusing the linter, I think.
Checking for conflicts and issues in changed files.
Linting changed files:
lib/lp/
lib/lp/
lib/lp/
lib/lp/
./lib/lp/
348: redefinition of function 'private' from line 344

Jeroen--
Looks good. That is some serious setup in the testcase, but I've never found a nice simple way to setup a soyuz based test.