= Trac Announcer System Proposal = ''Proposal to replace the [wiki:0.12/TracNotification Trac Notification System] with the [th: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 === #trac-api-compat This will be needed to not instantly break 30+ Trac plugins using TracNotification system right now (see: [wiki:TracDev/NotificationApi#Relatedinformation plugin listing] for details). So after analyzing the current implementation of [wiki:TracDev/NotificationApi Trac Notification Api] we have to decide on witch classes have to be added to Announcer code to fully replace TracNotification. === i18n requirements === #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 ==== [[Image(layer1-umlsd.png)]] ==== Event is Dispatched to the Mail Distributor ==== [[Image(layer2-umlsd.png)]] ==== Mail Distributor Formats and Sends Email ==== [[Image(layer3-umlsd.png)]] === Proposed Announcer Preferences === [[Image(prefs0.png)]] == Consider Notification Tickets == [[TicketQuery(status!=closed&component=notification&col=id&col=summary|priority|status|type|milestone,order=priority,format=table)]] === Discussion === If Announcer would substitute TracNotification, following tickets would be * solved * (reason: existing feature): #1660, #2625. #3517 * (reason: feature as WiP): #8294 * (reason: supporting this proposal): #7758 * changed * (largely solved): #4056 * (partially resolved): * propagated: * subject to further discussion: ==== Summary of propagated requests ==== * extend user pref: enhance filter/subscription - #4056 ---- See also: TracNotification, TracDev/Proposals, [wiki:TracDev/NotificationApi TracNotification API documentation], [wiki:TracDev/Announcer Developer reference page for AnnouncerPlugin], related tickets: [[TicketQuery(status=!closed&keywords=~announcer,format=compact)]], and [googlegroups:trac-dev:535b9ad2dd6e2882 Trac Notifications ] mail on Trac-dev