[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-12 Thread Dave Cridland
I think advice and a recommended course of action promotes
interoperability, and is backwards compatible. XEP-0001 also says such
modifications must be optional; obviously a SHOULD is not a MAY here, but I
think it's fairly clear that a decision to assume that an entity not
including disco#info within its disco#info response has ramifications which
should properly be understood prior to doing so.

IOW, I think this remains within the spirit, albeit not the letter, of the
Final requirements.

On Tue, 12 Mar 2024 at 10:33, Kevin Smith  wrote:

> I agree that a note would be helpful, but we're only noting that bugged
> implementations exist, I don't think that even adding a SHOULD here
> falls within the spirit of the Final requirements. So I think the right
> thing to do is to add a note saying such bugs exist, but not change
> normative language.
>
> /K
>
>
> -- Original Message --
> From "Dave Cridland" 
> To "XMPP Standards" 
> Date 12/03/2024 09:59:33
> Subject [Standards] Re: Remove requirement to send disco#info feature in
> XEP-0030
>
> >As others have said, it's a wart. Any protocol has lots of them; XMPP
> >has always had its fair share. (You mention XEP-0045 briefly, and we're
> >all familiar that it's essentially a collection of warts at this
> >stage). This one is not, as far as I can see, harmful in any meaningful
> >way.
> >
> >As Tedd Sterr notes, removing the reporting of disco#info support via
> >disco#info might leave no features at all, which might - small chance -
> >mean that implementations hit bugs.
> >
> >I see no benefit to interoperability to remove it at this time.
> >
> >However, I could see the benefit of adding a note to the effect of:
> >
> >"Some entities are known not to advertise the
> >"http://jabber.org/protocol/disco#info; feature within their responses,
> >contrary to this specification. Entities receiving otherwise valid
> >responses which do not include this feature SHOULD infer the support."
> >
> >Dave.
> >
> >On Sun, 10 Mar 2024 at 16:27, Jonas Schäfer 
> >wrote:
> >>Dear community,
> >>
> >>it's been a while I spoke up here.
> >>
> >>I would like to discuss the removal of the following part-sentence
> >>from
> >>XEP-0030 (in Final status!):
> >>
> >> > every entity MUST support at least the
> >> > 'http://jabber.org/protocol/disco#info' feature
> >>
> >>Announcing that feature is redundant: An entity which replies with a
> >>properly
> >>constructed `http://jabber.org/protocol/disco#info"/>`
> >>element
> >>is bound to (and has always been bound to) have implemented XEP-0030
> >>to the
> >>best of its knowledge.
> >>
> >>As this is a Final(!) status XEP, here is my estimate of the impact
> >>this
> >>change has:
> >>
> >>- Implementations which required the presence of this feature on the
> >>   receiving side would now become non-compliant: They might assume
> >>   that the remote entity did not really support XEP-0030 and fail with
> >>   an error.
> >>
> >>   Such implementations would need to be adapted in order to be able to
> >>   interoperate with implementations which follow a revised version of
> >>   XEP-0030.
> >>
> >>I don't see any other impact. I also strongly suspect that the set of
> >>implementations which follow XEP-0030 to the letter is rather slim (I
> >>only
> >>know of a single one, which would be the Rust XMPP library xmpp-rs
> >>[1]).
> >>
> >>The reason why this came up: There have in the past been cases ([2]
> >>and
> >>another, not-yet-filed issue against Prosody IM where the disco#info
> >>feature
> >>is missing from MUCs) where implementations didn't emit this feature.
> >>The
> >>seeming pointlessness and lack of information conveyed by this feature
> >>var
> >>make it easy to overlook and low-priority to fix. The fact that this
> >>has gone
> >>undiscovered for at least one Prosody IM release cycle further
> >>supports the
> >>assumption that the number of implementations which rely on that part
> >>of the
> >>spec is rather small.
> >>
> >>Your input is welcome.
> >>
> >>kind regards,
> >>Jonas Schäfer
> >>(these days without "special" role in the standards process)
> >>
> >>[1]: And there exists at least one fork which removed that check:
> >> https://gitlab.com/nesium/xmpp-rs/-/commit/1ddb050
> >>[2]:
> >>
> https://issues.prosody.im/1664___
> >>Standards mailing list -- standards@xmpp.org
> >>To unsubscribe send an email to standards-le...@xmpp.org
> ___
> Standards mailing list -- standards@xmpp.org
> To unsubscribe send an email to standards-le...@xmpp.org
>
___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-12 Thread Kevin Smith
I agree that a note would be helpful, but we're only noting that bugged 
implementations exist, I don't think that even adding a SHOULD here 
falls within the spirit of the Final requirements. So I think the right 
thing to do is to add a note saying such bugs exist, but not change 
normative language.


/K


-- Original Message --
From "Dave Cridland" 
To "XMPP Standards" 
Date 12/03/2024 09:59:33
Subject [Standards] Re: Remove requirement to send disco#info feature in 
XEP-0030


As others have said, it's a wart. Any protocol has lots of them; XMPP 
has always had its fair share. (You mention XEP-0045 briefly, and we're 
all familiar that it's essentially a collection of warts at this 
stage). This one is not, as far as I can see, harmful in any meaningful 
way.


As Tedd Sterr notes, removing the reporting of disco#info support via 
disco#info might leave no features at all, which might - small chance - 
mean that implementations hit bugs.


I see no benefit to interoperability to remove it at this time.

However, I could see the benefit of adding a note to the effect of:

"Some entities are known not to advertise the 
"http://jabber.org/protocol/disco#info; feature within their responses, 
contrary to this specification. Entities receiving otherwise valid 
responses which do not include this feature SHOULD infer the support."


Dave.

On Sun, 10 Mar 2024 at 16:27, Jonas Schäfer  
wrote:

Dear community,

it's been a while I spoke up here.

I would like to discuss the removal of the following part-sentence 
from

XEP-0030 (in Final status!):

> every entity MUST support at least the
> 'http://jabber.org/protocol/disco#info' feature

Announcing that feature is redundant: An entity which replies with a 
properly
constructed `http://jabber.org/protocol/disco#info"/>` 
element
is bound to (and has always been bound to) have implemented XEP-0030 
to the

best of its knowledge.

As this is a Final(!) status XEP, here is my estimate of the impact 
this

change has:

- Implementations which required the presence of this feature on the
  receiving side would now become non-compliant: They might assume
  that the remote entity did not really support XEP-0030 and fail with
  an error.

  Such implementations would need to be adapted in order to be able to
  interoperate with implementations which follow a revised version of
  XEP-0030.

I don't see any other impact. I also strongly suspect that the set of
implementations which follow XEP-0030 to the letter is rather slim (I 
only
know of a single one, which would be the Rust XMPP library xmpp-rs 
[1]).


The reason why this came up: There have in the past been cases ([2] 
and
another, not-yet-filed issue against Prosody IM where the disco#info 
feature
is missing from MUCs) where implementations didn't emit this feature. 
The
seeming pointlessness and lack of information conveyed by this feature 
var
make it easy to overlook and low-priority to fix. The fact that this 
has gone
undiscovered for at least one Prosody IM release cycle further 
supports the
assumption that the number of implementations which rely on that part 
of the

spec is rather small.

Your input is welcome.

kind regards,
Jonas Schäfer
(these days without "special" role in the standards process)

   [1]: And there exists at least one fork which removed that check:
https://gitlab.com/nesium/xmpp-rs/-/commit/1ddb050
   [2]: 
https://issues.prosody.im/1664___

Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org

___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-12 Thread Matthew Wild
On Tue, 12 Mar 2024 at 09:59, Dave Cridland  wrote:
> However, I could see the benefit of adding a note to the effect of:
>
> "Some entities are known not to advertise the 
> "http://jabber.org/protocol/disco#info; feature within their responses, 
> contrary to this specification. Entities receiving otherwise valid responses 
> which do not include this feature SHOULD infer the support."

Agreed, I think this is the way to go.

Regards,
Matthew
___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-12 Thread Guus der Kinderen
If I understand the suggested change correctly, it's mostly a cosmetic one.
That, to me, is not worth risking relaxing a definition/restriction that we
made in 0001 (which is quite the core of what we're basing things on). I'm
in camp "let's live with the wart".

 - Guus

On Tue, Mar 12, 2024 at 10:59 AM Dave Cridland  wrote:

> As others have said, it's a wart. Any protocol has lots of them; XMPP has
> always had its fair share. (You mention XEP-0045 briefly, and we're all
> familiar that it's essentially a collection of warts at this stage). This
> one is not, as far as I can see, harmful in any meaningful way.
>
> As Tedd Sterr notes, removing the reporting of disco#info support via
> disco#info might leave no features at all, which might - small chance -
> mean that implementations hit bugs.
>
> I see no benefit to interoperability to remove it at this time.
>
> However, I could see the benefit of adding a note to the effect of:
>
> "Some entities are known not to advertise the "
> http://jabber.org/protocol/disco#info; feature within their responses,
> contrary to this specification. Entities receiving otherwise valid
> responses which do not include this feature SHOULD infer the support."
>
> Dave.
>
> On Sun, 10 Mar 2024 at 16:27, Jonas Schäfer  wrote:
>
>> Dear community,
>>
>> it's been a while I spoke up here.
>>
>> I would like to discuss the removal of the following part-sentence from
>> XEP-0030 (in Final status!):
>>
>> > every entity MUST support at least the
>> > 'http://jabber.org/protocol/disco#info' feature
>>
>> Announcing that feature is redundant: An entity which replies with a
>> properly
>> constructed `http://jabber.org/protocol/disco#info"/>`
>> element
>> is bound to (and has always been bound to) have implemented XEP-0030 to
>> the
>> best of its knowledge.
>>
>> As this is a Final(!) status XEP, here is my estimate of the impact this
>> change has:
>>
>> - Implementations which required the presence of this feature on the
>>   receiving side would now become non-compliant: They might assume
>>   that the remote entity did not really support XEP-0030 and fail with
>>   an error.
>>
>>   Such implementations would need to be adapted in order to be able to
>>   interoperate with implementations which follow a revised version of
>>   XEP-0030.
>>
>> I don't see any other impact. I also strongly suspect that the set of
>> implementations which follow XEP-0030 to the letter is rather slim (I
>> only
>> know of a single one, which would be the Rust XMPP library xmpp-rs [1]).
>>
>> The reason why this came up: There have in the past been cases ([2] and
>> another, not-yet-filed issue against Prosody IM where the disco#info
>> feature
>> is missing from MUCs) where implementations didn't emit this feature. The
>> seeming pointlessness and lack of information conveyed by this feature
>> var
>> make it easy to overlook and low-priority to fix. The fact that this has
>> gone
>> undiscovered for at least one Prosody IM release cycle further supports
>> the
>> assumption that the number of implementations which rely on that part of
>> the
>> spec is rather small.
>>
>> Your input is welcome.
>>
>> kind regards,
>> Jonas Schäfer
>> (these days without "special" role in the standards process)
>>
>>[1]: And there exists at least one fork which removed that check:
>> https://gitlab.com/nesium/xmpp-rs/-/commit/1ddb050
>>[2]: https://issues.prosody.im/1664
>> ___
>> Standards mailing list -- standards@xmpp.org
>> To unsubscribe send an email to standards-le...@xmpp.org
>>
> ___
> Standards mailing list -- standards@xmpp.org
> To unsubscribe send an email to standards-le...@xmpp.org
>
___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-12 Thread Dave Cridland
As others have said, it's a wart. Any protocol has lots of them; XMPP has
always had its fair share. (You mention XEP-0045 briefly, and we're all
familiar that it's essentially a collection of warts at this stage). This
one is not, as far as I can see, harmful in any meaningful way.

As Tedd Sterr notes, removing the reporting of disco#info support via
disco#info might leave no features at all, which might - small chance -
mean that implementations hit bugs.

I see no benefit to interoperability to remove it at this time.

However, I could see the benefit of adding a note to the effect of:

"Some entities are known not to advertise the "
http://jabber.org/protocol/disco#info; feature within their responses,
contrary to this specification. Entities receiving otherwise valid
responses which do not include this feature SHOULD infer the support."

Dave.

On Sun, 10 Mar 2024 at 16:27, Jonas Schäfer  wrote:

> Dear community,
>
> it's been a while I spoke up here.
>
> I would like to discuss the removal of the following part-sentence from
> XEP-0030 (in Final status!):
>
> > every entity MUST support at least the
> > 'http://jabber.org/protocol/disco#info' feature
>
> Announcing that feature is redundant: An entity which replies with a
> properly
> constructed `http://jabber.org/protocol/disco#info"/>`
> element
> is bound to (and has always been bound to) have implemented XEP-0030 to
> the
> best of its knowledge.
>
> As this is a Final(!) status XEP, here is my estimate of the impact this
> change has:
>
> - Implementations which required the presence of this feature on the
>   receiving side would now become non-compliant: They might assume
>   that the remote entity did not really support XEP-0030 and fail with
>   an error.
>
>   Such implementations would need to be adapted in order to be able to
>   interoperate with implementations which follow a revised version of
>   XEP-0030.
>
> I don't see any other impact. I also strongly suspect that the set of
> implementations which follow XEP-0030 to the letter is rather slim (I only
> know of a single one, which would be the Rust XMPP library xmpp-rs [1]).
>
> The reason why this came up: There have in the past been cases ([2] and
> another, not-yet-filed issue against Prosody IM where the disco#info
> feature
> is missing from MUCs) where implementations didn't emit this feature. The
> seeming pointlessness and lack of information conveyed by this feature var
> make it easy to overlook and low-priority to fix. The fact that this has
> gone
> undiscovered for at least one Prosody IM release cycle further supports
> the
> assumption that the number of implementations which rely on that part of
> the
> spec is rather small.
>
> Your input is welcome.
>
> kind regards,
> Jonas Schäfer
> (these days without "special" role in the standards process)
>
>[1]: And there exists at least one fork which removed that check:
> https://gitlab.com/nesium/xmpp-rs/-/commit/1ddb050
>[2]: https://issues.prosody.im/1664
> ___
> Standards mailing list -- standards@xmpp.org
> To unsubscribe send an email to standards-le...@xmpp.org
>
___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-11 Thread Tedd Sterr
>From XEP-0001, regarding Final XEPs, "limited modifications may be made as 
>long as they are optional, backwards-compatible extensions rather than 
>modifications to the core protocol itself."

XEP-0030 requires that entities return "one or more  elements and 
one or more  elements", so the otherwise redundant 'disco#info' 
feature ensures this will always be the case, even in the (seemingly unlikely) 
situation where an entity somehow supports disco#info without supporting any 
additional features. So, is removing the requirement for this feature an 
optional, backwards-compatible extension?

An obvious, and maybe more realistic, retort is "but will it break anything?" 
So, would it cause problems for implementations if they were to receive a reply 
containing zero features (since they were originally implemented expecting 
there will always be at least one)? Equally, would implementations have 
problems calculating the caps hash (XEP-0115) with zero features (the algorithm 
doesn't explicitly account for this)?

It's also worth considering whether leaving it as-is causes harm. It's nice 
(desirable, even) to clean things and remove 'warts' like this, and there are 
likely many more scattered throughout the protocol, so it's worth noting for 
XMPP 2.0, but this has been the status quo for 22 years without being an issue.

As for benefits: many implementations would now be 'correct' for not 
complaining when the feature isn't present (if implementations don't follow the 
specification, just change the specification); and there is a minor reduction 
in data transferred from having one less feature, though that's less notable 
where XEP-0115 is used (and there may be an initial increase caused by most 
hashes now being unknown, until that settles.)

(Semi-relevant: https://github.com/xsf/xeps/pull/961 )

___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-11 Thread Jonas Schäfer
On Montag, 11. März 2024 12:41:17 CET Florian Schmaus wrote:
> On 10/03/2024 17.27, Jonas Schäfer wrote:
> > Dear community,
> > 
> > it's been a while I spoke up here.
> > 
> > I would like to discuss the removal of the following part-sentence from
> > 
> > XEP-0030 (in Final status!):
> >> every entity MUST support at least the
> >> 'http://jabber.org/protocol/disco#info' feature
> 
> I agree that this is a wart of the specification, but personally, I am
> not sure if the its worth fixing it. That said, I do not have a strong
> opinion on that. However, I want to point out that…
> 
> > Announcing that feature is redundant: An entity which replies with a
> > properly constructed ` > xmlns="http://jabber.org/protocol/disco#info"/>` element is bound to (and
> > has always been bound to) have implemented XEP-0030 to the best of its
> > knowledge.
> > 
> > As this is a Final(!) status XEP, here is my estimate of the impact this
> > change has:
> > 
> > - Implementations which required the presence of this feature on the
> > 
> >receiving side would now become non-compliant: They might assume
> >that the remote entity did not really support XEP-0030 and fail with
> >an error.
> >
> >Such implementations would need to be adapted in order to be able to
> >interoperate with implementations which follow a revised version of
> >XEP-0030.
> > 
> > I don't see any other impact.
> 
> ...there is another impact regarding the caps cache: the footprint of
> the caps cache would increase, at least during the period where old
> versions announce the feature, while the updated implementation may not.
> Furthermore, implementations that persist the caps cache would end up
> with more-or-less useless entries (which will eventually be pushed out
> of the cache).
> 
> That itself is probably not a big deal, but it nicely demonstrates that
> it is often hard to understand the full impact of a change.

I did actually consider that, but found it negligible; I wouldn't expect 
implementations which already emit it to drop the disco#info feature 
deliberately, or if they do, it's unlikely that it happens without other 
changes which may in turn add/remove other feature vars anyway.

kind regards,
Jonas

signature.asc
Description: This is a digitally signed message part.
___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-11 Thread Florian Schmaus

On 10/03/2024 17.27, Jonas Schäfer wrote:

Dear community,

it's been a while I spoke up here.

I would like to discuss the removal of the following part-sentence from
XEP-0030 (in Final status!):


every entity MUST support at least the
'http://jabber.org/protocol/disco#info' feature


I agree that this is a wart of the specification, but personally, I am 
not sure if the its worth fixing it. That said, I do not have a strong 
opinion on that. However, I want to point out that…



Announcing that feature is redundant: An entity which replies with a properly
constructed `http://jabber.org/protocol/disco#info"/>` element
is bound to (and has always been bound to) have implemented XEP-0030 to the
best of its knowledge.

As this is a Final(!) status XEP, here is my estimate of the impact this
change has:

- Implementations which required the presence of this feature on the
   receiving side would now become non-compliant: They might assume
   that the remote entity did not really support XEP-0030 and fail with
   an error.

   Such implementations would need to be adapted in order to be able to
   interoperate with implementations which follow a revised version of
   XEP-0030.

I don't see any other impact.


...there is another impact regarding the caps cache: the footprint of 
the caps cache would increase, at least during the period where old 
versions announce the feature, while the updated implementation may not. 
Furthermore, implementations that persist the caps cache would end up 
with more-or-less useless entries (which will eventually be pushed out 
of the cache).


That itself is probably not a big deal, but it nicely demonstrates that 
it is often hard to understand the full impact of a change.


Again, I do not favor removing it, nor do I want to keep it. But 
personally, I feel like there is not much to gained by fixing this.


- Florian


___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-11 Thread Ralph Meijer


On 11 March 2024 10:51:39 CET, Kevin Smith  wrote:
>
> [..]
>
>It seems to me that, although this has always seemed like a strange wart, the 
>fact that it might cause implementations to need to be updated (whether such 
>implementations are known of by The Internet or not), making the change is 
>inconsistent with the requirements of Final (XEP-0001) so shouldn't be made.
>
>/K

Agreed. This is a wart that we'll have to keep for hysterical raisins. 

-- 
ralphm
___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-11 Thread Kevin Smith




-- Original Message --
From "Jonas Schäfer" 
To standards@xmpp.org
Date 10/03/2024 16:27:07
Subject [Standards] Remove requirement to send disco#info feature in 
XEP-0030



Dear community,

it's been a while I spoke up here.

I would like to discuss the removal of the following part-sentence from
XEP-0030 (in Final status!):


 every entity MUST support at least the
 'http://jabber.org/protocol/disco#info' feature


Announcing that feature is redundant: An entity which replies with a properly
constructed `http://jabber.org/protocol/disco#info"/>` element
is bound to (and has always been bound to) have implemented XEP-0030 to the
best of its knowledge.

As this is a Final(!) status XEP, here is my estimate of the impact this
change has:

- Implementations which required the presence of this feature on the
  receiving side would now become non-compliant: They might assume
  that the remote entity did not really support XEP-0030 and fail with
  an error.

  Such implementations would need to be adapted in order to be able to
  interoperate with implementations which follow a revised version of
  XEP-0030.

I don't see any other impact. I also strongly suspect that the set of
implementations which follow XEP-0030 to the letter is rather slim (I only
know of a single one, which would be the Rust XMPP library xmpp-rs [1]).

The reason why this came up: There have in the past been cases ([2] and
another, not-yet-filed issue against Prosody IM where the disco#info feature
is missing from MUCs) where implementations didn't emit this feature. The
seeming pointlessness and lack of information conveyed by this feature var
make it easy to overlook and low-priority to fix. The fact that this has gone
undiscovered for at least one Prosody IM release cycle further supports the
assumption that the number of implementations which rely on that part of the
spec is rather small.

It seems to me that, although this has always seemed like a strange 
wart, the fact that it might cause implementations to need to be updated 
(whether such implementations are known of by The Internet or not), 
making the change is inconsistent with the requirements of Final 
(XEP-0001) so shouldn't be made.


/K

___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org


[Standards] Re: Remove requirement to send disco#info feature in XEP-0030

2024-03-10 Thread Stephen Paul Weber

Somebody signing messages as Jonas Schäfer wrote:

I would like to discuss the removal of the following part-sentence from
XEP-0030 (in Final status!):


every entity MUST support at least the
'http://jabber.org/protocol/disco#info' feature


I would support this change
___
Standards mailing list -- standards@xmpp.org
To unsubscribe send an email to standards-le...@xmpp.org