Why was XEP-0353 (Jingle Message Initiation) namespace version downgraded in v0.6.0? There are new things (like <ringing>, use or the "store" hint) that were not presend in 0.3.1. I
have to update my implementation, and normally namespace version is an indicator of that.
Andrzejhas joined
goffi
also the XEP talks about "media type" which comes from XEP-0167, but it's really useful with other non A/V calls use cases (like file transfer). Would be nice to make it more explicit.
Menelhas left
MattJ
goffi, as the extension is already deployed, it was decided that backwards-incompatible changes were not desirable
asterixhas left
MattJ
So the latest version should be compatible with the deployed version
nicomuchas left
petrescatraianhas left
petrescatraianhas joined
asterixhas joined
jgarthas left
goffi
I think it's not, the store hint and <ringing> element where not present.
goffi
Anyway I'm updating now
goffi
were not present*
goffi
that's right that this extension it's delicate at there is not discovery, so that would mean sending one <message> for each supported namespace.
goffi
So I kind of get why this has been done this way.
Arnehas joined
MattJ
Store hint is in another namespace anyway. The addition of <ringing/> is indeed "technically" wrong, but it's optional and hopefully a lesser evil than entirely breaking compatibility with existing clients.
gooyahas joined
ZeoZhas left
sdjlbmrthas joined
nicolahas left
nicolahas joined
flow
a store hint can be added without a namespace version bump, as its just a hint
pep.
Mandating a store hint though isn't the same thing is "just adding a store hint", right✎
Arnehas left
flow
I think it is for the question whether or not a namespace bump is required
MattJ
Sure. New (non-editorial) XEP versions can change requirements without changing the protocol syntax, and only syntax changes require namespace changes.
flow
I am sorry, "synatx" appears to be quite abstract in this discussion
pep.
Mandating a store hint though isn't the same thing as "just adding a store hint", right ✏
flow
The question of bumping the namespace is always "does something break if we do not bump it"?
flow
which is also quite abstract
flow
<ringing/> seems to be mandated, but not by RFC keywords. I wonder if something would break if older impls under the same namespace wouldn't send it
flow
I would hope not, but this seems to be borderline
flow
but I am happy to see urn:xmpp:hints back in buisness \o/
Zash
What happens if thing on the new version talks to thing on the old version?
nicolahas left
Arnehas joined
antranigvhas joined
bhavyhas left
Arnehas left
Arnehas joined
flow
goffi, maybe you could help to answer this question: do you need to upgrade your implemention so that it follows the current spec or does something break if your implementation speaks to a newer-spec implementation?
Arnehas left
lissinehas left
lissinehas joined
lissinehas left
goffi
flow: I have other issues in my implementation (the media type was missing notably), resulting in issues, so it was broken anyway in my case.
me9has joined
resolihas left
me9has left
me9has joined
me9has left
flow
goffi, I see, thanks for sharing :)
bhavyhas joined
chipmnkhas left
chipmnkhas joined
papatutuwawahas joined
BASSGODhas left
nicolahas joined
neshtaxmpphas left
neshtaxmpphas joined
nicolahas left
BASSGODhas joined
sdjlbmrthas left
BASSGODhas left
ZeoZhas joined
resolihas joined
no_1729has left
no_1729has joined
Half-Shothas left
Matthewhas left
uhoreghas left
homebeachhas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
no_1729has left
BASSGODhas joined
no_1729has joined
lissinehas joined
Arnehas joined
Arnehas left
sdjlbmrthas joined
Arnehas joined
Arnehas left
Danielhas left
Danielhas joined
nicolahas joined
lissinehas left
Menelhas joined
lissinehas joined
lissinehas left
lissinehas joined
stphas joined
stphas left
resolihas left
singpolymahas left
singpolymahas joined
singpolyma
Adding elements shouldn't require a namespace change, surely? Rather removing, renaming, or changing the semantics of existing ones should
Zash
As a general rule, I would think so, yeah.
Zash
Unless something really bad happens if the receiving entity ignores a new element.
MSavoritias (fae,ve)has left
Arnehas joined
MattJ
> Adding elements shouldn't require a namespace change, surely?
This is not clear. There is an argument for immutable namespaces, and some implementations may validate or otherwise depend on adherence to a known schema. That most implementations just look for and pluck out elements they are expecting is not necessarily a fundamental design choice of XMPP (ignoring unknown namespaces is, explicitly).
Arnehas left
Zash
Historically, we haven't taken schemas _that_ seriously.
Zash
And practically, it'd be pretty painful for minor changes.
MattJ
Yeah, but let's admit that this is mostly laziness and lack of nice tooling, rather than an explicit choice :)
Zash
Agree
MattJ
and there have always been some projects doing stuff with schemas
singpolymahas left
singpolymahas joined
resolihas joined
MattJ
I'm not against the addition of <ringing/>, to be clear. I think extending existing namespaces is something we shouldn't make a habit of, but sometimes the alternative options are simply worse.
lissinehas left
Arnehas joined
Zash
Part of the problem is mismatch between XEP status and deployment status, I think. I.e. Experimental things getting implemented and deployed everywhere without advancing to Draft.
lissinehas joined
singpolyma
I think changing namespace is basically always bad, but sometimes necessary, since it destroys forward compatibility and makes back-compat take a bunch more code. Ref all my code that looks for one of three jingle namespaces and then treats the elements exactly the same no matter which of the three it finds...
pep.
"some implementations may validate or otherwise depend on adherence to a known schema" < This, yes.
test4dhas joined
pep.
xmpp-parsers checks strictly, unless specified like bookmark2's <extensions/>
fwiw this has helped uncover some bugs already in other implementations ✏
singpolyma
You should be able to check <extensions/> strictly, since it can contain no children in it's own namespace
pep.
True
singpolyma
IMO schemas are descriptive, especially pre-Final status for XEP. Doesn't mean not useful, but if a client barfs on an unknown tag being present instead of ignoring it, especially on non-Final namespace, that's asking for trouble
MSavoritias (fae,ve)has joined
pep.
Relatedly, recently I was looking at mentions (372), and a proposed change for referencing something else than <body/> completly breaks this. That is, the possibility to add an "id" attribute on any other element to refer to it via the <reference/> tag
singpolyma
And I already live with the pain if namespaces that were changed too often (like the three identical jingle ones)
singpolyma
pep.: Sounds like an actual use case for namespaced attribute?
pep.
Well stuff like this is generally negociated.
papatutuwawahas left
pep.
For example in 463, I have introduced a namespace attribute on <{muc}x/> in the reply from the server, but that's only if the client signals it knows the protocol✎
pep.
For example in 463, I have introduced a namespaced attribute on <{muc}x/> in the reply from the server, but that's only if the client signals it knows the protocol ✏
pep.
But maybe that's a use-case for these yeah.. even not negociated
BASSGODhas left
pep.
But then all hail breaks loose.. if anything can be added anywhere. Isn't it that extensible pieces are generally defined extensible preventively? Or negociated.
singpolyma
Well new namespace things can surely be added anywhere. And if implementing a pre-Final protocol one thing expect it is perhaps not... final. IMO✎
singpolyma
Well new namespace things can surely be added anywhere. And if implementing a pre-Final protocol one should expect it is perhaps not... final. IMO ✏
singpolyma
Except in some cases where the spec really says do not I guess, like if must have only one child no matter the namespace and data form value must have no element children of any kind
pep.
Unless negociated*
Arnehas left
Arnehas joined
kinetikhas left
pep.
Anything is possible anyway when negociated
papatutuwawahas joined
raucaohas left
kinetikhas joined
raucaohas joined
BASSGODhas joined
*IM*has left
*IM*has joined
Wojtekhas joined
Arnehas left
lissinehas left
Arnehas joined
Maxencehas left
Maxencehas joined
Maxencehas left
Maxencehas joined
asterixhas left
asterixhas joined
neshtaxmpphas left
neshtaxmpphas joined
resolihas left
BASSGODhas left
wladmishas left
sdjlbmrthas left
wladmishas joined
Rebeldhas joined
SteveFhas left
BASSGODhas joined
Maxencehas left
Maxencehas joined
qyhas left
qyhas joined
jgarthas joined
resolihas joined
Maxencehas left
Maxencehas joined
SteveFhas joined
inkyhas left
asterixhas left
snowhas joined
asterixhas joined
Half-Shothas left
Matthewhas left
homebeachhas left
uhoreghas left
Half-Shothas joined
Matthewhas joined
homebeachhas joined
uhoreghas joined
mathieuihas left
mathieuihas joined
lissinehas joined
Arnehas left
flow
singpolyma, do you see a better alternative than bumping the jingle jingle namespace (three times)?
neoxhas left
singpolyma
Hello all, FOSSY conference has put out their Call for Booths now as well: https://2023.fossy.us/call-for-booths/
While I can apply for an XMPP booth as a community project, I think it might be a more impactful application if it were an "XSF booth" such that it is both a community project and a non-profit org. So I'm wondering if it would be possible to do this? All I really need is someone on board to say "yes" I guess since I'm not asking anyone to do anything really, happy to provide materials and organize volunteers for the booth etc myself
Arnehas joined
singpolyma
flow: I would have to dive into why the namespace was bumped to be sure
flow
I am also not sure why we should not be able to add unnamespaced attributes (and namespaced) elements later on without a namespace bump
flow
under the assumption that those additional attributes/elements can be ignored
Kev
> Historically, we haven't taken schemas _that_ seriously.
Just because the XEP schemas aren't great, doesn't mean that someone can't produce a schema from the normative text and validate on that. Because that sounds like the sort of thing people might be hypothetically doing.
flow
fwiw, I take schemas seriously :)
flow
I think people mix two aspects of schema validation: validating things the schema describes and validating things the schema does not describe
stphas joined
Zash
Hm, doesn't affect the holy commandment of "Ignore what thou doth not understandeth" ?
Kev
It does, because you understand the namespace, and what you received should not be in it.
Zash
(Whether you're doing schema validation or fuzzy `e.get(name, namespace)`
flow
while IIRC XML schema's usually forbid extending the XML with attributes and elements not described by the schema, this is some limitation that we in XMPP should not follow, as it makes it impossible to extend an existing protocol without unnecessarily (from the protocols pov) namespace
Arnehas left
bhavyhas left
singpolyma
I suppose there's also no reason a XEP can't define a new element in a new namepace and not change the namespace for existing elements
Kev
> I suppose there's also no reason a XEP can't define a new element in a new namepace and not change the namespace for existing elements
Yes.
MattJ
This is what we did in XEP-0313 not too long ago
Kev
Other places too.
Arnehas joined
singpolyma
that would be fine. I just dislike changing for existing elements when there is no breaking change to how they are used. new elements in new namespaces vs existing namespaces is the same either way to me