Edgewall Software

Changes between Initial Version and Version 1 of TracDev/Proposals/AdvancedNotification


Ignore:
Timestamp:
Nov 17, 2012, 5:11:26 PM (12 years ago)
Author:
Peter Suter
Comment:

New proposal for advanced notification enhancements

Legend:

Unmodified
Added
Removed
Modified
  • TracDev/Proposals/AdvancedNotification

    v1 v1  
     1[[PageOutline(2-3)]]
     2= Advanced Notification enhancements
     3
     4== Context
     5
     6The TracNotification system has not kept up with the requirements users, administrators and developers have. The th:AnnouncerPlugin was developed to provide a more flexible notification system.
     7
     8An alternative [wiki:Announcer proposal] to replace the !TracNotification system with the !AnnouncerPlugin has existed for some years.
     9
     10== Proposal
     11
     12Improve the !TracNotification system by:
     13* Deprecating the inflexible `Notify` class hierarchy.
     14* Adding new infrastructure (based on !AnnouncerPlugin's proven design where appropriate) on a topic-by-topic basis.
     15* Adopting some general advanced features.
     16* Enabling plugins to provide more experimental or very specific features.
     17
     18=== Coexistence with Announcer
     19
     20This proposal would not integrate or replace Announcer as a whole. Future versions of Announcer would ideally be compatible with new !TracNotification system and rebase additional non-core features on the new core infrastructure.
     21
     22Future versions of announcer could also provide upgrade paths from older versions of the plugin to the new core infrastructure.
     23
     24DB tables, configuration sections and extensions points adopted in core from Announcer may best be renamed to avoid confusion and upgrade troubles (especially when slightly modified).
     25
     26== Topics
     27
     28=== Extension API for (mail) distribution
     29* Related tickets: #3517
     30* New extension points:
     31 * `INotificationDistributor`: Different notification distribution channels (e.g. XMPP)
     32 * `INotificationFormatter`: Customized notification message formatting
     33 * `IEmailAddressResolver`: What email address should be used?
     34 * `IEmailDecorator`: Separates email header logic from message formatting
     35
     36=== Extension API for subscriptions
     37* Related tickets: #4056, #2247
     38* New extension points:
     39 * `INotificationSubscriber`: Who subscribes to this message?
     40* New database table:
     41 * `NotificationSubscription`: Stores subscription preferences
     42
     43=== Modular preference pages
     44* Notification preferences should be on shared pages, but implemented by different plugins.
     45* Related tickets: -
     46
     47=== Advanced ticket subscriptions
     48* Related tickets: #4519
     49
     50=== Permission filters
     51* Related tickets: comment:4:ticket:5670
     52
     53=== HTML emails
     54* Related tickets: #2625
     55
     56=== Wiki notifications
     57* Related tickets: #1660
     58
     59=== Attachment notifications
     60* Related tickets: #2259, #6069
     61
     62=== Watchable resources
     63* Related tickets: #6217
     64
     65=== Background delivery thread
     66* Related tickets: #3220
     67
     68=== SMTP-over-SSL
     69* Related tickets: #4931
     70
     71=== Cryptography
     72* Related tickets: #8294