Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-21 Thread Joe Hildebrand


On Nov 20, 2007, at 12:38 PM, Rachel Blackman wrote:

I.e., I think this method is kind of a mess, when just adding 'hash'  
in separately would've solved the backwards compatibility issue  
nicely.  However, that ship has probably sailed, so even just  
including 'v' will solve the 'users will ask for this' concern I had  
about displaying version strings. :)



And then new clients would need to respond to both new-style queries  
and old-style queries, as well as continuing to send ext for backward- 
compatibility.


I agree that it's unfortunate that old clients will show the hash as  
the version number.  Like stpeter said, though, I'm not convinced that  
the version number has general-purpose utility.


--
Joe Hildebrand



Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-21 Thread Rachel Blackman
I.e., I think this method is kind of a mess, when just adding  
'hash' in separately would've solved the backwards compatibility  
issue nicely.  However, that ship has probably sailed, so even just  
including 'v' will solve the 'users will ask for this' concern I  
had about displaying version strings. :)



And then new clients would need to respond to both new-style queries  
and old-style queries, as well as continuing to send ext for  
backward-compatibility.


My backwards-compatibility concern was less about version display in  
this case and more about the use of that value.


Old style, if I had node='http://foo.com/bar' and ver='somestring',  
then I could query on http://foo.com/bar#somestring and get that value  
(and of course, same with the exts).


Now you are supposed to just do a straight out disco query against the  
user; http://foo.com/bar#somestring is not guaranteed to actually be a  
valid query you can perform, which means old-style clients that expect  
to do node#ver queries may not receive data at all.  Thus, we broke  
backwards compatibility entirely.


Hence my thought that including node/ver if you wanted to support the  
old style client queries, and including the hash differently if not,  
would have been more backwards-compatible.  My talk about version  
display is just because I know users will ask for the version string,  
not because I think it has any inherent value.  I just always think to  
myself 'will my users howl at me if I remove this,' and if the answer  
is 'yes,' I speak up. ;)


But I think breaking the version string for a 'backwards  
compatibility' which we then proceeded to break by removing the 'query  
on the hash' aspect of things was not our best decision as a standards  
body.  Because at this point, we've managed to confuse the issue AND  
ensure old implementations may not work, either.  That's my concern  
there; over the course of a few revisions, we made the protocol more  
confusing, and then we sacrificed the backwards compatibility we  
supposedly gained by that confusion.


I mean, I know how I will implement this (including generating my hash  
and then allowing it as a proper disco query to allow old-style  
clients to work with me), but the situation seems non-ideal.  Given  
that we broke with backwards compatibility by removing the ability to  
query on the hash, we should have just kept node/ver with their old  
meanings,  and added a separate hash attribute.


Anyway, what's done is done; I point this out only to show that we  
shouldn't let this happen again when changing other bits and pieces,  
down the road.


--
Rachel Blackman [EMAIL PROTECTED]
Trillian Messenger - http://www.trillianastra.com/




Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-21 Thread Peter Saint-Andre
Well, whatever it is, we should specify it. :)

Joe Hildebrand wrote:
 I disagree with this.  I think it should return not found.  Think about
 a pub-sub service, for example...
 
 On Nov 21, 2007, at 11:18 AM, Peter Saint-Andre wrote:
 
 I don't think I agree. That is, I think if you receive a disco#info
 request at a node you don't know about, you should reply as if the node
 attribute had not been included. But I notice that this is not specified
 in XEP-0030.
 



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-21 Thread Joe Hildebrand


On Nov 21, 2007, at 10:37 AM, Rachel Blackman wrote:

Now you are supposed to just do a straight out disco query against  
the user;http://foo.com/bar#somestring is not guaranteed to actually  
be a valid query you can perform, which means old-style clients that  
expect to do node#ver queries may not receive data at all.  Thus, we  
broke backwards compatibility entirely.



This is one of the (several) reasons why I *still* think that the  
request should still have http://foo.com/bar#somestring as the node.


--
Joe Hildebrand



Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-21 Thread Peter Saint-Andre
Joe Hildebrand wrote:
 
 On Nov 20, 2007, at 12:38 PM, Rachel Blackman wrote:
 
 I.e., I think this method is kind of a mess, when just adding 'hash'
 in separately would've solved the backwards compatibility issue
 nicely.  However, that ship has probably sailed, so even just
 including 'v' will solve the 'users will ask for this' concern I had
 about displaying version strings. :)
 
 
 And then new clients would need to respond to both new-style queries and
 old-style queries, as well as continuing to send ext for
 backward-compatibility.
 
 I agree that it's unfortunate that old clients will show the hash as the
 version number.  Like stpeter said, though, I'm not convinced that the
 version number has general-purpose utility.

I'm not either, but if 'v' is optional and end users love it then I have
no objections.

Peter

-- 
Peter Saint-Andre
https://stpeter.im/



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-21 Thread Peter Saint-Andre
Rachel Blackman wrote:
 I.e., I think this method is kind of a mess, when just adding 'hash'
 in separately would've solved the backwards compatibility issue
 nicely.  However, that ship has probably sailed, so even just
 including 'v' will solve the 'users will ask for this' concern I had
 about displaying version strings. :)


 And then new clients would need to respond to both new-style queries
 and old-style queries, as well as continuing to send ext for
 backward-compatibility.
 
 My backwards-compatibility concern was less about version display in
 this case and more about the use of that value.
 
 Old style, if I had node='http://foo.com/bar' and ver='somestring', then
 I could query on http://foo.com/bar#somestring and get that value (and
 of course, same with the exts).
 
 Now you are supposed to just do a straight out disco query against the
 user; http://foo.com/bar#somestring is not guaranteed to actually be a
 valid query you can perform, which means old-style clients that expect
 to do node#ver queries may not receive data at all.  Thus, we broke
 backwards compatibility entirely.

I don't think I agree. That is, I think if you receive a disco#info
request at a node you don't know about, you should reply as if the node
attribute had not been included. But I notice that this is not specified
in XEP-0030.

Peter

-- 
Peter Saint-Andre
https://stpeter.im/



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-20 Thread Rachel Blackman

presence from='[EMAIL PROTECTED]/orchard'
c xmlns='http://jabber.org/protocol/caps'
   node='http://code.google.com/p/exodus/'
   v='0.9.1'
   ver='8RovUdtOmiAjzj+xI7SK5BCw3A8='/
/presence

AND...

identity category='client' name='Exodus 0.9.1' type='pc'/

Then do you display the following?

Software: Exodus 0.9.1 0.9.1


If the name string contains the version string...

strcasestr(clientname,version) == 1


But how do you know what a version string is? Just lots of fancy  
regexes?


name='Exodus 0.9.1'
v='0.9.1'

strcasestr(Exodus 0.9.1,0.9.1) == 1

Oh, they included the version in the client name information.  I'll  
just use the name without appending.


:)

If we aren't adding version into presence, that's another thing,  
but I
would expect that users will request this -- showing what version  
of a
client the other person is on has been one of our own most-common  
requests.


Well, the sense I got from the list discussion is that end users  
want to

know what client the other person is using, but don't necessarily need
or want to know which version of the client is in use.

Did I misinterpret the list discussion?


Not necessarily; I'm just noting from personal experience that users  
do want the version information too.  There's no logical reason for  
it, and it may be a deal-breaker, but it's always something that gets  
asked for if I omit it. :)



I agree there is no solid engineering reason for it, but it is
functionality clients presently can have, and removing functionality
will always generate end-user bug report/feature request tickets.   
And

sometimes features are driven by 'what users want' rather than by any
solid engineering goal.  (Is there a real engineering benefit to
avatars?  No, but users demonstrably wanted them.)  Just my $0.02,
though. :)


I don't disagree with that.

So are you in favor of the 'v' attribute? I really don't care at this
point, and I don't want to remove functionality, and I don't want to  
go

back to the bad old days of the version flood. So if the little 'v'
attribute saves the day, I'm +1 to that.


I'm fine with the v.  I still think that using version as it was  
before and then including a new forward-compatibility hash operator  
would've made more sense, as it would then continue to work with  
everything.


New clients would use the hash field and could validate against that,  
old clients could still query as before AND use the ver field for  
display.  Our newer method means we break backwards compatibility, as  
older clients will show the hash as the client version string (and may  
not be able to query against node#hash to cache, given the 1.4  
recommendation that you just query with no disco node), and newer  
clients need to be able to determine if the ver string is a hash (and  
thus something they can validate against) or an old-style version (and  
thus something they need to query), and whether or not they can  
display it (old-style) or need to use the 'v' attribute, and so on.


I.e., I think this method is kind of a mess, when just adding 'hash'  
in separately would've solved the backwards compatibility issue  
nicely.  However, that ship has probably sailed, so even just  
including 'v' will solve the 'users will ask for this' concern I had  
about displaying version strings. :)


--
Rachel Blackman [EMAIL PROTECTED]
Trillian Messenger - http://www.trillianastra.com/




Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-19 Thread Peter Saint-Andre
OK, I'm still trying to get to closure here... :)

Rachel Blackman wrote:
 A version is only interesting if you know the software that it goes with.
 Unfortunately all we have is a URI, which means for any sane display I
 need a
 table of URI-software name mappings, and thus I can only display
 versions
 for software I know about.  That seems limiting.
 
 Not really; you can just cache the identity part of a disco query when
 you cache the list of features.  Usually the identity contains the
 client name, and you are already generally getting that when you do your
 disco query.  In general, I see things like...
 
 identity category='client' name='Exodus' type='pc'/
 
 ...coming back.  You cache the name, and add the version.  (Optionally,
 if the name string contains the version string, a'la 'Exodus 0.9.1' and
 version '0.9.1' you just use the name unmodified.)

Hmm. What if you have this?

presence from='[EMAIL PROTECTED]/orchard'
  c xmlns='http://jabber.org/protocol/caps'
 node='http://code.google.com/p/exodus/'
 v='0.9.1'
 ver='8RovUdtOmiAjzj+xI7SK5BCw3A8='/
/presence

AND...

identity category='client' name='Exodus 0.9.1' type='pc'/

Then do you display the following?

Software: Exodus 0.9.1 0.9.1

[sic]

That seems bad. Let's keep the version information in one place. I think
it's safest to put it in the disco#info 'name' attribute and nowhere
else (that is, if people really want this information -- the more I
think about it, the less convinced I am that it is useful or important
to provide the version information in caps). This way we don't clog up
the caps data with version information, we don't need to add a new 'v'
attribute to caps, and we can leave the naming to disco as it (perhaps)
should have been all along.

 Granted, this becomes an issue if you have two clients with identical
 hashes but different names, so Justin's suggestion of an 'n' field in
 the caps is not without merit.  But users do like this information --
 and it can be useful to know that someone is on the Gmail web client,
 rather than Google Talk itself -- so having SOME way to convey it in a
 sensible and bandwidth-efficient manner (i.e., avoiding our old-school
 iq:version flood) is a good idea.

Well, as Justin said, a client can maintain a mapping of node - name
(derived from disco#info results) if it really cares, right? Then if you
want to advertise different builds of the same or similar client, you
could include different nodes (http://www.google.com/talk/win vs.
http://www.google.com/talk/web or whatever).

So folks, let's keep things in perspective:

1. What really matters here is the capabilities (in 1.4+, the 'ver'
attribute).

2. The node is nice to have for certain use cases because it can give
you a mapping to a client name (via disco#info) if you want it.

3. The version information may be desirable in certain odd situations,
but I have not heard a compelling argument for it (most people want to
show the software name but are not all that interested in the exact
version). If you really really need the version, use XEP-0092 (but for
Pete's sake don't flood every person in your roster for the damn version
because no one really cares about it!).

Therefore I argue for removing version from caps (i.e., not adding it
back in version 1.5 -- we already removed it from 1.4).

An updated copy (1.5pre8) of XEP-0115 is here:

http://www.xmpp.org/extensions/tmp/xep-0115-1.5.html

The SVN diffs are here:

http://svn.xmpp.org:18080/browse/XMPP/trunk/extensions/xep-0115.xml?r1=1145r2=1403

Do we have consensus?

Peter

-- 
Peter Saint-Andre
https://stpeter.im/



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-19 Thread Rachel Blackman
...coming back.  You cache the name, and add the version.   
(Optionally,
if the name string contains the version string, a'la 'Exodus 0.9.1'  
and

version '0.9.1' you just use the name unmodified.)


Hmm. What if you have this?

presence from='[EMAIL PROTECTED]/orchard'
 c xmlns='http://jabber.org/protocol/caps'
node='http://code.google.com/p/exodus/'
v='0.9.1'
ver='8RovUdtOmiAjzj+xI7SK5BCw3A8='/
/presence

AND...

identity category='client' name='Exodus 0.9.1' type='pc'/

Then do you display the following?

Software: Exodus 0.9.1 0.9.1


If the name string contains the version string...

strcasestr(clientname,version) == 1

Thus, you just use 'Exodus 0.9.1' (the name field) since the version  
string is a substring of the name.  I agree it's not necessarily  
ideal, but this is how many of us deal with things ANYWAY when sorting  
out version information.


I still think, regardless, if we are adding version into presence, it  
is silly to kill the old ver field, then put the value into a new v  
field.  If we aren't adding version into presence, that's another  
thing, but I would expect that users will request this -- showing what  
version of a client the other person is on has been one of our own  
most-common requests.


I agree there is no solid engineering reason for it, but it is  
functionality clients presently can have, and removing functionality  
will always generate end-user bug report/feature request tickets.  And  
sometimes features are driven by 'what users want' rather than by any  
solid engineering goal.  (Is there a real engineering benefit to  
avatars?  No, but users demonstrably wanted them.)  Just my $0.02,  
though. :)


--
Rachel Blackman [EMAIL PROTECTED]
Trillian Messenger - http://www.trillianastra.com/




Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Peter Saint-Andre
Peter Saint-Andre wrote:
 I will post version 1.5pre6 soon
 to incorporate the foregoing consensus.

Well soon was rather immediate. :)

http://www.xmpp.org/extensions/tmp/xep-0115-1.5.html

Diff from 1.5pre5:

http://svn.xmpp.org:18080/browse/XMPP/trunk/extensions/xep-0115.xml?r1=1194r2=1362

Diff from 1.4:

http://svn.xmpp.org:18080/browse/XMPP/trunk/extensions/xep-0115.xml?r1=1145r2=1362

/psa



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Peter Saint-Andre
Joe Hildebrand wrote:
 
 On Nov 8, 2007, at 4:12 PM, Peter Saint-Andre wrote:
 
 How exactly do 1.3 clients break if in 1.4+ the nodes are things like:

 http://code.google.com/p/exodus/#0.9.1
 http://psi-im.org/#0.11

 Again it's a special URL at the software website. The only potential
 problem is the inclusion of the '#' character, but we can change it (as
 we did before) to be ';' instead of '#'. In fact I think we should do
 that for backward compatibility.
 
 
 As I think about this a little more, it's annoying that the URI changes
 with each version.  1.3 clients that are using the URI to (for example)
 select an icon based on the client software would have to be updated
 every time the sending software has a new version, since they treat the
 URI as a more-or-less opaque identifier.
 
 If we think the version number is still interesting, perhaps we should
 just define a new attribute that 1.4+ clients could look at if they want
 it.

You mean like this:

***

Or it could be split out as a separate attribute.

   c xmlns='http://jabber.org/protocol/caps'
  node='http://exodus.jabberstudio.org/'
  ver='8RovUdtOmiAjzj+xI7SK5BCw3A8='
  v='0.9.1'/

Where the v attribute SHOULD be included.

***

Quote from:

http://mail.jabber.org/pipermail/standards/2007-August/016670.html

Yes it seems a bit funny to have a 'v' attribute:

http://mail.jabber.org/pipermail/standards/2007-August/016680.html

But we're keeping 'ver' for backward-compatibility so it seems OK:

http://mail.jabber.org/pipermail/standards/2007-August/016681.html

Deja vu all over again. :)

Peter

-- 
Peter Saint-Andre
https://stpeter.im/



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Joe Hildebrand


On Nov 8, 2007, at 4:24 PM, Peter Saint-Andre wrote:


Yes it seems a bit funny to have a 'v' attribute:

http://mail.jabber.org/pipermail/standards/2007-August/016680.html



As usual, Rachel is the voice of reason.  I don't mind her proposal;  
however, I still don't think the algorithm needs to be extensible.  If  
we pick one and stick to it:


c xmlns='http://jabber.org/protocol/caps'
   node='http://exodus.jabberstudio.org/'
   ver='0.9.1'
   hash='8RovUdtOmiAjzj+xI7SK5BCw3A8='/
1.3 clients will disco to node http://exodus.jabberstudio.org/#0.9.1.   
1.5 clients will disco to node 8RovUdtOmiAjzj+xI7SK5BCw3A8=.  Yes, I  
still think the queries need a node.  My new use case for that is that  
I might want to send different folks different caps, or different caps  
when I join a room or something.


This has the downside of every implementation for the near future  
having to implement listening for two different nodes, which could be  
avoided if the has was in ver and the version was in v.


--
Joe Hildebrand



Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Joe Hildebrand


On Nov 8, 2007, at 4:12 PM, Peter Saint-Andre wrote:


How exactly do 1.3 clients break if in 1.4+ the nodes are things like:

http://code.google.com/p/exodus/#0.9.1
http://psi-im.org/#0.11

Again it's a special URL at the software website. The only potential
problem is the inclusion of the '#' character, but we can change it  
(as

we did before) to be ';' instead of '#'. In fact I think we should do
that for backward compatibility.



As I think about this a little more, it's annoying that the URI  
changes with each version.  1.3 clients that are using the URI to (for  
example) select an icon based on the client software would have to be  
updated every time the sending software has a new version, since they  
treat the URI as a more-or-less opaque identifier.


If we think the version number is still interesting, perhaps we should  
just define a new attribute that 1.4+ clients could look at if they  
want it.


--
Joe Hildebrand



Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Rachel Blackman
A version is only interesting if you know the software that it goes  
with.
Unfortunately all we have is a URI, which means for any sane display  
I need a
table of URI-software name mappings, and thus I can only display  
versions

for software I know about.  That seems limiting.


Not really; you can just cache the identity part of a disco query when  
you cache the list of features.  Usually the identity contains the  
client name, and you are already generally getting that when you do  
your disco query.  In general, I see things like...


identity category='client' name='Exodus' type='pc'/

...coming back.  You cache the name, and add the version.   
(Optionally, if the name string contains the version string, a'la  
'Exodus 0.9.1' and version '0.9.1' you just use the name unmodified.)


Granted, this becomes an issue if you have two clients with identical  
hashes but different names, so Justin's suggestion of an 'n' field in  
the caps is not without merit.  But users do like this information --  
and it can be useful to know that someone is on the Gmail web client,  
rather than Google Talk itself -- so having SOME way to convey it in a  
sensible and bandwidth-efficient manner (i.e., avoiding our old-school  
iq:version flood) is a good idea.


--
Rachel Blackman [EMAIL PROTECTED]
Trillian Messenger - http://www.trillianastra.com/




Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Rachel Blackman
However, from an user perspective... what is the interest of  
showing different

icon per client.


Imagine that it's a presence-only device, like a phone, for example.


Arguably, this should be a defined value used in the identity element  
-- identity category='client' type='presence' name='PTT'/ or  
whatever -- and handled accordingly.  (And yes, I think a presence- 
only device should respond to disco queries, even if some specialized  
server is responding on the device's behalf.)  You can do the same  
thing with type='web' and type='pc' and so on.


I like displaying the client/name version in contact tooltips as much  
as the next person, but only because users like that info.  If they  
didn't, there wouldn't be options in BitTorrent clients to see what  
client all your connected peers use, and my temporary removal of those  
client tooltips from an early Astra build would not have been met with  
a hail of bug-report submissions demanding the feature back.


But using that information for anything more than display to end-users  
is a mistake; the information is there not because it is functionally  
meaningful, but because end-users want it.  /Why/ end-users want it is  
not particularly relevant to the point. :)


--
Rachel Blackman [EMAIL PROTECTED]
Trillian Messenger - http://www.trillianastra.com/




Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Justin Karneges
On Thursday 08 November 2007 4:03 pm, Joe Hildebrand wrote:
 On Nov 8, 2007, at 4:47 PM, Justin Karneges wrote:
  Maybe in addition to Peter's proposed 'v' attribute, we could have
  an 'n'
  attribute for the name.  This should allow for generic display.

 Doesn't that come back in the identity tags in the disco#info
 response?  If you want this info, you can cache it on a node#v basis.

Oops. :)  You're right, an 'n' is not needed for this.

It feels weird to have the version in caps and the name in disco though.  
Perhaps the version would be better off in disco, too, but then maybe we'd 
rather not muck with disco..

-Justin


Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Peter Saint-Andre
Joe Hildebrand wrote:
 
 On Nov 8, 2007, at 4:24 PM, Peter Saint-Andre wrote:
 
 Yes it seems a bit funny to have a 'v' attribute:

 http://mail.jabber.org/pipermail/standards/2007-August/016680.html
 
 
 As usual, Rachel is the voice of reason.  

I know! I tried to convince her to run for XMPP Council but she wasn't
buying it. :(

 I don't mind her proposal;

Well either we're backward-compatible or we define a new namespace, at
which point people will send both, at which point we've got too many
bytes in our presence traffic. Ick.

 however, I still don't think the algorithm needs to be extensible.  If
 we pick one and stick to it:

Right. So SHA-1 forever. If we want something else, we define a new
protocol. Call it the SHA2K problem.

 c xmlns='http://jabber.org/protocol/caps'
node='http://exodus.jabberstudio.org/'
ver='0.9.1'
hash='8RovUdtOmiAjzj+xI7SK5BCw3A8='/

Er, that's for xmlns='urn:xmpp:caps', the non-backward-compatible
protocol that we won't pursue.

For xmlns='http://jabber.org/protocol/caps' I think we'd have:

c xmlns='http://jabber.org/protocol/caps'
   node='http://exodus.jabberstudio.org/'
   v='0.9.1'
   ver='8RovUdtOmiAjzj+xI7SK5BCw3A8='/

 1.3 clients will disco to node http://exodus.jabberstudio.org/#0.9.1.
 1.5 clients will disco to node 8RovUdtOmiAjzj+xI7SK5BCw3A8=.  

Right.

 Yes, I
 still think the queries need a node.  

We did that in 1.3 so we should do it in 1.5. Backward compatible.

 My new use case for that is that I
 might want to send different folks different caps, or different caps
 when I join a room or something.
 
 This has the downside of every implementation for the near future having
 to implement listening for two different nodes, which could be avoided
 if the has was in ver and the version was in v.

Right.

Peter

-- 
Peter Saint-Andre
https://stpeter.im/



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Joe Hildebrand


On Nov 8, 2007, at 4:49 PM, Olivier Goffart wrote:

I think they should not use that XEP for that.


Too late.


There is jabber:iq:version for that.


I hope not.  That was the whole reason we wrote this XEP in the first  
place!


And if we want to avoid sending a jabber:iq:version to each, we  
should come
with a replacement that goes in the presence stanza (and would also  
benefit

from server optimisations)


See section 7 of XEP 115.

However, from an user perspective... what is the interest of showing  
different

icon per client.


Imagine that it's a presence-only device, like a phone, for example.

Remember that old client using version 1.3 of the xep use node#ver  
as key in
their cache.  So if two different clients (or different versions)  
share the
same disco#info, they will not be able to share the cache entry,  
even if the
hash is the same.  (one may argue this is negligible, ok, but this  
is easy to

avoid anyway)


That's why I relented on which node new clients send to.  They can  
send to node=hash, rather than node=node#hash, so that caching can be  
cross-client.


--
Joe Hildebrand



Re: [Standards] XEP-0115: version 1.5 revisited

2007-11-08 Thread Peter Saint-Andre
Olivier Goffart wrote:
 Le jeudi 8 novembre 2007, Peter Saint-Andre a écrit :
 
 5. Objections to the Council change in version 1.4 specifying that the
 value of the 'node' attribute should be ProductURL#SoftwareVersion.
 
 I think we should not recommend to add the version number in the node at all, 
 specially if the version may change while the disco#info does not.

Why not? It's not clear to me what the problem is.

 I even think we should specify a fixed value for the node attribute.
 such as  node=jabber.org/caps-x
 So client that support the 1.3 version of the XEP still works.

In 1.3 the nodes were things like:

http://exodus.jabberstudio.org/caps
http://psi-im.org/caps

So essentially it was a special URL at the website of the client project
or company.

How exactly do 1.3 clients break if in 1.4+ the nodes are things like:

http://code.google.com/p/exodus/#0.9.1
http://psi-im.org/#0.11

Again it's a special URL at the software website. The only potential
problem is the inclusion of the '#' character, but we can change it (as
we did before) to be ';' instead of '#'. In fact I think we should do
that for backward compatibility.

Hardcoding the node so that it is the same for all clients seems like a
bad idea.

 I consider that we recommend to use the version number in the node since 
 examples show it.

Correct. That's what the Council decided before we published 1.4

Peter

-- 
Peter Saint-Andre
https://stpeter.im/




smime.p7s
Description: S/MIME Cryptographic Signature