Edgewall Software
Modify

Opened 5 years ago

Last modified 3 months ago

#11884 new enhancement

Notification distributor for XMPP

Reported by: Peter Suter Owned by:
Priority: normal Milestone: next-major-releases
Component: notification Version:
Severity: normal Keywords:
Cc: Branch:
Release Notes:
API Changes:

Description

The new INotificationDistributor interface allows distributing notifications over different transport channels. So far we only have an email distributor. We could also provide XMPP support in tracopt.

Attachments (1)

xmpp-prefs.png (22.7 KB ) - added by Peter Suter 5 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 by Peter Suter, 5 years ago

Announcer's XmppDistributor seems to depend on xmpppy. (Is GPL license a problem for optional dependencies?)

comment:2 by Peter Suter, 5 years ago

log:psuter.hg@T11884-xmpp is based on that.

The XMPP Address preference child panel complements Email Address on the General (alias None) panel.

Still not sure if IEmailAddressResolver should be more general, so SessionEmailResolver is basically inlined into XmppDistributor.get_address_for_session instead.

comment:3 by Jun Omae, 5 years ago

I think we must separate tracopt/notification/xmpp.py to an external plugin with GPL-compatible license, like TracMercurial. Trac doesn't bundle Mercurial plugin because mercurial's license is GPL.

comment:4 by Peter Suter, 5 years ago

Alternatively we could use a different library. SleekXMPP seems to be popular and is MIT licensed. Would bundling be possible in that case?

(Another one is Wokkel, also MIT. Seems inactive at the moment.)

We could also add a IXmppSender (similar to IEmailSender) that just makes that library pluggable. I'm not sure it's worth it. What do you think?

Edit: jQuery for example is also bundled with Trac and MIT licensed, so that seems possible.

Last edited 5 years ago by Peter Suter (previous) (diff)

in reply to:  4 comment:5 by Jun Omae, 5 years ago

Replying to psuter:

Alternatively we could use a different library. SleekXMPP seems to be popular and is MIT licensed. Would bundling be possible in that case?

Yeah. Using SleekXMPP would lead no license problems.

We could also add a IXmppSender (similar to IEmailSender) that just makes that library pluggable. I'm not sure it's worth it. What do you think?

IMO, the interface isn't needed. I'm also not sure about the worth.

comment:6 by Peter Suter, 5 years ago

Owner: set to Peter Suter
Status: newassigned

log:psuter.hg@T11884-xmpp updated to switch to SleekXMPP.

by Peter Suter, 5 years ago

Attachment: xmpp-prefs.png added

comment:7 by Peter Suter, 5 years ago

The trac-admin commands session list, session add and session set implemented by SessionAdmin also handle session email addresses. I'm not sure if / how XMPP addresses could or should be handled. I guess a separate set of commands (e.g. session xmpp set etc.) could be implemented in tracopt.

Last edited 5 years ago by Peter Suter (previous) (diff)

in reply to:  3 ; comment:8 by Ryan J Ollos, 5 years ago

Replying to jomae:

I think we must separate tracopt/notification/xmpp.py to an external plugin with GPL-compatible license, like TracMercurial. Trac doesn't bundle Mercurial plugin because mercurial's license is GPL.

Right, but the proposed changes don't include the source for XMPP, the changes just use XMPP as a packaged dependency. My understanding, which is not thorough by any means, is that it's okay to use dependencies that have a GPL license, as long as we don't directly distribute the source code with Trac. Consider that MySQLdb appears to be GPL licensed and is used by Trac in a similar way to the proposed changes that would use the XMPP library.

in reply to:  8 comment:9 by Jun Omae, 5 years ago

Replying to rjollos:

Consider that MySQLdb appears to be GPL licensed and is used by Trac in a similar way to the proposed changes that would use the XMPP library.

MySQLdb is dual-licensed under GPLv2 and Python License. See https://github.com/farcepest/MySQLdb1/blob/MySQLdb-1.2/INSTALL#L249.

comment:10 by Ryan J Ollos, 5 years ago

Okay, possibly MySQLdb isn't a good example - I don't know what the terms of Python's 1.5.2 license are.

I still question whether or not we can use a packaged dependency that has a GPL license. StackExchange post suggests we cannot use GPL licensed packages.

Last edited 5 years ago by Ryan J Ollos (previous) (diff)

comment:11 by Ryan J Ollos, 5 years ago

Owner: Peter Suter removed
Status: assignednew

comment:12 by Ryan J Ollos, 4 years ago

Milestone: next-dev-1.1.xnext-dev-1.3.x

Narrowing focus for milestone:1.2. Please move ticket to milestone:1.2 if you intend to fix it.

in reply to:  7 comment:13 by Peter Suter, 3 years ago

Replying to Peter Suter:

The trac-admin commands session list, session add and session set implemented by SessionAdmin also handle session email addresses. I'm not sure if / how XMPP addresses could or should be handled. I guess a separate set of commands (e.g. session xmpp set etc.) could be implemented in tracopt.

comment:10:ticket:11840 mentions extending these commands with a new interface.

comment:14 by Ryan J Ollos, 4 months ago

Milestone: next-dev-1.3.xnext-dev-1.5.x

Milestone renamed

comment:15 by Ryan J Ollos, 3 months ago

Milestone: next-dev-1.5.xnext-major-releases

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The ticket will remain with no owner.
The ticket will be disowned. Next status will be 'new'.
as The resolution will be set. Next status will be 'closed'.
The owner will be changed from (none) to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.