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 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.4.x
#10023 Trac notification + Exchange 2010 normal new enhancement unscheduled
#10112 notifications strip slashes from email addresses normal new defect next-stable-1.4.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.4.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.4.x
#12997 Sending email on ticket attachments with "Replace existing attachment of the same name" normal new defect next-stable-1.4.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
#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


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

Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.