Trac Announcer System Proposal
The Context
This is a proposal to replace the Trac Notification System with the AnnouncerPlugin.
Requirements
Trac Notification API compatibility
This will be needed to not instantly break 30+ Trac plugins using TracNotification system right now (see: plugin listing for details). So after analyzing the current implementation of Trac Notification Api we have to decide on witch classes have to be added to Announcer code to fully replace TracNotification.
i18n requirements
One of the shortcomings of the current e-mail notification system is that there's only one e-mail prepared which is then sent to every receiver. It should be possible to customize the mail according to each user's preferences (e.g. #2625) and a nice customization would be to translate the notification mail to each recipient's preferred language (#8903).
I'd be particularly interested to see how the Formatter / Distributor concepts of the Announcer would deal with that requirement.
Subscription logic
The current system is at the same time too complex with many .ini settings, and too inflexible. Not to mention the bugs ;-)
Some kind of drastic change seems in order. For example, see the suggestion of a Subscribe ticket (notify me when the ticket is changed checkbox / link (ticket:4056#comment:19).
Announcer System
Sequence Diagrams
User Edits Ticket
Event is Dispatched to the Mail Distributor
Proposed Announcer Preferences
Consider Notification Tickets
Ticket
|
Summary
|
Priority
|
Status
|
Type
|
Milestone
|
#6217 |
New notification/cc scheme - notification preferences per ticket
|
high
|
new
|
enhancement
|
unscheduled
|
#731 |
Allow Trac to send commit information email when the " sync "with the repository
|
normal
|
new
|
enhancement
|
unscheduled
|
#1660 |
Patch to get email notification (with diff) of wiki changes
|
normal
|
new
|
enhancement
|
1.7.1
|
#2625 |
Add option to send HTML mail messages
|
normal
|
new
|
enhancement
|
next-major-releases
|
#3162 |
LDAP support for e-mail notification
|
normal
|
new
|
enhancement
|
next-major-releases
|
#3914 |
ticket change notification should contain diff'ed text, not old and new
|
normal
|
new
|
enhancement
|
next-dev-1.7.x
|
#4270 |
Ticket notification emails contain wiki formatting
|
normal
|
new
|
defect
|
next-major-releases
|
#4286 |
Accepts email addresses without validation
|
normal
|
new
|
defect
|
next-major-releases
|
#4519 |
[PATCH] Feature: component owner ticket notification
|
normal
|
new
|
enhancement
|
next-dev-1.7.x
|
#4931 |
notification with SMTP through SSL is not supported (fix included)
|
normal
|
new
|
defect
|
next-major-releases
|
#5001 |
offer possibility to inform users of new releases and changes
|
normal
|
new
|
enhancement
|
next-major-releases
|
#5670 |
[patch] Refactoring of general `NotifyEmail` class to make it easier to subclass
|
normal
|
new
|
enhancement
|
next-major-releases
|
#6173 |
Allow accounts to be disabled, such that they no longer receive email notifications
|
normal
|
new
|
enhancement
|
next-major-releases
|
#6219 |
Excessive time taken by notification can lead to db timeout?
|
normal
|
new
|
defect
|
next-major-releases
|
#7073 |
notify dup subscribers
|
normal
|
new
|
enhancement
|
next-major-releases
|
#7793 |
[PATCH] Mail notifications for a ticket with multiple owners / reporters
|
normal
|
new
|
enhancement
|
next-major-releases
|
#8094 |
Preview who will be notified
|
normal
|
new
|
defect
|
next-major-releases
|
#8294 |
[PATCH] Add GnuPG encryption to email notifications
|
normal
|
new
|
enhancement
|
unscheduled
|
#8599 |
possibility to send complete tickets per mail (full history and attachments included)
|
normal
|
new
|
enhancement
|
unscheduled
|
#8607 |
Option to skip notification to subscribers when a ticket is updated
|
normal
|
new
|
enhancement
|
next-major-releases
|
#8945 |
[PATCH] Send Notification Email with local timezone
|
normal
|
new
|
enhancement
|
next-major-releases
|
#9082 |
Error sending email when smtp_default_domain and/or smtp_from contain unicode
|
normal
|
new
|
defect
|
unscheduled
|
#9085 |
Notification system silently drops failures to unicode email addresses
|
normal
|
new
|
enhancement
|
next-major-releases
|
#9971 |
cannot unsubscribe from bug, no way, no how
|
normal
|
new
|
defect
|
next-stable-1.6.x
|
#10023 |
Trac notification + Exchange 2010
|
normal
|
new
|
enhancement
|
unscheduled
|
#10112 |
notifications strip slashes from email addresses
|
normal
|
new
|
defect
|
next-stable-1.6.x
|
#10450 |
Do not linewrap long URLs in text emails
|
normal
|
new
|
defect
|
undecided
|
#10579 |
Do not use "anonymous" updater's email in ticket notification From
|
normal
|
new
|
enhancement
|
next-major-releases
|
#11271 |
Batch modify notification emails could present a better description of the property change
|
normal
|
new
|
defect
|
next-stable-1.6.x
|
#11577 |
Status is omitted in plain text emails
|
normal
|
new
|
defect
|
undecided
|
#11870 |
Optional notification subscribers for watching components, users, groups, individual resources, ...
|
normal
|
new
|
enhancement
|
next-dev-1.7.x
|
#11871 |
Notification subscriber for @name mentions
|
normal
|
new
|
enhancement
|
next-dev-1.7.x
|
#11884 |
Notification distributor for XMPP
|
normal
|
new
|
enhancement
|
next-major-releases
|
#11887 |
List Ticket Attachments in TracNotification
|
normal
|
new
|
enhancement
|
next-major-releases
|
#11889 |
On-site notifications
|
normal
|
new
|
enhancement
|
next-major-releases
|
#11943 |
Ticket delete notifications
|
normal
|
new
|
enhancement
|
next-major-releases
|
#12165 |
List users included and excluded from notification
|
normal
|
new
|
enhancement
|
next-major-releases
|
#12575 |
Please improve documentation at TracNotification#Customizingthee-mailcontent
|
normal
|
new
|
enhancement
|
next-stable-1.6.x
|
#12997 |
Sending email on ticket attachments with "Replace existing attachment of the same name"
|
normal
|
new
|
defect
|
next-stable-1.6.x
|
#13208 |
Add methods or property that formats default value for NotificationSystem.smtp_subject_prefix
|
normal
|
new
|
enhancement
|
next-dev-1.7.x
|
#13283 |
Per-realm always_{cc, bcc} options
|
normal
|
new
|
enhancement
|
next-dev-1.7.x
|
#13499 |
Trac Email Notifcations Poorly formatted due to line wrap of quoted text
|
normal
|
new
|
enhancement
|
undecided
|
#13769 |
In-Reply-To and References headers created when event.category is not 'created' but unuseful
|
normal
|
new
|
defect
|
next-stable-1.6.x
|
#13791 |
Notification mail is unavailable for name/usrname@example.org in user's preferences, ticket cc, smtp_always_cc, etc...
|
normal
|
new
|
defect
|
1.6.1
|
#2619 |
Message-IDs generation should be a little more randomized
|
low
|
new
|
defect
|
unscheduled
|
#6078 |
[PATCH] Enabling multiple email notification for a single user.
|
low
|
new
|
enhancement
|
unscheduled
|
#6107 |
to "watch" a milestone
|
low
|
new
|
enhancement
|
next-major-releases
|
#12774 |
Separator line is shown twice
|
lowest
|
new
|
defect
|
next-major-releases
|
Discussion
If Announcer would substitute TracNotification, following tickets would be
Summary
based on 57 results from 04-Aug-2010, ordered by priority
ticket no.
|
milestone
|
aims/notes/references
|
effect of migration
|
---|
high
|
#6217
|
unscheduled
| - allow for notification settings per ticket and do really fine grained options, like do/not notify on new comment, change of ticket prop|owner|status, etc.
- have defaults for each registered user
- apply different defaults depending on formal involvement (related component owner, reporter, etc.)
| - unchanged - unresolved, discussion needed (too complicated to be useful?)
- changed - partially solved, since a bunch of user perferences already exists
- changed - partially solved, since action depending on involvement already exists
ref: alternative/refinement of #4056
|
#9484
|
0.13
| - improve current email formatting for long custom text_area names
ref: fits nicely with #3914
| - unknown - probably solved, need to check
|
normal
|
#731
|
unscheduled
| - sent commit notification
| - unknown - probably unresolved, need to check
ref: IRepositoryChangeListener available as notification trigger (since inclusion of mutirepos branch)
|
#1660
|
next-major-0.1X
| - wiki notification
| - changed - solved, especially in combination with WatchListPlugin
ref: new notification system discussion at Trac-Dev
|
#2245
|
next-major-0.1X
| - make user settings (email-address) editable by admins
| - unchanged - unresolved, discussion needed (already resolved by th:wiki:TracUserSyncPlugin TracUserSyncPlugin?)
|
#2311
|
next-major-0.1X
| - sent notification on owner change (to old owner)
hint: inconsitency, since removal from cc-field triggers notification to removed address/user
| - unknown - probably unresolved, need to check
|
#2625
|
next-major-0.1X
| - rich format (i.e. HTML) wiki notification
| - unchanged - unresolved, only 'text/plain' in current Announcer
hint: links to references on good HTML email design standards, discussion on Trac-Users, hint on Announcer and more
|
Summary of worth-to-be-propagated requests
- extend user pref: enhance filter/subscription - #4056
See also: TracNotification, TracDev/Proposals, TracNotification API documentation, Developer reference page for AnnouncerPlugin, related tickets: No results, and Trac Notifications mail on Trac-dev