Gmail filtering improvements
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
High
|
Colin Watson |
Bug Description
Surprisingly, there's no open bug which really covers this, despite the fact that it's been an ongoing complaint for years. Since I'm working on it, let's have a tracking bug.
Filtering Launchpad mail using Gmail is hard, because Gmail doesn't support filtering on arbitrary headers. This is a very annoying misbehaviour in a mail user agent, IMO, but there's little obvious likelihood of it being fixed, so we need to work around it. At the same time, we don't want to annoy people using other mail user agents or clutter our ongoing mail too much, and we should also minimise the extent to which evidence of the affordances we add ends up being quoted in replies to outgoing Launchpad mail. https:/
The most graceful approach I can think of, and I've tested that this kind of mail can be filtered reasonably using Gmail, is to add a new PersonSettings column that includes additional information in outgoing mail footers, after the "-- " line. Gmail hides this away by default so that you don't have to read it, but you can filter on it. We can modify BaseMailer to take all X-Launchpad-* headers and turn them into "Launchpad-
The amount of central infrastructure work required for this is very small, and it requires no duplicated code in individual bits of the application that send notifications: I think both of these are required properties of any solution to this problem. However, BaseMailer is only used by a few things right now (branches, merge proposals, recipe builds, live file system builds); so as part of this we'll need to refactor at least the most important notifiers to use it.
Related branches
- William Grant (community): Approve (db)
-
Diff: 14 lines (+10/-0)1 file modifieddatabase/schema/patch-2209-68-0.sql (+10/-0)
- William Grant (community): Approve (code)
-
Diff: 358 lines (+152/-11)10 files modifieddatabase/schema/security.cfg (+1/-0)
lib/lp/registry/browser/person.py (+2/-1)
lib/lp/registry/interfaces/person.py (+8/-0)
lib/lp/registry/model/person.py (+4/-4)
lib/lp/registry/stories/person/xx-person-edit.txt (+12/-2)
lib/lp/registry/tests/test_person.py (+5/-0)
lib/lp/scripts/garbo.py (+28/-1)
lib/lp/scripts/tests/test_garbo.py (+45/-0)
lib/lp/services/mail/basemailer.py (+17/-2)
lib/lp/services/mail/tests/test_basemailer.py (+30/-1)
- William Grant (community): Approve (code)
-
Diff: 301 lines (+77/-41)5 files modifiedlib/lp/bugs/doc/bugnotification-email.txt (+7/-7)
lib/lp/bugs/mail/bugnotificationbuilder.py (+36/-18)
lib/lp/bugs/mail/tests/test_bugnotificationbuilder.py (+24/-5)
lib/lp/bugs/scripts/bugnotification.py (+2/-3)
lib/lp/bugs/subscribers/bug.py (+8/-8)
tags: |
added: qa-ok removed: qa-needstesting |
tags: |
added: qa-ok removed: qa-needstesting |
no longer affects: | ubuntu |
Fixed in db-stable r13145 <http:// bazaar. launchpad. net/~launchpad- pqm/launchpad/ db-stable/ revision/ 13145>.