XMPP Council - 2019-07-31


  1. dwd

    Finally getting to Agenda. Sorry for the lateness.

  2. dwd

    Doesn't appear that we have anything new to vote on, though - anyone else know of anything?

  3. jonas’

    we do

  4. jonas’

    we missed that last week, too

  5. jonas’

    give me a sec

  6. jonas’

    https://github.com/xsf/xeps/pull/801

  7. jonas’

    also this: https://github.com/xsf/xeps/pull/803

  8. Ge0rG

    dwd: I'm not sure how much sense it makes to continue last week's discussion.

  9. Ge0rG

    Regarding message references, that is. I've written a response to the Reactions thread which actually summarizes my opinions on that specific topic

  10. Ge0rG

    just in time for the Council meeting, my power and internet access has been restored.

  11. Kev

    Congratulations.

  12. dwd

    You have the power!

  13. jonas’

    .

  14. Kev

    I'm currently considering blocking Message Reactions.

  15. Kev

    Does that make me a bad person?

  16. jonas’

    why?

  17. jonas’

    (I seriously considered blocking, too)

  18. jonas’

    and I may still be swayed

  19. Ge0rG

    Kev: the important question is: does not-blocking it make you a good person?

  20. Zash

    Kev: Depends on the rationale for blocking?

  21. dwd

    It's time!

  22. dwd

    (Well, actually, it's late!)

  23. Kev

    "This is definitely not the Right Way to do this, as we need a general way of referencing a previous message for assorted things, of which reactions are only one, and to use that everywhere, while the reactions syntax is not reusable. This mechanism could be references, or could be attaching, but a reactions-only syntax is definitely unhelpful when we need to be collating all the different types of meta-data responses and exposing them in archives. As-is at the moment, without that half of the puzzle solved (such as the collation stuff from the Summit), reactions are limited. I’m very concerned that not doing it Right at first when it goes Experimental is going to lead to an situation where it gets deployed and is almost impossible to fix the holes later due to inertia-once-implemented. "

  24. dwd

    1) Roll Call

  25. Kev

    I'm here.

  26. Kev

    (Above is the text in my votes email that I've not sent because I can't decide if I'm -0 or -1)

  27. Link Mauve

    I’m here too.

  28. Ge0rG

    I've got the power.

  29. jonas’

    I’m here

  30. jonas’

    can we jump straight into that discussion? because I have some opinion on that

  31. Ge0rG

    yes please.

  32. dwd

    jonas’, Not ideally, no. But AOB certainly.

  33. jonas’

    dwd, this *is* about outstanding votes...

  34. jonas’

    but ok

  35. dwd

    2) Agenda Bashing

  36. Kev

    I'd like to add an item (3) about reactions please.

  37. Link Mauve

    Kev, my rationale for +1ing it was to get that sorted out once we are decided on an attaching mechanism.

  38. Kev

    :)

  39. jonas’

    dwd, https://github.com/xsf/xeps/pull/801 https://github.com/xsf/xeps/pull/803

  40. Link Mauve

    Which would change 0308 and some other ones too.

  41. dwd

    I don't mind when we talk abbout reactions, happy to do so in (5) or (7) though.

  42. Link Mauve

    Ack.

  43. dwd

    jonas’, Acks.

  44. dwd

    3) Activity Summary

  45. dwd

    Noting:

  46. dwd

    * New XEP-0420 (Stanza Content Encryption) published. * Last Calls open for XEP-0353 and XEP-0300, both due to close on 13th August.

  47. Ge0rG

    as long as it's not in (6)

  48. Kev

    (Link Mauve: I can see an argument for allowing it through. It's the usual argument that if it's not obviously broken (or duplicating) it should be let through - I subscribe to that argument. Just in this case my suspicion is that we'll see quick adoption of this as-written, and it'll be an interop nightmare later.)

  49. dwd

    So please join in the Last Calls.

  50. dwd

    4) Items for a vote:

  51. jonas’

    I’d like to formally apologize for the delay in publishing those changes (editor hat); my mail client was... messed up to the point that I didn’t get new mail unless I restarted it twice, sacrificed a goat and then pressed F5 right when the last drop of... you know the deal. It should be fixed now and I can continue to work properly.

  52. dwd

    jonas’, Am I write in thinking we have to discuss both of those together?

  53. jonas’

    dwd, no you’re not

  54. dwd

    jonas’, Also, it's an MUA. All MUAs are terrible.

  55. jonas’

    one is about obsoleting the CS '18, one is about a patch for XEP-0368

  56. dwd

    Oh, they weren't the ones I was expecting.

  57. Kev

    Isn't 801 already approved, or did I miss this?

  58. jonas’

    Kev, don’t confuse it with https://github.com/xsf/xeps/pull/796

  59. Kev

    How could I?

  60. dwd

    a) https://github.com/xsf/xeps/pull/801

  61. jonas’

    which was indeed approved, but which I (editor) deferred intentionally so that council gets a chance to discuss 801

  62. Kev

    I find 801 and 796 somewhat contradictory.

  63. jonas’

    (I also asked the author of #796 and they were ok with that)

  64. jonas’

    they are

  65. Link Mauve

    So, according to the thread on XEP-0368 which I re-read just earlier, I’m strongly in favour of 796.

  66. Kev

    (There's also a typo in 801 - s/it's/its/)

  67. jonas’

    Observation: The community seems to have at least three differing opinions on how XEP-0368 should work

  68. dwd

    I'm not sure I understand #801.

  69. jonas’

    dwd, I think #801 is a fallback chain of xmpps-server -> xmpp-server -> A/AAAA, while #796 was (xmpps-server + xmpp-server) -> A/AAAA

  70. dwd

    It seems to imply you'd look up _xmpps and only if that returns a '.' look up _xmpp.

  71. Ge0rG

    796: if there is an SRV record, do not try to connect via A/AAAA 801: if there is an SRV record, *do* try to connect via A/AAAA

  72. jonas’

    yeah, that, right

  73. Link Mauve

    The issue with 801 is that it assumes DNS can’t be trusted, in which case we can plain stop doing XMPP things because SRV and DNS are kind of required for that to work.

  74. Kev

    I don't entirely understand the rationale behind not trusting the DNS results, so using other DNS results in 801.

  75. jonas’

    Kev, exactly

  76. jonas’

    that doesn’t make sense to me either

  77. dwd

    Kev, Only trust the DNS results you like?

  78. jonas’

    I tried to argue that with the author in xsf@, to no avaail

  79. Link Mauve

    Also, defining the port fallback as “yolo” is not a good way to go at it.

  80. Kev

    dwd: It feels rather like principles...

  81. dwd

    There is an argument that one might inject a '.' record to _xmpps-* as a downgrade attack I suppose.

  82. jonas’

    yeah, the unspecified port choice is enough for me to -1 this

  83. Kev

    Yes, but if you control DNS to that extent, can't you do thes ame?

  84. Kev

    Yes, but if you control DNS to that extent, can't you do the same elsewhere?

  85. Kev

    And where has 443 appeared from as a valid fallback port when using A/AAAA?

  86. Zash

    Kev: That might be my fault :(

  87. jonas’

    I am -1 on #801, because: - the port choice is, as Link Mauve put it, "yolo", which isn’t really appropriate - It doesn’t clarify like the title suggests, but instead changes behaviour from the previous business rules - Contradicts how SRV works normally - Isn’t logically coherent (don’t trust DNS, but trust DNS)

  88. Kev

    I don't like 801 at all.

  89. Link Mauve

    Kev, I think the assumption is that you will then poke at random ports on a (cached?) AAAA record, until you get something which looks like a TLS endpoint.

  90. dwd

    Kev, Well, if you control DNS to that extent, #801 is insufficient protection anyway (and arguably makes things worse).

  91. Ge0rG

    I agree with jonas’ here, -1 because of the random ports dropped in.

  92. jonas’

    Kev, Zash was sarcastic in the mail thread and suggested 443 and someone took it seriously.

  93. Kev

    In comparison, 796 seems to be logical to me. Annoying that I'd have to change some of my logic in some places, but sensible.

  94. dwd

    I don't like possibly anything about #801, I think. -1.

  95. Link Mauve

    -1 too, for the same reasons as jonas’.

  96. Kev

    -1 to 801 for the reasons previously stated.

  97. Kev

    And +1 to 796, although my period has expired on it.

  98. dwd

    OK. Moving on.

  99. dwd

    b) https://github.com/xsf/xeps/pull/803

  100. Link Mauve

    I’m +1 on 796 too, if we’re back to it.

  101. dwd

    Obsolete Compliance Suites 2018

  102. Ge0rG

    +1 on 3b

  103. Link Mauve

    +1 too.

  104. jonas’

    +1 on obsoleting '18

  105. Kev

    I am +1 on the implied vote to Deprecated.

  106. Ge0rG

    dwd: you wanted to arrange something re CS2020.

  107. Kev

    I'm +1 on the vote from Deprecated to Obsolete.

  108. dwd

    Kev, Very good.

  109. dwd

    Ge0rG, Yes, you're quite right, I did - mea culpa.

  110. dwd

    I think I'm +1 on this too.

  111. jonas’

    I follow Kev here.

  112. dwd

    jonas’, Well, quite.

  113. dwd

    5) Outstanding Votes

  114. jonas’

    did we just have two votes which were immediately decided?

  115. dwd

    Happy to discuss Reactions here, since it's an outstanding one for Kev?

  116. dwd

    jonas’, Yes. Our dysfunctionality isn't working today.

  117. Link Mauve

    jonas’, indeed!

  118. Ge0rG

    this is outstanding.

  119. Kev

    So, I don't want to be a bastard here and prevent progress.

  120. jonas’

    okay, re Reactions: - I think that References isn’t a good choice for I think it needs to change drastically to be useful, especially for quick aggregation use-cases - Message attaching would work-for-me - I strictly think that we should *not* burden or hurt the original authors of the Reactions ProtoXEP by asking them to wait for/write a XEP for referencing. It’s not their fault we don’t have a coherent way to do that.

  121. Kev

    At the same time, my spidey-sense is telling me this is going to end badly if published.

  122. jonas’

    Kev, regarding that, I am still *very* tempted to -1 it based on the "body fallback" argument.

  123. jonas’

    for similar base reasons as you, actually

  124. Kev

    I would -1 it if it had a body fallback.

  125. Kev

    As that would be obviously broken.

  126. jonas’

    oh dear

  127. jonas’

    I’d like to have a high-bandwidth meeting on that topic

  128. Link Mauve

    Kev, as for your spidey-sense, there are already three implementations in the wild, one of which has been released this week.

  129. Ge0rG

    Kev: it's going to be stalled forever.

  130. Link Mauve

    https://nl.movim.eu/?node/pubsub.movim.eu/Movim/fd1921c6-219f-477b-a4be-ebb25e4cccc5 being the one.

  131. dwd

    FTR, Reactions is https://xmpp.org/extensions/inbox/reactions.html

  132. Kev

    Two main reasons: 1) It'll completely break MAM etc. 2) People tend to use reactions when they don't have enough to say to justify a message, because 500 messages of +1 just distracts from conversation, where [👍500] is fine.

  133. Ge0rG

    I'd suggest we rename XEP-0367 into something more generic, which we can use for all message-relationship causes.

  134. Kev

    Link Mauve: I think that's even more argument not to publish it, then.

  135. Ge0rG

    then we use 0367 for Reactions and everything else.

  136. jonas’

    Kev, how would it break MAM?

  137. Kev

    jonas’: Because you'd end up with e.g. 500 messages in the archive because they've got body content.

  138. jonas’

    regarding (2): still there is communication happening, and non-supporting clients silently not seeing the communication is an extremely bad thing in my opinion.

  139. jonas’

    Kev, reactions need to be in the archive anyways.

  140. jonas’

    note that the XEP specifically puts a <store/> hint in the reactions.

  141. Ge0rG

    Kev: looks like there are two fundamental positions here, which differ on whether reactions are an important part of conversation or not.

  142. Ge0rG

    if reactions are not important, we should -1 the XEP altogether.

  143. Kev

    jonas’: Yes. So you need clients to support it. Just as if you don't support PEP et al you don't get to see user tune, or if you don't support MUC you can't enter MUCs.

  144. Ge0rG

    if reactions are important indeed, we need a legacy fallback body.

  145. dwd

    Ge0rG, Well. Maybe.

  146. jonas’

    Kev, user tune is more passive communication. you know you can’t join MUCs when you can’t join MUCs.

  147. jonas’

    you don’t know you lost messages when your client doesn’t support reactions.

  148. dwd

    I don't think we should have legacy fallback bodies baked into the protocol.

  149. Ge0rG

    Kev: re MAM: reactions are supposed to go into MAM as well, via an explicit hint (which is a rejected XEP itself)

  150. dwd

    I don't see a way to get "there" from that point, and we'll be stuck with legacy forever.

  151. jonas’

    dwd, I think, we should, at least for the Experimental phase

  152. jonas’

    we can easily reevaluate during Experimental

  153. dwd

    jonas’, Nope. We'd never get rid of them.

  154. Kev

    I'm very much -1 on fallback bodies.

  155. jonas’

    why?

  156. Ge0rG

    dwd: MUC invitations are a place where we do have legacy bodies, but we did it wrong there.

  157. Ge0rG

    so essentially as a client author, you don't know whether the body provides additional information and you need to somehow make sense of it for the user.

  158. dwd

    OTOH, I'm absolutely fine with legacy fallback bodies being added by servers on the C2S link.

  159. Kev

    I'm not convinced even that is a good idea.

  160. Kev

    (Except for 1:1, where it's fine)

  161. Ge0rG

    dwd: how is that different from the sending client adding them?

  162. jonas’

    dwd, doesn’t work with XEP-0420

  163. Zash

    Would you need to rewrite MAM results on the go then?

  164. Ge0rG

    Zash: depending on the client's disco#info

  165. dwd

    Zash, I'm not suggesting mandating it.

  166. Link Mauve

    I also disagree with fallback bodies being sent, as Ge0rG said reactions are generally not “important”, more like a weak +1 or -1 on random messages, unsupporting clients would render that very annoyingly.

  167. Kev

    But in a MUC sending these things out with bodies is going to be more or less excluding legacy clients from the conversation because of the spam they can't possibly deal with other than by supporting the XEP (in which case ...).

  168. jonas’

    Link Mauve, Ge0rG specifically said they *are* important.

  169. jonas’

    I think we have very different experiences with Reactions

  170. jonas’

    in other chat systems

  171. Ge0rG

    if they are unimportant, they are not adding to the conversation, so let's just skip them altogether.

  172. Kev

    My experience is I'm in a number of chats where the ratio of messages to reactions is almost an order of magnitude.

  173. jonas’

    and based on those different experiences, we have different opinions on the importance of fallback bodies

  174. Ge0rG

    Kev: it will increase pressure on legacy client developers to fix their codebases.

  175. Link Mauve

    Ge0rG, unimportant doesn’t mean unneeded, it just means they generally add little signal to the discussion.

  176. jonas’

    that’s not the case anywhere where I am, but oftentimes reactions are indeed important and used instead of typing a "yes"

  177. Ge0rG

    anyway, I thought this is about Attaching References?

  178. dwd

    Well, MUC and reactions is interesting - if you have a typical MUC setup with a scrollback history of 20 items or so, then reactions will typically blast away the entire scrollback if there's legacy bodies.

  179. jonas’

    dwd, even if there’s not, note that the XEP demands a <store/> hint

  180. dwd

    Unless the MUC is aware of reactions, at least.

  181. Link Mauve

    Ge0rG, pressuring Pidgin to implement something isn’t really going to work.

  182. Kev

    jonas’: Yes, that is a case too. I suggest that in such cases the sensible thing to do is ensure everyone supports reactions.

  183. Ge0rG

    Link Mauve: let natural selection sort _that one_ out.

  184. jonas’

    Kev, well, that’s not how the world works

  185. Link Mauve

    Ge0rG, that one, or us. :p

  186. dwd

    Link Mauve, Designing the network and protocol around the shortcomings of Pidgin isn't really my idea of sensible.

  187. Kev

    jonas’: Within subgroups, it kinda is.

  188. Ge0rG

    Kev: if everyone supports reactions, you don't have any reason to object to legacy bodies.

  189. jonas’

    Kev, so those subgroups can support Reactions and not be bothered by legacy bodies? perfect. The general public should see any message by default.

  190. Kev

    We can't get the public network as a whole upgraded, but if there are groups where reactions are critical, supporting reactions seems sensible.

  191. dwd

    In 1:1, the client know if the other party supports reactions or not. So we don't need legacy support.

  192. Link Mauve

    dwd, neither is it mine, but it was an extreme example, there are many other only-slightly-maintained clients which won’t get support for it until a long time, if ever.

  193. Ge0rG

    dwd: that's not quite correct.

  194. Link Mauve

    There is no need to harm their users if we can avoid it.

  195. jonas’

    dwd, incorrect

  196. dwd

    In MUC, legacy support would screw up history (and probably archiving), so we don't want it.

  197. Kev

    Indeed, multi-clients breaks everything caps-related.

  198. Ge0rG

    dwd: from the "burn resource locking with fire" thread, there is MAM and Carbons

  199. jonas’

    Link Mauve, exactly, that’s why we need a fallback.

  200. jonas’

    silently omitting communication *is* harming users.

  201. Link Mauve

    jonas’, that’s why we don’t need it. ^^'

  202. Link Mauve

    jonas’, but overwhelming users with very small signal-to-noise is harming them too.

  203. Ge0rG

    So Council is now officially in a Mexican standoff.

  204. Kev

    I feel we've veered wildly off target here, which was me trying to justify vetoing it on the basis of harm to the network once it's ratified and inertia sets in.

  205. jonas’

    Link Mauve, I think that’s easier to sort out by social contract than noticing that communication is happening when there isn’t and *then* sorting *that* out.

  206. Ge0rG

    Link Mauve: less so than dropping messages that contain signal.

  207. Kev

    At least saying "This needs to be a different way" puts a line in the sand so no-one's confused about it.

  208. Ge0rG

    Kev: let's come back to that other controversy, then.

  209. dwd

    But we drop lots of things that contain signal. Message receipts, for example.

  210. Ge0rG

    > I'd suggest we rename XEP-0367 into something more generic, which we can use for all > I'd suggest we rename XEP-0367 into something more generic, which we can use for all message-relationship causes.

  211. jonas’

    dwd, they are (typically) only sent when requested, and then not dropped either?

  212. Kev

    I could be persuaded by adding text to the top explaining how this needs to change and that the authors intend to do so as soon as Other Problem is resolved in the community, I think. Which might be a reasonable compromise?

  213. Ge0rG

    dwd: did you know that there are clients which will send receipt requests into a MUC? And other clients, that will send receipts to those requests, also into the MUC?

  214. Ge0rG

    That being said, there is really no harm done by legacy reaction bodies.

  215. dwd

    Ge0rG, See also typing notifications.

  216. Link Mauve

    jonas’, ask pep. how he felt with reactions and threads in an environment which was enforcing their usage. :p

  217. Link Mauve

    (And his software couldn’t.)

  218. jonas’

    Link Mauve, I know that pep. has strong opinions about things, and they’re often very opposed to mine and we can’t seem to convince each other.

  219. dwd

    ANyway, we're out of time... Maybe argue about this on the list?

  220. Ge0rG

    dwd: that won't work.

  221. jonas’

    the vote expires today

  222. jonas’

    Kev, your vote?

  223. Link Mauve

    Kev, +1 to that.

  224. jonas’

    I don’t believe in XEP authors claiming intention to change anything after acceptance

  225. jonas’

    we had that with OMEMO

  226. Ge0rG

    Kev: what about replacing the reference mechanism in Reactions by 0367, and Council doing its due duty to make 0367 a sensible long-term vehicle?

  227. jonas’

    Ge0rG, I’d be on-board with that one

  228. dwd

    Kev, I'm fine with that. I think I even said I thought it'd radically change, myself.

  229. Kev

    Ge0rG: I don't think it's Council's duty to do anything with 367.

  230. Kev

    But FWIW, despite References, I think 367 could be a reasonable basis for all this stuff.

  231. Ge0rG

    Kev: that's not the right attitude.

  232. dwd

    Kev, Or, BTW, totally fine withouy rejecting it outright until we've disentangled this mess.

  233. dwd

    Kev, Or, BTW, totally fine with you rejecting it outright until we've disentangled this mess.

  234. dwd

    Kev, But asent a vote from you before EOD, it'll go through as-is, so...

  235. Ge0rG

    dwd: this is a bit like prosecuting the XEP author for shortcomings of the ecosystem. I would very much like to NOT pull this card on Experimental

  236. dwd

    Kev, But absent a vote from you before EOD, it'll go through as-is, so...

  237. dwd

    Ge0rG, Personally I agree. But Kev can veto it for having the letter 'e' in it too many times if he chooses.

  238. Kev

    "This is definitely not the Right Way to do this, as we need a general way of referencing a previous message for assorted things, of which reactions are only one, and to use that everywhere, while the reactions syntax is not reusable. This mechanism could be references, or could be attaching, or could be something else, but a reactions-only syntax is definitely unhelpful when we need to be collating all the different types of meta-data responses and exposing them in archives. As-is at the moment, without that half of the puzzle solved (such as the collation stuff from the Summit), reactions are limited. I’m very concerned that not doing it Right at first when it goes Experimental is going to lead to a situation where it gets deployed and is almost impossible to fix the holes later due to inertia-once-implemented. Council had a long and heated discussion about this today, and I think the best thing I can do is -1. My suggested remediation is to a) Get general agreement that either references or attaching can be our Future Mechanism For All The Things (I think we’re pretty much there) b) use Attaching (367) in reactions."

  239. Ge0rG

    Also I remember some people saying that it's much better to have an Experimental XEP than an XML file on some personal server.

  240. dwd

    Ge0rG, I also agree with that.

  241. Kev

    I'm about to send that, unless someone persuades me otherwise.

  242. jonas’

    Kev, go ahead. the change is trivial.

  243. Kev

    Ge0rG: I agree with that in almost all cases. :)

  244. jonas’

    I’ll put my "yes, use XEP-0367 right now" under it

  245. Ge0rG

    jonas’: don't say that lightly. Should the Reaction be a payload of the message or of the <attach-to> element?

  246. dwd

    OK, let's move on.

  247. jonas’

    Ge0rG, message, obviously.

  248. dwd

    Really - we're 5 minutes over already.

  249. Ge0rG

    jonas’: that's not semantically correct

  250. Kev

    I'm done, thank you.

  251. jonas’

    thanks

  252. dwd

    6) Next Meeting

  253. jonas’

    Ge0rG, on list

  254. dwd

    I am not here next week.

  255. Ge0rG

    phew.

  256. dwd

    Ge0rG, "phew" to me not being here next week?

  257. Kev

    I am also not here next week. Probably.

  258. jonas’

    +1w wfm

  259. dwd

    Down to three, so let's skip next week unless the remainder want to try?

  260. Ge0rG

    +1w wfm. I might even try to chair it, if there is no agenda.

  261. Link Mauve

    +1W wfm too.

  262. dwd

    OK, next week it is then.

  263. dwd

    7) AOB

  264. Link Mauve

    None from me.

  265. Ge0rG

    A bunch, but we are at -7m time budget already, so nvm.

  266. dwd

    Small note: I've added a new section to the agenda of "Activity Summary" just to note any Last Calls in progress, etc.

  267. peter is aware that he still needs to review and comment on https://github.com/xsf/xeps/pull/793 but $dayjob is very busy right now

  268. dwd

    It feels like these are easy to lose track of otherwise.

  269. dwd

    Comments welcome.

  270. Ge0rG

    dwd: that's great!

  271. dwd

    If there's nothing else?

  272. Link Mauve

    dwd, yup, I noticed that, it’s useful. :)

  273. jonas’

    dwd, I like it

  274. dwd

    8) Ite, Meeting Est.

  275. jonas’

    thanks, dwd

  276. dwd

    Thanks very much all, soryr for the overrun.

  277. pep.

    > Kev> I could be persuaded by adding text to the top explaining how this needs to change and that the authors intend to do so as soon as Other Problem is resolved in the community, I think. Which might be a reasonable compromise? I just read about such promise in 0060 about rsm (replacing max_items) and I laughed, (note that rsm in pubsub is now a thing). I'm really torn on this kind of things. I would pray to the legacy lord everyday for software to magically update (and get rid of Debian, RHEL, etc.) if I knew it worked.

  278. dwd

    I would, BTW, really love to have the concept of a "critical extension" in XMPP.

  279. Zash

    ASN.1 yeeaaaah

  280. jonas’

    I was about to say that ;)

  281. jonas’

    dwd, yes

  282. Kev

    You mean <new-feature><critical/></>, where not being able to process it would be something the client needed to care about.

  283. Kev

    You mean <new-feature><critical/></>, where not being able to process it would be something the client needed to care about?

  284. jonas’

    xmlns:xmpp="urn:xmpp" xmpp:critical="true"

  285. Kev

    (not that format, but that intent)

  286. Zash

    `<{disco#info}feature var="so-shiny" critical="1"/>`

  287. dwd

    Kev, Something like that, yes. That way, a client receiving a reaction would know it was missing something.

  288. dwd

    Kev, I mean, obviously this requires support for critical extensions and so doesn't solve this problem this time. But it might mean that future problems weren't so bad.

  289. jonas’

    I’m all for it

  290. jonas’

    works the other way around, too

  291. dwd

    jonas’, The other way around?

  292. Zash

    A client receiving a stanza and not understanding any of the payloads would be a hint already tho?

  293. jonas’

    dwd, clients to servers

  294. jonas’

    thinking of RSM

  295. Zash

    A 'critical' property seems like a thing that should have been in from the start for it to work

  296. dwd

    Zash, Yes, but that might be fine - in the absence of critical content it can just ignore the stanza entirely.

  297. dwd

    jonas’, Yes, true.

  298. jonas’

    Zash, yeah, but late is better than never, I guess

  299. Zash

    jonas’: "never" is what you get thanks to Pidgin :)

  300. dwd

    Zash, As I said earlier, I really don't want to predicate everything we do on whether Pidgin will work with it.

  301. Kev

    I think we have roughly two choices these days 1) Cater to the lowest possible common denominator, and not accept things that won't work for them 2) Be able to do things that can compete with a new system.

  302. Kev

    It's that simple. If we're not willing to (1), it means we have to start again if we want something better. e.g. Matrix.

  303. Kev

    It's that simple. If we're only willing to (1), it means we have to start again if we want something better. e.g. Matrix.

  304. jonas’

    Kev, I think it’s not that black&white

  305. dwd

    Right, I agree. Obviously in practise we try to provide graceful degradation where there's no harm to the network.

  306. jonas’

    I still don’t think that the legacy body would be harm to the network.

  307. dwd

    jonas’, MUC history?

  308. jonas’

    dwd, <store/> hint?

  309. jonas’

    isn’t that obeyed by MUC history?

  310. Zash

    Is it?

  311. dwd

    jonas’, I don't know, is it?

  312. dwd

    jonas’, It isn't on MUC implementations I've worked on.

  313. jonas’

    dwd, I’d also argue that MUC history is not *that* important anymore nowadays and I can live with breaking it, given MAM.

  314. dwd

    jonas’, So you're OK with breaking legacy clients as long as we don't break legacy clients?

  315. jonas’

    MUC history is a tricky one I admit

  316. jonas’

    but still, at least you can, with a legacy client, see that something was happening (and is happening)

  317. Kev

    Yes. I can see that 200 messages of "I am reacting to this message with a heart. Yes, a heart!" is going to be useful to the legacy client.

  318. flow

    we have MUCs with 200 participants?

  319. Zash

    Can't be worse than message correction

  320. jonas’

    flow, in fact, yes ;)

  321. jonas’

    400 even

  322. jonas’

    oh, not anymore

  323. Zash

    Matrix bridge died?

  324. jonas’

    no, disroot@ lost 200 users

  325. Zash

    I took a peek, everyone was duplicated with [m] suffixes. So, assuming Matrix bridge.

  326. jonas’

    ah, I see

  327. flow

    I feel like the fallback body discussion is a prime example of what could be improved in xmpp land: We do not take the time to get implementation experience and some people appear to really believe that implementations will not put a fallback body, even if it turns out to be beneficial

  328. Link Mauve

    Kev, this critical feature sounds like a broadened version of what I had in mind for XEP-0380.

  329. flow

    "will not put a fallback body in even the XEP requires so" that is

  330. jonas’

    flow, how will you figure out that it’s beneficial when the folks who suffer from it’s absence don’t even notice for quite a while?

  331. Link Mauve

    I approve.

  332. jonas’

    Link Mauve, neat

  333. jonas’

    now we just need to agree on using prefixed attributes for that ;)

  334. jonas’

    because you can stick those literally anywhere

  335. Link Mauve

    Prefixes make everything better!

  336. flow

    jonas’, I haven't even a clear picture how muc-attaching-reactions-mam actually are going play together. It is way to early to tell anythingn

  337. Kev

    I think what we discussed at the Summit would be a good start.

  338. flow

    sometimes it is tremendous helpful to write down a few stanza exchanges to see what it could look like

  339. flow

    then some things get clearer

  340. Ge0rG

    We should run a Matrix bridge on xmpp.org.

  341. Ge0rG

    dwd: just for the protocol: I've sent a 👎 emoji reaction to your last standards@ mail, but it was dropped by everybody because it doesn't contain a legacy body.

  342. Kev

    That's alright, I don't think it had any value :D

  343. Zash

    Sooooo, multipart/alternative

  344. dwd

    I was actually thinking that I spent literally years dealing with MIME Preamble because we were stuck with the legacy - unavoidably in that case.

  345. Ge0rG

    So far, the only non-debunked argument against legacy body is "it will annoy legacy client users", and I think this is an argument pro and not contra legacy body.

  346. Zash

    "I sent you a reaction but your client doesn't support it. Switch to modern client to get in on that sweet sweet reaction action!"

  347. Kev

    Well, it'll also annoy non-legacy users, because their MUC join context will be destroyed.

  348. pep.

    And now as a dev I have to implement reactions if I don't want them. Or for the fun of it, the poezio implementation was written as a plugin during the sprint, and it wouldn't make sense with a fallback body anymore :)

  349. pep.

    "So if you don't want reactions, load the plugin to ignore them, otherwise load the plugin to read them"

  350. Zash

    Can you do non-annoying graceful fallback?

  351. Ge0rG

    Kev: what's a MUC join context? Oh, you mean the limited MUC history, that mostly consists of CSNs?

  352. Kev

    Yes, that.

  353. Ge0rG

    I see how legacy reactions will be a game changer there.

  354. Ge0rG

    Zash: feel free to provide one.

  355. Ge0rG

    maybe use threads for that!

  356. Ge0rG

    just put the emoji(s) into a body with the right thread-id

  357. Zash

    ha, threads

  358. Ge0rG

    For the record, yaxim has legacy reactions for a while now, and nobody complained so far. And the Emoji are HUGE!

  359. Ge0rG

    Zash [18:49]: > ha, threads 😬

  360. Ge0rG

    https://upload.yax.im/upload/fCLNTXQr0YhbBor3/Screenshot_20190731-185205_yaxim.jpg

  361. pep. runs away from this discussion

  362. moparisthebest

    missed the discussion about https://github.com/xsf/xeps/pull/801 earlier, but I also proposed just not adding text about fallback too (in reply to council minutes), I guess I can put in a PR about that

  363. moparisthebest

    but as to the questions everyone had about "why could A/AAAA be trusted if SRV cannot" it's because there are a few systems that don't support SRV, so you might be getting your SRV from some place that's compromised and your A/AAAA from another that is not

  364. moparisthebest

    Tor is the highest profile one I suppose, but also plenty of broken routers etc

  365. moparisthebest

    I see no harm in falling back, I see harm in MUST NOT fall back, also adding MUST NOT to a draft spec

  366. Zash

    So another "there are broken clients, therefore we must write te

  367. Zash

    So another "there are broken clients, therefore we must write wrong specs" argument?

  368. moparisthebest

    sure, a user sees their XMPP client won't connect, but Whatsapp will, and that means XMPP sucks

  369. moparisthebest

    they don't know or care why

  370. Zash

    I'm not sure this line of reasoning is productive or good for my sanity.

  371. moparisthebest

    Zash, for another example how about a file sharing spec that just assumes everyone has a fully routable ipv6 ?

  372. moparisthebest

    sure, it'd be a simple, great spec

  373. moparisthebest

    just totally unuseable in the real world

  374. Ge0rG

    routable and not firewalled.

  375. moparisthebest

    so there is always an element of this

  376. Ge0rG

    moparisthebest: you are going down a slippery slope, very fast.

  377. Ge0rG

    what if there are xmpp clients not supporting MAM?

  378. Ge0rG

    you can't cover them all.

  379. dwd

    moparisthebest, I'm confused. In the case where no SRV records resolve, we fall back to A/AAAA. In the case where at least one SRV resolves to '.', we do not. What's the problem?

  380. moparisthebest

    dwd, if one SRV resolves to . you can either try to fallback to A/AAAA or give up, I see no harm in trying

  381. dwd

    moparisthebest, What's the point in '.' then?

  382. moparisthebest

    nothing probably, at least not with TLS

  383. Zash

    Isn't the question whether _xmpps IN SRV . means "there's no XMPP here" or "there's no xmpp-over-tls here"

  384. Ge0rG

    Do, or do not. There is no try.

  385. moparisthebest

    when nothing is authenticated I guess it's just as good to trust that vs trying to connect

  386. dwd

    Zash, Nope. That's not the question. The question is "If you get a '/' back from one SRV but nothing from the other, do you use a A/AAAA fallback or not?"

  387. dwd

    Zash, Nope. That's not the question. The question is "If you get a '.' back from one SRV but nothing from the other, do you use a A/AAAA fallback or not?"

  388. Ge0rG

    Can we have a flow chart please?

  389. moparisthebest

    I think with TLS you should always do a fallback, if it succeeds and authenticates, great, if not, oh well, at least you did everything you could

  390. flow

    dwd, why would you fall back in that case without trying to use the one that was not a '."?

  391. flow

    or what does fallback here exactly mean? fallback using implicit TLS? fallback using implicit TLS first and then STARTTLS?

  392. flow

    but I think an answer to Zash's question would be helpful in the discussion, and I think the right answer probably is "there is no XMPP with implict TLS here"

  393. dwd

    flow, You'd do both lookups for SRV, sure. But if you get a dot-response from one and nothing from the other, what then?

  394. Zash

    _xmpps doesn't have any default port defined, so you stop that thread? _xmpp has, so you go for 5222

  395. Zash

    Or if you wanna go and try random IP and port numbers, glhf

  396. Kev

    I can see an argument that it's reasonable to ignore xmpps stuff completely unless it gives you something connectable, and just go 6120 rules, but ... yeah.

  397. moparisthebest

    yea I think you try 5222, and if that doesn't work

  398. moparisthebest

    maybe implicit on 5223 and/or 443, whatever

  399. moparisthebest

    poke all the ports on the internet until one responds with a proper TLS cert? :D

  400. Zash

    ALL THE PORTS

  401. moparisthebest

    > ZMap can comprehensively scan for a single TCP port across the entire public IPv4 address space in 4.5 minutes given adequate upstream bandwidth.

  402. moparisthebest

    XEP-0368 implementations MUST use this ZMap to scan all 443s as a fallback

  403. Zash

    > given adequate upstream bandwidth. Can't wait for 5G then

  404. flow

    dwd, ahh "nothing from the other" I ready "not from the other"

  405. flow

    *read

  406. flow

    yeah, then I'd probably do a A/AAAA fallback

  407. dwd

    flow, Even though you know the domain supports SRV?

  408. dwd

    I'm actually wondering whether, if you have any _xmpps-* record, including a dot-record, you MUST have a _xmpp-* record, and behaviour is undefined otherwise.

  409. moparisthebest

    *you know something sent you a SRV response, unless we are talking about DNSSEC here

  410. Kev

    I've started leaning towards that.

  411. dwd

    Because I can't image what the administrator intended.

  412. dwd

    moparisthebest, Yes, yes, blah blah.

  413. Kev

    Idd.

  414. flow

    dwd, yes, cause _xmpps → "." should probably mean that there is no XMPP with implicit TLS, not that there is no XMPP at all

  415. Kev

    dwd: You could also argue that xmpps_ . with no xmpp_ is a clear misconfiguration, so trying to fallback in the normal way is the best you can do in the face of a daft admin.

  416. Kev

    But, really, the more I think about this, the more I think it's not daft.

  417. Kev

    6120 defines fallback if you don't have SRV. That means you don't have to do SRV, because you know the clients will just A/AAAA 5222, and if that's the right way to connect, that's fine.

  418. Ge0rG

    But that would only hide the misconfiguration from people's eyes, leading to the creation of something that's as messy as the web.

  419. Kev

    So saying "Yep, do the normal 6120 A/AAAA thing, but I don't support xmpps" starts seeming a lot less daft.

  420. Kev

    I know I've deployed services and not bothered with SRV because it's just not needed when A works.

  421. flow

    I see no requiremnt in RFC 2782 that once you add a SRV RR for one service, you have to add them for all provided services

  422. Ge0rG

    Kev: also the 10% of clients that technically can't resolve SRV

  423. Kev

    Ge0rG: Well, they're not affected by this argument, I think, because they won't see the . on xmpps.

  424. flow

    But even if there where I would write my clients so that they try to discover as many as possible connection mechanisms and use them

  425. flow

    with an extra pranoid setting ignoring SRV "." results if it hasn't been authenticated via DNSSEC probably

  426. Ge0rG

    But the benefit of xmpps is reduced number of RTTs, if you don't count the DNS RTTs

  427. Ge0rG

    Kev: I was just saying that you essentially must provide A/AAAA anyway

  428. Kev

    I think that's only true if you're running a public service with broken clients.

  429. Kev

    I think that's only true if you're running a public service and care about broken clients/networks connecting.

  430. dwd

    flow, I don't *think* a spoofed '.' record is any worse than any other spoofed record.

  431. Kev

    Most services I care about are not public.

  432. Kev

    Or have experience with, I should probably say.

  433. Ge0rG

    Kev: if you don't care about broken client networks, you surely don't need to care about daft admins

  434. Kev

    I'm starting to argue that it's /not/ daft.

  435. Kev

    And "Do normal A stuff for xmpp, and I don't support xmpps" is actually a reasonable thing to say.

  436. flow

    good point

  437. Ge0rG

    Kev: what's wrong with putting the normal A stuff into _xmpp SRV?

  438. Kev

    Why configure more records than you need?

  439. Ge0rG

    Because a client will query them either way

  440. Ge0rG

    Unless you define xmpps=. as "skip _xmpp lookup as well", which I really don't see happening

  441. Kev

    It doesn't really matter as long as clients don't do xmpps fallback, I guess, and that would be horrible anyway.

  442. Kev

    So yes, the right response to 'why configure more records than you need?' is 'yes, why bother with xmpps=.?'.

  443. Ge0rG

    In a sensible world, I'd prefer _xmpps over _xmpp because it'll cut off multiple RTTs

  444. Kev

    Only one, isn't it?

  445. flow

    there are more reasons for implicit TLS

  446. Kev

    > <starttls/> < <proceed/>

  447. Kev

    There's nothing implicit about TLS on an xmpps_ record is there?

  448. flow

    for example it is harder for buggy implementations to leak sensible data in plaintext with implicit TLS compared to STARTTLS

  449. flow

    Kev, depends on your definition on what the implicit part is

  450. flow

    I think I am using the one of RFC 8314 § 3.

  451. Ge0rG

    Can't we just agree on "direct TLS"?

  452. flow

    Ge0rG, that is what I've been using before discovering that RFC and its definition

  453. Ge0rG

    flow: an RFC containing an inadequate solution doesn't make it adequate

  454. flow

    what would that inadequate solution be you are talkinga bout?

  455. flow

    the term "Implicit TLS"?

  456. Ge0rG

    Yes

  457. Ge0rG

    With MTA-STS (which is a horrible abomination of a standard on its own), direct TLS also becomes explicit for email submission

  458. Ge0rG

    If we follow their nomenclature, it's explicit implicit TLS

  459. flow

    well I wasn't happy with "Direct TLS" either, so I decided to use the term that is at least established by an RFC

  460. Ge0rG

    What's wrong with Direct TLS?

  461. flow

    what's direct about it?

  462. Ge0rG

    You start the connection directly with a TLS handshake

  463. Ge0rG

    I can't imagine a better term.

  464. flow

    hmm, kay, if you look at it from that way

  465. flow

    for me its just that I like well defined (and ideally established) terms

  466. flow

    IIRC I greped the RFCs for "Direct TLS" but could not find any occurance

  467. flow

    but maybe my grep-fu wasn't strong at that day

  468. flow

    so I probably concluded that it isn't a good term, and was pretty happy when I found rfc8314

  469. Ge0rG

    In 8314 the term makes _some_ sense, because there is no explicit signaling for when to use Direct TLS.

  470. Ge0rG

    So it's actually implicit, because you don't know you must use it... 😉

  471. flow

    I always assumed that it is about starting TLS either explicitly via STARTTLS or implictly on the establishment of the underlying transport mechanism (e.g. TCP)

  472. flow

    if you take signaling into consideration, then yes, _xmpps is not implicit

  473. Ge0rG

    Yes, but STARTTLS is always indirect.

  474. flow

    even if quickstart is used?

  475. flow

    and now I go to bed

  476. pep.

    > flow> yes, cause _xmpps → "." should probably mean that there is no XMPP with implicit TLS, not that there is no XMPP at all Then I'd fallback on _xmpp- first, then A/AAAA if this one is not '.' as well

  477. pep.

    > Ge0rG> also the 10% of clients that technically can't resolve SRV Some clients also can't resolve A/AAAA :)

  478. pep.

    As in, directly, without SRV, from what I understand

  479. Ge0rG

    pep.: you mean they are deliberately crippled and violate the rfc?

  480. dwd

    pep., You shouldn't actually be "falling back" to _xmpp-*, you should be doing both lookups in parallel and combining the results, I think.

  481. pep.

    dwd: k

  482. pep.

    Ge0rG: dunno, I think kaidan on android has some issues with that. I couldn't connect on my server

  483. Ge0rG

    pep.: that sounds like a serious bug

  484. pep.

    I'm not the only one to have reported it

  485. Ge0rG

    But then again, it's Kaidan... 🤷‍♂️

  486. Ge0rG

    dwd: happy eyeballs style?

  487. Ge0rG

    dwd: also do A/AAAA in parallel, and recursively follow CNAMEs

  488. pep.

    You'd probably do only.one CNAME query anyway

  489. pep.

    You'd probably do only one CNAME query anyway

  490. Zash

    CNAME processing would be in scope for whatever DNS stuff you have, not the XMPP stuff.

  491. dwd

    Ge0rG, Well, I'm explicitly doing the 2 SRVs in parallel and then ... I can't recall if I do happy eyeballs with the resulting picked A/AAAA, I might do. I look them both up in parallel, don't remember if I try connecting to them all at once.

  492. Zash

    dwd: do you have a thing that does _xmpps-server?

  493. dwd

    Zash, Yes, though not in production right now.