Edgewall Software

Trac Announcer System Proposal

Notice: This proposal is superseded by the AdvancedNotification proposal.

The Context

This is a proposal to replace the Trac Notification System with the AnnouncerPlugin.


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
#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 new enhancement unscheduled
#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-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-dev-1.3.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
#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 new 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 new 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
#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.2.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 new enhancement next-major-releases
#9007 Ticket notification email 'empty' when only CC field changed normal new defect next-stable-1.2.x
#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
#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 new defect next-stable-1.2.x
#10023 Trac notification + Exchange 2010 normal new enhancement unscheduled
#10112 notifications strip slashes from email addresses normal new defect next-stable-1.2.x
#10143 Customizing of transmission rule of notification e-mail normal new enhancement unscheduled
#10326 send ticket email notification for some users on change of certain ticket fields, only 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.2.x
#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.2.x
#11271 Batch modify notification emails could present a better description of the property change normal new defect next-stable-1.2.x
#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 new enhancement next-dev-1.3.x
#11871 Notification subscriber for @name mentions normal new enhancement next-dev-1.3.x
#11884 Notification distributor for XMPP normal new enhancement next-dev-1.3.x
#11887 List Ticket Attachments in TracNotification normal new enhancement next-major-releases
#11889 On-site notifications normal new enhancement next-major-releases
#11928 Format cannot be saved in notifications of preferences normal new defect next-major-releases
#11943 Ticket delete notifications normal new enhancement next-major-releases
#12036 AlwaysEmailSubscriber cannot be configured using [notification-subscribers] section normal new defect next-stable-1.2.x
#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.2.x
#2619 Message-IDs generation should be a little more randomized low new 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 new 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


If Announcer would substitute TracNotification, following tickets would be


based on 57 results from 04-Aug-2010, ordered by priority

ticket no.



effect of migration




  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



  1. improve current email formatting for long custom text_area names

ref: fits nicely with #3914

  1. unknown - probably solved, need to check




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

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



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

ref: new notification system discussion at Trac-Dev



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



  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



  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 5 months ago Last modified on Sep 17, 2016, 11:43:36 PM

Attachments (6)

Download all attachments as: .zip