Assume a scenario in which a user is online with a single resource, stream management enabled, then gets disconnected abruptly, leaving the SM session in a resumable state, and a stanza arrives. What now is the expected behavior if the same user establishes a new stream, but does not resume the session but performs resource binding instead?
larmahas left
larmahas joined
Daniel
The sm session 'times out' all stanzas get bounced (or what ever your server is doing)
Daniel
What would the alternative be?
Zash
Like, they closed their laptop, woke up their phone and left the office?
Guus
Well, for stanzas that were addressed to a bare JID, it might be desirable to re-evaluate the routing logic, delivering it to the newly established session.
Zash
I suspect this is a full week topic for a summit
Guus
and in case the new session rebinds using the same resource... maybe deliver all stanzas to that session?
Daniel
> and in case the new session rebinds using the same resource... maybe deliver all stanzas to that session?
That would maybe work for some messages. But nothing else
Zash
And messages usually go to the bare jid now, and you can get it from MAM
Daniel
Yes. So anything that is delivered to mam you might not want to actually bounce. I was just saying do what ever you do when you time out
Guus
ejabberd has an option that can be used to have all queued messages to be resend after SM times out (resend_on_timeout)
Ge0rG
Guus: that's bad if you have multiple clients.
Ge0rG
Guus: the existing implementations all suck
flow
and potentially breaks the stable order guarantee of XMPP (depending on your PoV)
Ge0rG
the right thing to do would be to do server-side tracking of individual clients, based on their hopefully constant-over-time resource string
Maxhas left
Maxhas joined
Guus
That's basically what I suggested, right? When resource binding on the same resource... do magic.
Ge0rG
Guus: indeed, yes. But you can't know how much of the old session actually already arrived at that device, unless it attempts to resume
Ge0rG
my client won't honor the resume timeout value and just attempt to resume always, if it has a previous session
Guus
Ge0rG That's very true.
Guus
problem here is that this client doesn't keep track of the old session metadata if it crashes unexpectedly.
Guus
(unsure if that's fixable on their end - that seems to be the preferred approach to me)
Ge0rG
Guus: that's exactly what remains unsolved. Or you use MAM
jonas’
use MAM
jonas’
better than guessing
Daniel
I use MAM
jonas’
or churning the disk by persisting the entire stream state to disk on every. single. stanza.
Ge0rG
Guus: with MAM, as Daniel said, the server should drop all message stanzas from the old session when destroying it, and not bounce them
Daniel
> or churning the disk by persisting the entire stream state to disk on every. single. stanza.
I always wanted to write an iOS client that does that
Ge0rG
(unfortunately, not all servers do that yet)
Daniel
I don't think that's too unreasonable if you plan it from the beginning and design the app around it
Ge0rG
Daniel: yes
Ge0rG
Daniel: all we need is a full redesign of the complete xmpp client stack
Ge0rG
it needs to be serializable in an efficient way, ideally with some kind of journal
Ge0rG
Android could also profit from that.
mukt2has joined
Guus
flow I'm getting this from the client developers. Do you know if that's true?
> Another possible solution to the problem is to persist the stream id, session id and the number of acknowledged messages from the server and the client. This is not supported by SMACK by default,
Guus
ah, wait, I read that as "smack can't resume" but maybe they're saying "smack doesn't persist to disk"
Daniel
Well it's not as easy as storing those three values
bearhas joined
Ge0rG
Guus: yes, smack can resume, but not from disk
jonas’
you also need to store all presence state
Ge0rG
Guus: you'd need to serialize the XMPPTCPConnection and everything related to it to disk as well
flow
depends, no?
flow
but yes, you usually want to resurrect the XMPPTCPConnection with the same listeners setup as before it was suspended to persistent storage
mukt2has left
flow
but that does not necessarily require to serialize XMPPTCPConnection
Ge0rG
no... just most of its members.
Daniel
Well all pending stanza, all pending callbacks to iqs
Daniel
All state
Daniel
Like presence, mucs etc
Ge0rG
Guus: so you can't easily hibernate smack to disk and reload afterwards.
Ge0rG
Guus: but you can hope that your app won't be killed
Guus
and if you could, you'd have to do that preemptively on ever.single.stanza (or how did Jonas' put it?)
flow
Guus, what's the problem you are trying to solve (couldn't find it in the backlog)
Ge0rG
Guus: yes, after each change of the internal state (e.g. receiving or sending a stanza) you'd have to persist everything
Guus
flow just a question I received over email: client gets killed, the restart it, but won't get messages that have been delivered while offline (unless they do MAM).
Daniel
Ge0rG: well you have to persist the delta
Ge0rG
Daniel: but with smack, you need to manually extract the delta from the state of dozens of weakly linked objects
Daniel
Yeah don't use smack for that
flow
Guus, use MAM ;)
Guus
Yeah, that's been my conclusion too. Still, I'm wondering if it makes sense to have some kind of option like ejabberd's 'resend' - but instead, I think I'd prefer to send certain messages to a new session with the same resource - something like that.
Guus
probably bad for MUC though
jonas’
bad for a lot of things assuming state
flow
I also think it would violate the stable order requirement of the RFC (but that may not be an issue for your use-case)
Guus
I'd at the very least not enable this by default.
Guus
just trying to think of a solution that'd be helpful for certain use-cases.
Ge0rG
Guus: you can't do that generally because you would end up re-sending all the stanzas that already were delivered but not acked
Ge0rG
Guus: use MAM.
Ge0rG
Guus: or, use eternal 0198 sessions ;)
Ge0rG
(no, that doesn't solve the client crash problem)
Guus
You're right - but not every user is as obsessed with being 100.0% right all of the time as we are. 🙂
Guus
some duplication might be acceptable.
Guus
(to them)
Guus
And yes, MAM is the proper way to go - but that would probably make them spend more development resources than what they have available.
bearhas left
Guus
(afk - feeding the offspring)
jonas’
Guus, some SM implementations will also feed the unacked messages to offline store when the SM session gets terminated.
jonas’
that may be a viable alternative?
Ge0rG
yes, if you are guaranteed to only have one client per user, you can use something like prosody's mod_smacks_offline
also downscaling by the bridge becomes impossible with e2ee ✏
Ge0rG
which jitsi meet doesn't do AFAIK
Ge0rG
the right thing would be to create multiple progressive streams, where you get the lowest res with stream 0, the medium res with stream 0+1 and the highest res with 0+1+2
Ge0rG
but that would require a progressive video codec of sorts.
flow
do those exists in practice?
jonas’
jitsi-videobridge (the software) does not do recoding, but there’s allegedly a hardware thing which does
bearhas left
Danielhas left
rionhas left
rionhas joined
Danielhas joined
Studenthas joined
adiaholic_has left
adiaholic_has joined
paulhas left
werdanhas joined
paulhas joined
Shellhas left
adiaholic_has left
Shellhas joined
Neustradamus
What is the solution about XMPP TLS S2S problems for XMPP clients?
Example: When an user@xmpp1.tld tries to join a mucroom@conference.xmpp2.tld, it is not possible and the XMPP client has not an error.
does it make sense to flip the rsm page, and not the whole mam filter result?
lovetox
notice this is not the same outcome
lorddavidiiihas left
lovetox
i fail to see the use case for flipping the page
lorddavidiiihas joined
lovetox
i does not get you the filter result in the reverse order
lovetox
it does only get you the first page of the filter result, which you dont actually want, we want the last page, in reverse order
jonas’
MattJ, the "Client uses two discovered query fields in a query" example differs from the previous example in the value of the @var attributes, is that intentional?
LNJhas left
bearhas left
calvinhas left
calvinhas joined
alexishas left
pep.
MattJ, does that mean pubsub mam is going to be defined somewhere else?
Zash
Maybe randomize the subdomain in `<iq to='pubsub.shakespeare.lit' type='set' id='juliet1'>` a bit more?
flow
pep does it matter where it will potentially be defined?
pep.
flow, it matters that it's defined, as with this PR it doesn't seem to be defined anywhere anymore
sonnyhas joined
Zash
> I have a few things to do before I PR (such as finishing off the other documents I split stuff out to)
pep. ↑
calvinhas left
calvinhas joined
pep.
ok
pep.
waiting for updates then
flow
pep., was it defined before in xep313? IIRC it was just something like "ya'll can do MAM on PubSub, but I don't tell you exactly how<period>"
Zash
There's some precedent in splitting a XEP since at least MIX
Zash
flow, didn't say a lot about it, but there was a few lines
pep.
flow, not saying it was perfect but at least it was a thing :P
pep.
I'm sure it could be defined a lot better
flow
I think I would prefer if xep313 simply stated that MAM on PubSub is a possiblity but the exact specification is outside the scope if this XEP
flow
hmm, not sure about that <flip-page/> thing…
flow
hope it's optional
lovetox
i think i understand now the flip page thing, you are supposed to request the last page with rsm via </before> then flip that page
lovetox
and why do you hope flow its optional? are you a server developer that needs to implement that ?
lovetox
MattJ, what is the reason instead of namespace bumping this to mam:3, making it a disco feature?
flow
lovetox, I consider a minimal mandatory-to-implement feature set to be benefical, as it allows to ramp up a new implementation fast
flow
sure there are counterarguments, and one has to carefully select which feature to make optional
flow
but <flip-page/> appears to be a good candidate
Zash
So that's mam:2, the new stuff is mam:2#extended
pep.
Zash, but it's essentially the same
pep.
mam:3 or mam:2 + mam:2#extended
flow
+A client that wishes to use flipped pages MUST ensure that the server
+advertises the \'urn:xmpp:mam:2\#extended\' feature.
pep.
mam:2#extended is just the new mam:3
Zash
pep., adding support doesn't break all existing clients
flow
pep I don't think it is
Zash
to the server, that is
flow
#extended sounds like an optional extension to mam:2
lovetox
Zash adding the extended things does not brak clients
lovetox
as it says it EXTENDS the spec
pep.
It wouldn't break all clients indeed, just continue supporting mam:2 just like you're going to do anyway
lovetox
there is no change to existing functionality
Zash
lovetox, that's what I said. bumping the namespace to :3 breaks everything, unless you do both
!XSF_Martinhas left
Zash
If you have a mam:2 implementation, adding mam:2#extended doesn't affect anyone
pep.
Zash, because you're still advertizing for mam:2. Which you can continue doing
lovetox
it also affects no one if you just announce mam:3
!XSF_Martinhas joined
flow
well, it hopefully affects the counterparty that could talk #extended with you
MattJ
Doing both has turned out to be a pain i n pretty much every implementation I've seen (when we bumped other namespaces)
flow
lovetox, as long as you still support mam:2
pep.
MattJ, I genuinely don't get the difference
lovetox
flow its just a namespace there is nothing the server needs to do different
pep.
Just that it's not explicit it's a new thing, you're just adding a new feature and now I've got to check both
lovetox
its just, if i get a IQ with mam:3 just treat it like mam:2
lovetox
finished
MattJ
pep.: you don't have to check both
MattJ
Just one
pep.
Yeah so it's just mam:3
MattJ
No
flow
honestly, and I haven't read that diff completely so I may not seeing the whole picture, but I am surprised that the #extended thing causes any discussion
pep.
Or undercovered mam:3 :P
pep.
flow, to me it's not about mam, it's about how things are done in general
lovetox
let me guess flow you never implemented mam?
flow
If the #extended thing is that I think it is, an optional extension to the mam we have, than that appears very sensible to me
flow
instead of doing mam:3
flow
lovetox, I did the MAM implementation for Smack
pep.
Feels like people are just afraid to increase a number
flow
and wrote the unit and integration tests
flow
pep., of course we are afraid
lovetox
then i really dont get how you dont understand how this is bad
pep.
Why? It's the exact same thing
lovetox
but let me tell you why
flow
namespace bumps are not for free
flow
smack is still on mam:1 fwiw
pep.
flow, breaking changes are not free
lovetox
this is not a simple syntax change in the xep, this extended functionality allows clients to do mam in a totally different way
flow
pep., right that is why they have to be avoided when sensible
lovetox
its a change how archiving is done on client side in fundamental way
pep.
namespace bump doesn't equal breaking changes
lovetox
to say its optional on server side
lovetox
means that server dont have to adopt it
lovetox
so that means i have to support mam:2 without extended
pep.
Right that also..
lovetox
which is now not just a simple syntax change
lovetox
no i have to maintain a totally different way of doing mam
Zash
Has everyone forgotten the pain of mam:0 vs mam:1 vs mam:2 so soon?
lovetox
what for?, these changes are trivial for servers
pdurbinhas joined
lovetox
this is just some Mysql querys added differently
Zash
lovetox: haha no
flow
pep, I am sorry I fail to see how a namespace bump von mam:2 to mam:3 is the exact same thing as an optional extension to mam:2
pep.
one could say mam:3 is an optional extension over mam:2 :)
flow
mam:3 would be by definition a breaking change, as it requires a namespace bump
lovetox
flow the changes here proposed are long wished things of client developers
lovetox
this is not some optional thing that is nice
lovetox
these are changes the community deems necessary for an archiving xep
lovetox
there is really no reason to make this optional
lovetox
especially for a experimental xep
flow
there is also no reason to make it not optional?
lovetox
the only reason something like this would be optional, if there are reasons like we believe there are implementations who simply cant implement the changes because of tecnical problems
MattJ
Only that it is good features that people want to use
flow
lovetox, I mean if what you and pep want is that servers are going to announce mam:2 *and* mam:3 simultanously, then I still think that this is far more effort to support than annoucning mam:2 and mam:2#extensions
flow
because some protocol operations now need to be available under them mam:2 and mam:3 namespace
lovetox
no flow same operations can be available under both
lovetox
its no difference
lovetox
its a subset please
flow
that's what I said, some operations need to be avaialble under both namespace
lovetox
its the same operation
lovetox
do you really think they duplicate the code because of a mam:3 string in an iq
flow
no, but that does mean that it will become less ugly✎
flow
no, but that doesn't mean that it will become less ugly ✏
Zash
lovetox, yes, bunch of duplication and more complex code
!XSF_Martinhas left
lovetox
ok but thats of no concern, this is the XMPP Archving XEP this is not some sideshow where we make concessions, these are essential changes
lovetox
every client needs that
flow
then every client will implement that
!XSF_Martinhas joined
lovetox
its nothing that some weird use cases need and so we make it optional
Zash
seems to me you're making very broad assumptions
lovetox
if you tell someone XMPP has a archiving xep where you cant even download a single specific message
Shellhas left
lovetox
and thats an OPTIONAL feature, some servers implement
lovetox
thats insane
Shellhas joined
MattJ
We're still in a world where some servers don't support it at all :)
lovetox
we dont need to get more fragmented, we need to move faster and decisive
MattJ
As far as I'm concerned, servers would be stupid not to implement the #extended stuff, but we can't force them to any more than we can force them to implement any XEP
pdurbinhas left
flow
lovetox, specifying something as mandatory does not mean that implementations will suddenly implement it. In fact, it will cause implementations that only implement a subset of the mandatory to implement features, which causes much more main. Features get implemented because someone decides that it is worth the effort.✎
flow
lovetox, specifying something as mandatory does not mean that implementations will suddenly implement it. In fact, it will cause implementations that only implement a subset of the mandatory to implement features, which causes much more pain. Features get implemented because someone decides that it is worth the effort. ✏
MattJ
lovetox: btw, I added page flipping for you... if you don't want it I can take it back out ;)
MattJ
You and a couple of people who complained anyway
lovetox
no its good, i just wondered if its not to complicated to do the <before> and <flip-page> together
flow
I'd always assume that simply requesting a small page size would be sufficient
lovetox
instead of just reverse the filter query
!XSF_Martinhas left
flow
but I am also always in favor of experimenting with new features
MattJ
There was a reason I did it on the page rather the results, I can't remember why... might be in my notes from last year somewhere✎
!XSF_Martinhas joined
MattJ
There was a reason I did it on the page rather than the results, I can't remember why... might be in my notes from last year somewhere ✏
lovetox
probably because of </before> in the rsm spec
lovetox
you can already request the last page of a query
MattJ
Yeah
lovetox
so you just have to flip that page to finish it
!XSF_Martinhas left
MattJ
I think that is logically simpler anyway
lovetox
but i guess we should mention that in the XEP
lovetox
because nobody will get this on their own
Yagizahas left
!XSF_Martinhas joined
lovetox
it would be simpler if people would now the </before> thing in RSM
MattJ
There is an example for that
lovetox
in your mam change?
lovetox
ok thats nice then
MattJ
Yes, unless it got lost
lovetox
too much changes, i probably missed it
MattJ
I'm planning a separate "How to MAM" document anyway
bearhas joined
lovetox
what i want to tell is, that this is a "additional" thing on the server, you just add some different sql querys if you encounter different filters
lovetox
but for clients its not just additional
lovetox
its either you write your impl with these futures, or without it
MattJ
I agree, the sensible thing is for clients to depend on #extended
lovetox
at least i believe that, have to do it :)
lovetox
ok correct MattJ so from a client perspective this is the same as depending on mam:3
lovetox
so from a client perspective this is the same, and optional not useful here
lovetox
so the question remains, is it useful for the server?
MattJ
Not really, no
MattJ
I don't see any reason for people to only implement 80% of the XEP
!XSF_Martinhas left
Zash
We already implement 80% of the XEP, because those 80% was 100% of the previous version of the XEP.
krauqhas left
MattJ
Obviously
!XSF_Martinhas joined
MattJ
But whether it is called #extended or :3 it makes no difference - people need to upgrade
krauqhas joined
jonas’
the difference is that you can re-use your code from :2
MattJ
I mean it makes no difference to whether people implement it or not
!XSF_Martinhas left
lovetox
i dont know the process but is that code discussion really something the XSF should care about?
Guus
Skipping over a lot of the conversation here: but is the flip-page directive something that adds real value? To me, it seems like a convenience for clients to not have to revert element orders if they want to. I wonder if that warrants added complexity to the protocol.
j.rhas left
!XSF_Martinhas joined
j.rhas joined
lovetox
Guus you cant invert the order
MattJ
Guus: that's a debate to have with lovetox and some others... you can bring it up on the list when I post it I guess
jonas’
you can, you just need to buffer the (MAM) stanzas first.
jonas’
but on-list is a better place for this indeed
!XSF_Martinhas left
lovetox
thats a fundamental change to how clients work jonas’
lovetox
we dont do that for literally anything
Zash
Do you know how <before/> is implemented in Prosody? ... by buffering the results and then flipping them.
MattJ
To how your client works :)
lovetox
stanzas are processed when they arrive
Guus
flip-page is only about order of elements in one RSM result, right?
!XSF_Martinhas joined
MattJ
Guus: yes
lovetox
Guus a RSM page has usually 100 stanzas
flow
Hmm, then shouldn't something like flip-page be part of RSM instead?
Guus
... not seeing the problem - unless the RSM pages are ungodly huge.
Guus
so - reduce the RSM size?
lovetox
then mam catchup is much slower ?
flow
Guus, I think something like flip-page really adds value over low latency connections
MattJ
flow: I considered that, but I don't want to bump RSM ;)
flow
MattJ, optional extension?
Zash
If you're doing infinite scroll and scroll up?
Guus
Okay, if it has real world benefits I'm happy to include it. Seems far-fetched to me, but then again, I'm no client builder 🙂
lovetox
also this means i have to download a 100 stanzas, before i can show the user the first
lovetox
seems like just not a good protocol
jonas’
slow connections is a valid point
Guus
Nah, just limit the max result set page size to 20 or somesuch?
lovetox
then you wait for 20 ..
jonas’
in other RSM cases it’s not as relevant (cc @ MattJ) because normally you get an RSM result page in a single stanza
flow
err, I meant high latency connections obviously
Guus
The entire point of having a page is that it offers a manageable bite size of data.
jonas’
Guus, then you have expensive round-trips. Flipping the result makes a lot of sense here.
MattJ
jonas’: yeah
jonas’
MAM is a splendid bulk operation from the client side
flow
but thinking about it a little more, I am actually not that sure if it adds value
!XSF_Martinhas left
flow
those 20 stanzas are all bundled
jonas’
Guus, especially on long-fat-links (high latency, lots of throughput) you want few roundtrips and lots of data. quite a bit of mobile links these days are like that, especially when you’re on the road: your packets are buffered somewhere and then you get a bunch of them back. roundtrips are expensive.
flow
and what's typical stanzas size? how long does it really take to receive 20 stanzas?
jonas’
flow, they don’t fit in a single TCP segment, so it can take arbitrarily long for the last (first) stanza to be delayed while you already have 19 others
!XSF_Martinhas joined
flow
true, if you not only have high latency but also packet loss
jonas’
or irregular high latency
jonas’
as you have on mobile links
Guus
I'm not dead-set against this - but how is this now a problem, and not in the past 10 years? Connectivity has improved, generally...
jonas’
you sometimes see sudden RTTs of 60s!
jonas’
Guus, it’s always been a problem
flow
as I said, I think <flip-page/> is a prime candidate of an optional feature. Not everyone may want or needs to implement it
jonas’
clients are just "crap" and sync from oldest messages first and not from newest first
jonas’
probably also because of stuff like this
flow
Guus, I'd argue bad connectiviy is probably more widespread
jonas’
when you sync from oldest, it doesn’t matter, but it’s also terrible UX
flow
if you think about all those smartphones in africe✎
flow
if you think about all those smartphones in africa ✏
jonas’
or germany
Guus
oh well. I'll take your word for it 🙂
jonas’
once you’re in an intercity train
Guus
#stayhome
Guus
(problem solved)
Guus
no wait, my parents' wifi.
MattJ
As far as I'm concerned it adds minimal value, but it makes lives for some people easier, so I'm fine with including it
lovetox
Sorry this is a messaging protocol and we discuss if its too much to ask from a archive to get the messages in the order you want them
lovetox
seriously lol
lovetox
download the archive and reverse them yourself
lovetox
ok
MattJ
lovetox: you just want SQL replication over XMPP ;)
Yagizahas joined
Guus
no, we're discussing if adding a feature that I thought was trivial to implement in code warrants added complexity in the protocol
jonas’
MattJ, don’t confuse lovetox with zinid
bearhas left
Guus
that is a relevant discussion, especially in a standards body.
Zash
MattJ: You mean XEP-0136
lovetox
Guus, its the simple use case, of loading messages while you scroll upwards in your messenger
lovetox
just think from a client point of view how you want to implement that
jonas’
MattJ, is the auto-pull of xeps working again?
lovetox
this is not someting exotic, ANY user expect the client to do this
lovetox
in a efficient fashion
Guus
lovetox as I already said: I'm happy to accept that this is less trivial as what I thought it was, going into this discussion.
!XSF_Martinhas left
MattJ
Most XMPP alternatives will be using HTTP and JSON. Trust me, they don't start displaying results until they receive the full result set from the server
!XSF_Martinhas joined
jonas’
MattJ, but that also means that they can handle latency spikes much better, since they have regular TCP restarts instead of having to deal with a TCP recovering from a minute of packet loss
Zash
Did someone say BOSH?
!XSF_Martinhas left
!XSF_Martinhas joined
MattJ
jonas’: I'd be surprised to see anyone using a TCP connection per request these days
jonas’
MattJ, I wouldn’t be surprised for them restarting a fresh TCP connection when the other one runs in a timeout
jonas’
when you do that with XMPP, you’re in a world of massive pain
jonas’
unless you’re very clever, but nobody wants to be that these das✎
jonas’
unless you’re very clever, but nobody wants to be that these days ✏
jonas’
(start a new session, SM-resume your other, suppesedly timed-out stream with your current local counters, discard the other stream once you got the resumption ACK)
flow
ahh muc-presence-versioning now in html, nice
flow
hmm, or not?
jonas’
I pushed the docker image, no idea if the pull is working
jonas’
hence 18:36:31 jonas’> MattJ, is the auto-pull of xeps working again?
MattJ
It's not
pep.
flow, "specifying something as mandatory does not mean that implementations will suddenly implement it" I totally agree. And I don't think this applies "we shall then make features optional". At least making something mandatory would tell implementors that these features are important
jonas’
MattJ, can you issue a manual pull then please?
jonas’
or, has board already decided about my iteam membership? ;)
MattJ
When I get back to my laptop, in an hour or however long it takes children to go to bed
jonas’
pep., I’m more in favour of having documents which give a rationale for the importance of a feature, instead of just relying on the MUST hammer
jonas’
MattJ, kthx
jonas’
say hello from the strange internet parrot people
MattJ
:)
flow
pep., why not simply tell the implementors that these features are important instead?
pep.
Well that's how you tell them it's important
pep.
"Ah btw that's what 90% of clients are going to use nowadays, but if you don't implement it it's fine don't worry"
pep.
Is how I see the optional thing
flow
pep., again, then why not simply tell the implementors that these feature are important to preven this?✎
flow
pep., again, then why not simply tell the implementors that these feature are important to prevent them from getting that impression? ✏
pep.
Suggestion for this year's CS, add namespaces to be supported. So that people don't claim they support mam:0 (or whatever NS that nobody uses anymore) and be done with it
lovetox
and then add it to the compliance suite :D
krauqhas left
lovetox
if i think about thats actually what i care for
krauqhas joined
lovetox
i want the server to know what they should implement
lovetox
and thats my fear that optional things get only implemented if i personally bug every server dev
pep.
yep
lovetox
so yes if we have a document that tells the server dev what he should actually implement to have a relevant impl, then i guess im fine with the XEP not mandating it
jonas’
in contrast to that, I bet you’ll find every mandatory thing of '45 or '60 implemented in all servers
pep.
hah
flow
otherwhise your fear would be that that big monohilitc everything-is-mandatory spec does not get implemented at all, or only partly (which would cause a lot of "fun")
pep.
Well quite a lot of MUSTs or SHOULDs are behind optional features
jonas’
discoverable partial support is better than only finding out about lack of support the hard way
pep.
flow, it's fine if the thing is still usable
pep.
But it's useless if it isn't
jonas’
which can either be a <service-unavailable/> / <feature-not-implemented/> (if you’re lucky), or different behaviour because an element was ignored.
flow
pep., I am sorry pep, but I can't follow
pep.
"I implemented all the mandatory bits! No clients can use my implementation!"
pep.
(all and only*)
stpeterhas joined
stpeterhas left
werdanhas left
Yagizahas left
Nekithas joined
werdanhas joined
eevvoorhas joined
werdanhas left
bearhas joined
bearhas left
Douglas Terabytehas left
Douglas Terabytehas joined
adiaholic_has left
adiaholic_has joined
j.rhas left
DebXWoodyhas left
j.rhas joined
pdurbinhas joined
rionhas left
LNJhas joined
pdurbinhas left
rionhas joined
bearhas joined
andrey.ghas left
bearhas left
jonas’
MattJ, poke
andrey.ghas joined
adiaholic_has left
adiaholic_has joined
mukt2has joined
Marchas left
Marchas joined
krauqhas left
krauqhas joined
mukt2has left
Neustradamus
Two "Version 1.0.0 of XEP-0363" in next Newsletter