Edgewall Software

Superseded by AdvancedNotification proposal.

Trac Announcer System Proposal

Proposal to replace the Trac Notification System with the AnnouncerPlugin.

The Context

WIP

Requirements

(to doki_pen: feel free to move that section elsewhere in the page or into another page if you prefer)

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

Mail Distributor Formats and Sends Email

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 next-major-releases
#2245 Enable trac-admin to configure "user settings" (e.g. e-mail address) normal new enhancement next-major-releases
#2247 [PATCH] Option to prevent notification to self normal assigned enhancement 1.0.3
#2625 Add option to send HTML mail messages normal new enhancement next-major-releases
#3054 Include attached files with added attachment e-mail notifications for tickets. normal reopened enhancement unscheduled
#3162 LDAP support for e-mail notification normal assigned enhancement next-major-releases
#3914 ticket change notification should contain diff'ed text, not old and new normal new enhancement next-major-releases
#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-major-releases
#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
#6069 No notification email when adding an attachment to a wiki normal new enhancement next-major-releases
#6173 Allow accounts to be disabled, such that they no longer receive email notifications normal reopened enhancement next-major-releases
#6219 Excessive time taken by notification can lead to db timeout? normal new defect next-major-releases
#6516 [PATCH] Including content of ticket fields in outgoing notification email headers normal reopened enhancement next-major-releases
#6613 TracNotification for new tickets only normal new enhancement next-major-releases
#6789 Being able to set email address of the ticket owner as the "reply to:" field normal new enhancement unscheduled
#7073 notify dup subscribers normal new enhancement next-major-releases
#7758 Cannot turn off ticket notifcation system via [components] section normal new defect next-major-releases
#7782 reporter sent notification on ticket creation when always_notify_reporter = false normal new defect next-major-releases
#7793 [PATCH] Mail notifications for a ticket with multiple owners / reporters normal new enhancement next-major-releases
#8094 reporter must also add CC: normal new defect next-major-releases
#8239 TicketNotificationSystem assigns reserved SQL keyword 'new' to ticket attributes. normal new defect next-stable-1.0.x
#8294 [PATCH] Add GnuPG encryption to email notifications normal new enhancement unscheduled
#8395 restriction of contents of notifications (both, subject and body) 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 assigned enhancement next-major-releases
#9007 Ticket notification email 'empty' when only CC field changed normal new defect next-stable-1.0.x
#9082 Error sending email when smtp_default_domain and/or smtp_from contain unicode normal assigned defect unscheduled
#9085 Notification system silently drops failures to unicode email addresses normal new enhancement next-major-releases
#9148 Add explicit always_notify and always_notify_bcc options to ticket system. normal new enhancement unscheduled
#9971 cannot unsubscribe from bug, no way, no how normal reopened defect next-minor-0.12.x
#10023 Trac notification + Exchange 2010 normal new enhancement unscheduled
#10112 notifications strip slashes from email addresses normal new defect next-stable-1.0.x
#10143 Customizing of transmission rule of notification e-mail normal new enhancement unscheduled
#10450 Do not linewrap long URLs in text emails normal new defect undecided
#10542 Email notification is sending only to CC normal new defect next-stable-1.0.x
#10574 add "statistical data update" as new ticket event type to already existing event type "comment" normal new enhancement undecided
#10578 Use updater's email in ticket notification ReplyTo normal new enhancement next-major-releases
#10579 Do not use "anonymous" updater's email in ticket notification From normal new enhancement next-major-releases
#10909 Allow to disable "Edit own comments" to limit Spam in large public trac normal new defect next-stable-1.0.x
#11271 Batch modify notification emails could present a better description of the property change normal new enhancement next-stable-1.0.x
#11533 Users removed in batch modification are not notified normal assigned defect 1.0.3
#11535 Option to disable notifications on batch modify normal assigned enhancement 1.0.3
#11577 Status is omitted in plain text emails normal new defect undecided
#11758 Option to send ticket emails based on ticket severity normal new enhancement undecided
#11870 Optional notification subscribers for watching components, users, groups, individual resources, ... normal assigned enhancement 1.1.3
#11871 Notification subscriber for @name mentions normal new enhancement 1.1.3
#11875 Notification subscriber config section normal assigned enhancement 1.1.3
#11884 Notification distributor for XMPP normal assigned enhancement next-dev-1.1.x
#11887 List Ticket Attachments in TracNotification normal new enhancement
#11889 On-site notifications normal new enhancement next-major-releases
#2073 flexible ticket notification rules low new enhancement unscheduled
#2619 Message-IDs generation should be a little more randomized low reopened defect unscheduled
#2642 Ticket view should optionally reflect smtp_always_cc value for better transparency low new enhancement unscheduled
#6078 [PATCH] Enabling multiple email notification for a single user. low reopened enhancement unscheduled
#6107 to "watch" a milestone low new enhancement next-major-releases
#7499 Notification mail header "Precedence" should be configurable low new defect next-major-releases
#11002 No To: headers 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

  1. 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.
  2. have defaults for each registered user
  3. apply different defaults depending on formal involvement (related component owner, reporter, etc.)
  1. unchanged - unresolved, discussion needed (too complicated to be useful?)
  2. changed - partially solved, since a bunch of user perferences already exists
  3. changed - partially solved, since action depending on involvement already exists

ref: alternative/refinement of #4056

#9484

0.13

  1. improve current email formatting for long custom text_area names

ref: fits nicely with #3914

  1. unknown - probably solved, need to check

normal

#731

unscheduled

  1. sent commit notification
  1. unknown - probably unresolved, need to check

ref: IRepositoryChangeListener available as notification trigger (since inclusion of mutirepos branch)

#1660

next-major-0.1X

  1. wiki notification
  1. changed - solved, especially in combination with WatchListPlugin

ref: new notification system discussion at Trac-Dev

#2245

next-major-0.1X

  1. make user settings (email-address) editable by admins
  1. unchanged - unresolved, discussion needed (already resolved by th:wiki:TracUserSyncPlugin TracUserSyncPlugin??)

#2311

next-major-0.1X

  1. sent notification on owner change (to old owner)

hint: inconsitency, since removal from cc-field triggers notification to removed address/user

  1. unknown - probably unresolved, need to check

#2625

next-major-0.1X

  1. rich format (i.e. HTML) wiki notification
  1. 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

Last modified 2 weeks ago Last modified on Dec 6, 2014 1:36:17 PM

Attachments (6)

Download all attachments as: .zip