Opened 10 years ago
Last modified 5 years 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: | |||
Internal 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)
Change History (16)
comment:1 by , 10 years ago
comment:2 by , 10 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.
follow-up: 8 comment:3 by , 10 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.
follow-up: 5 comment:4 by , 10 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.
comment:5 by , 10 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 toIEmailSender
) 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 , 10 years ago
Owner: | set to |
---|---|
Status: | new → assigned |
log:psuter.hg@T11884-xmpp updated to switch to SleekXMPP.
by , 10 years ago
Attachment: | xmpp-prefs.png added |
---|
follow-up: 13 comment:7 by , 10 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
.
follow-up: 9 comment:8 by , 10 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.
comment:9 by , 10 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 , 10 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.
comment:11 by , 10 years ago
Owner: | removed |
---|---|
Status: | assigned → new |
comment:12 by , 9 years ago
Milestone: | next-dev-1.1.x → next-dev-1.3.x |
---|
Narrowing focus for milestone:1.2. Please move ticket to milestone:1.2 if you intend to fix it.
comment:13 by , 8 years ago
Replying to Peter Suter:
The
trac-admin
commandssession list
,session add
andsession 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 intracopt
.
comment:10:ticket:11840 mentions extending these commands with a new interface.
comment:15 by , 5 years ago
Milestone: | next-dev-1.5.x → next-major-releases |
---|
Announcer's XmppDistributor seems to depend on xmpppy. (Is GPL license a problem for optional dependencies?)