Hi all! MUST a pubsub service advertise <feature var=' http://jabber.org/protocol/pubsub'/> with service discovery 'info' responses? XEP-0060 shows this being done in examples 8 and 18, but there is no normative text that defines this. The feature is not listed in its "Feature Summary" section, and is not registered with the Registrar. There has been a discussion around this in the XSF's Discussion chat room today (logs here: https://logs.xmpp.org/xsf/2025-10-03#2025-10-03-f173fd843da7c3ee ). There are implementations in the wild that require that feature to be advertised, while other software doesn't advertise it. Given the conflicting implementations, I believe that it would be good to have normative text be added to XEP-0060 to clarify things. I'm not sure yet what that text should be. What do you think? Kind regards, Guus
Hi all, After some more discussion in the chat room, I am proposing to remove the ambiguity in XEP-0060 by: 1. replacing the usage of the 'http://jabber.org/protocol/pubsub' feature with that of 'http://jabber.org/protocol/pubsub#subscribe' (which is a feature that is defined to be REQUIRED in section 10); 2. add a note to document this change and recommend advertisement of ' http://jabber.org/protocol/pubsub' for compatibility; 3. with regards to another feature, ' http://jabber.org/protocol/pubsub#publish', to no longer define that as being REQUIRED in section 10, as section 7.1.1 clearly defines it to be optional. Kind regards, Guus On Fri, Oct 3, 2025 at 5:34 PM Guus der Kinderen < guus.der.kinderen@gmail.com> wrote:
Hi all!
MUST a pubsub service advertise <feature var=' http://jabber.org/protocol/pubsub'/> with service discovery 'info' responses?
XEP-0060 shows this being done in examples 8 and 18, but there is no normative text that defines this.
The feature is not listed in its "Feature Summary" section, and is not registered with the Registrar.
There has been a discussion around this in the XSF's Discussion chat room today (logs here: https://logs.xmpp.org/xsf/2025-10-03#2025-10-03-f173fd843da7c3ee ).
There are implementations in the wild that require that feature to be advertised, while other software doesn't advertise it.
Given the conflicting implementations, I believe that it would be good to have normative text be added to XEP-0060 to clarify things. I'm not sure yet what that text should be.
What do you think?
Kind regards,
Guus
Le vendredi 3 octobre 2025, 20:21:41 heure d’été d’Europe centrale Guus der Kinderen a écrit :
Hi all,
After some more discussion in the chat room, I am proposing to remove the ambiguity in XEP-0060 by:
1. replacing the usage of the 'http://jabber.org/protocol/pubsub' feature with that of 'http://jabber.org/protocol/pubsub#subscribe' (which is a feature that is defined to be REQUIRED in section 10); 2. add a note to document this change and recommend advertisement of ' http://jabber.org/protocol/pubsub' for compatibility; 3. with regards to another feature, ' http://jabber.org/protocol/pubsub#publish', to no longer define that as being REQUIRED in section 10, as section 7.1.1 clearly defines it to be optional.
Kind regards,
Guus
Sorry my previous message has been delayed. Your solution seems sensible. However, regarding subscription, a service may not support it, as specified in § 6.1.3.10 . This is actually exploited in XEP-0498 (Pubsub File Sharing) § 9 (Business Rules). It feels a bit weird to have the feature exposed by disco#info then return a 'feature-not-implemented' error. I guess that we can live with that, but ideally, I would replace REQUIRED by OPTIONAL for subscribe in XEP-0060 §10. Best, Goffi
Hi! Thanks for pointing out that subscribe, like publish, is described as optional functionality by certain sections of XEP-0060. I agree with you that given that (and since there are XEPs that make use of that), the feature should not be defined as REQUIRED in section 10. There's some bike-shedding to be done on OPTIONAL vs RECOMMENDED maybe (Having a XEP that is titled "publish-subscribe" for which both the "publish"as well as the "subscribe" part are optional seems... weird to me), but regardless, REQUIRED does not seem to fit at all. That leaves us with having not a single feature that the XEP requires to be advertised for a pubsub service. As Goffi describes, the disco#info identity can be used for that purpose. I do worry that a significant amount of implementations use the (currently undocumented) ' https://jabber.org/protocol/pubsub' feature for this. For that reason, I'd still like to see the feature be explicitly named (normative) in XEP-0060. As XEP-0060 is Stable, I don't believe this can be made a REQUIRED feature, but a RECOMMENDED one (including a note that describes how services are recommended to publish it, but that consumers should not depend on it (and use the identity instead)) should be a good improvement over the current state of the XEP. Thoughts? Kind regards, Guus On Fri, Oct 3, 2025 at 9:31 PM Goffi <goffi@goffi.org> wrote:
Le vendredi 3 octobre 2025, 20:21:41 heure d’été d’Europe centrale Guus der Kinderen a écrit :
Hi all,
After some more discussion in the chat room, I am proposing to remove the ambiguity in XEP-0060 by:
1. replacing the usage of the 'http://jabber.org/protocol/pubsub' feature with that of 'http://jabber.org/protocol/pubsub#subscribe' (which is a feature that is defined to be REQUIRED in section 10); 2. add a note to document this change and recommend advertisement of ' http://jabber.org/protocol/pubsub' for compatibility; 3. with regards to another feature, ' http://jabber.org/protocol/pubsub#publish', to no longer define that as being REQUIRED in section 10, as section 7.1.1 clearly defines it to be optional.
Kind regards,
Guus
Sorry my previous message has been delayed.
Your solution seems sensible.
However, regarding subscription, a service may not support it, as specified in § 6.1.3.10 . This is actually exploited in XEP-0498 (Pubsub File Sharing) § 9 (Business Rules).
It feels a bit weird to have the feature exposed by disco#info then return a 'feature-not-implemented' error. I guess that we can live with that, but ideally, I would replace REQUIRED by OPTIONAL for subscribe in XEP-0060 §10.
Best, Goffi_______________________________________________ Standards mailing list -- standards@xmpp.org To unsubscribe send an email to standards-leave@xmpp.org
On 5 October 2025 14:43:01 CEST, Guus der Kinderen <guus.der.kinderen@gmail.com> wrote:
(Having a XEP that is titled "publish-subscribe" for which both the "publish"as well as the "subscribe" part are optional seems... weird to me)
The idea behind it is that different types of services may only implement one of these: - A service that exposes its nodes as node-as-code won't use any of the node management and publishing protocol. Nodes just magically exist, users can subscribe to them, and notifications are sent out to subscribers. - A service that (only) supports PEP will not use explicit subscription protocols, and may use explicit publish actions. - One could even have a service that doesn't use either. E.g. a news ticker as part of a MIX service (I worked on this), where the node just exists as part of a room, items magically exist through some out-of-band integration, and occupants are subscribed implicitly using a PEP-like auto-subscription mechanism. This would just send out notifications. Another (early) example was the XMPP support in Twitter, a few moons ago. -- ralphm
Thanks! I have taken this feedback to propose changes to the XEP. I've split them in two parts: - https://github.com/xsf/xeps/pull/1467 - no longer define the 'subscribe' and 'publish' features as REQUIRED in the Feature Summary - https://github.com/xsf/xeps/pull/1468 - formally introduce the ' https://jabber.org/protocol/pubsub' feature, and provide guidelines for maximum compatibility Kind regards, Guus On Sun, Oct 5, 2025 at 7:34 PM Ralph Meijer <ralphm@ik.nu> wrote:
On 5 October 2025 14:43:01 CEST, Guus der Kinderen < guus.der.kinderen@gmail.com> wrote:
(Having a XEP that is titled "publish-subscribe" for which both the "publish"as well as the "subscribe" part are optional seems... weird to me)
The idea behind it is that different types of services may only implement one of these:
- A service that exposes its nodes as node-as-code won't use any of the node management and publishing protocol. Nodes just magically exist, users can subscribe to them, and notifications are sent out to subscribers. - A service that (only) supports PEP will not use explicit subscription protocols, and may use explicit publish actions. - One could even have a service that doesn't use either. E.g. a news ticker as part of a MIX service (I worked on this), where the node just exists as part of a room, items magically exist through some out-of-band integration, and occupants are subscribed implicitly using a PEP-like auto-subscription mechanism. This would just send out notifications. Another (early) example was the XMPP support in Twitter, a few moons ago.
-- ralphm _______________________________________________ Standards mailing list -- standards@xmpp.org To unsubscribe send an email to standards-leave@xmpp.org
Le vendredi 3 octobre 2025, 17:34:33 heure d’été d’Europe centrale Guus der Kinderen a écrit :
Hi all!
MUST a pubsub service advertise <feature var=' http://jabber.org/protocol/pubsub'/> with service discovery 'info' responses?
XEP-0060 shows this being done in examples 8 and 18, but there is no normative text that defines this.
The feature is not listed in its "Feature Summary" section, and is not registered with the Registrar.
There has been a discussion around this in the XSF's Discussion chat room today (logs here: https://logs.xmpp.org/xsf/2025-10-03#2025-10-03-f173fd843da7c3ee ).
There are implementations in the wild that require that feature to be advertised, while other software doesn't advertise it.
Given the conflicting implementations, I believe that it would be good to have normative text be added to XEP-0060 to clarify things. I'm not sure yet what that text should be.
What do you think?
Kind regards,
Guus
Hi Guus, IMO a Pubsub identity is more important, and software should rely on that. If it's not specified in text that the the `http://jabber.org/protocol/pubsub` is mandatory, it should not be, and implementation expecting it are wrong. Best, Goffi
participants (3)
-
Goffi -
Guus der Kinderen -
Ralph Meijer